relatórios... como aumentar a performace???
Moderador: Moderadores
Ah, sim. Obrigado. Boa lembrança. Não me lembrava desse fonte que foi uma excelente adaptação do colega que postou. Então fica mais fácil ainda. É só adaptar esse código para trabalhar com uma thread secundária e ir mostrando o relatório conforme ele estiver sendo finalizado.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Amiguinho
Eu particularmente sempre achei o SET RELATION lento e talvez a lentidao que vc tenha seja no momento do INDEX ON.
Para o caso de usar SCOPE voce pode fazer assim:
- Seu arquivo PEDIDO deve possuir um indice pelo campo DATA.
- Seu RDD deve ser o CDX.
- Desabilite as linha INDEX ON ... e SEEK VDATAI
- Use desta forma:
Eu particularmente sempre achei o SET RELATION lento e talvez a lentidao que vc tenha seja no momento do INDEX ON.
Para o caso de usar SCOPE voce pode fazer assim:
- Seu arquivo PEDIDO deve possuir um indice pelo campo DATA.
- Seu RDD deve ser o CDX.
- Desabilite as linha INDEX ON ... e SEEK VDATAI
- Use desta forma:
Código: Selecionar todos
@ 0,0 SAY "Deseja filtrar cliente(0 para todos):" GET nQualCliente PICTURE "99999"
...
dbSelectArea( "PEDIDO" )
// Coloque o numero da ordem
OrdSetFocus( 1 )
// Limpe o buffer dos escopos
OrdScope(0, NIL )
OrdScope(1, NIL )
// Limpe o buffer dos filtros
dbSetFilter( NIL, NIL )
// Proceda com o escopo dos dados
OrdScope(0, Ctod("01/01/2007") )
OrdScope(1, Ctod("31/12/2007") )
// Caso queira filtrar os pedidos de um cliente especifico
if nQualCliente > 0
dbSetFilter( {|| PEDIDO->CODCLI = nQualCliente}, "PEDIDO->CODCLI = "+Str(nQualCliente) )
endif
dbGoTop()
SET RELATION TO CODCLI INTO CLIENTE, TO CODVED INTO VENDEDOR
DO WHILE !EOF() .and. data<=vdataf
...
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
