edutraini Posted May 10, 2017 Report Share Posted May 10, 2017 Bom dia, Pessoal Gostaria de susgestao de vcs Antes de abrir um listbox dos pedidos de vendas quando o usuario e do setor de Vendas eu so mostro no listbox somente os seus Pedidos filtrando atraves do comando dbsetfilter({||ped->vendedor=vp_usu.or.ped->usuario=vp_usu}) Esse tipo de filtro esta cada vez mais lento Alguem poderia dar uma sugestao de como filtrar esses dados de outra forma Obrigado Quote Link to comment Share on other sites More sharing options...
kapiaba Posted May 10, 2017 Report Share Posted May 10, 2017 Use ORDSCOPE() ou INDICE TEMPORARY/MEMORY super rápido e suepr prático. Quote Link to comment Share on other sites More sharing options...
edutraini Posted May 10, 2017 Author Report Share Posted May 10, 2017 Kapi obrigado pela dica vou testar Vc acha interessante criar um indice por vendedor e dar um seek antes de gerar o indice temporario para ficar mais rapido Quote Link to comment Share on other sites More sharing options...
kapiaba Posted May 10, 2017 Report Share Posted May 10, 2017 Não é indice temporario é indice em MEMORIA -> MEMORY/TEMPORAY Se criar um indice por vendedor, use o ORDSCOPE() para filtrar. Quote Link to comment Share on other sites More sharing options...
edutraini Posted May 10, 2017 Author Report Share Posted May 10, 2017 Nao sei oque fiz de errado mas em rede o dbsetfilter foi mais rapido INDEX ON nropedido TAG _TEMP_ TO PRODTEMP FOR ( .NOT. EOF() ) .AND. vendedor = vp_usu .or. usuario = vp_usu MEMORY Quote Link to comment Share on other sites More sharing options...
kapiaba Posted May 10, 2017 Report Share Posted May 10, 2017 //INDEX ON nropedido TAG _TEMP_ TO PRODTEMP FOR ( .NOT. EOF() ) .AND. vendedor = vp_usu .or. usuario = vp_usu MEMORY SELECT... INDEX ON nropedido TAG 05 TO PRODTEMP FOR ( .NOT. EOF() ) .AND. ; VENDEDOR >= vp_usu .AND. VENDEDOR <= vp_usu TEMPORARY // MEMORY GO TOP BROWSE() Quote Link to comment Share on other sites More sharing options...
edutraini Posted May 10, 2017 Author Report Share Posted May 10, 2017 Obrigado kapiaba 1 Quote Link to comment Share on other sites More sharing options...
edutraini Posted May 18, 2017 Author Report Share Posted May 18, 2017 Kapi bom dia, Obrigado pela dica funcionou Uma duvida quando gero a arquivo temporary em rede tenho que dar um nome diferente em vez de prodtemp tenho que criar uma variavel com data e hora caso for aberto em duas maquinas ao mesmo tempo ou esse arquivo e gerado local na maquina e no caso do arquivo de indices fisico nao posso abrir junto né . Quote Link to comment Share on other sites More sharing options...
aferra Posted May 18, 2017 Report Share Posted May 18, 2017 o temporário é para cada maquina, ele cria na memoria do micro em questão, ou seja, não precisa se preocupar com o nome, alias, com nada....:) Quote Link to comment Share on other sites More sharing options...
edutraini Posted May 18, 2017 Author Report Share Posted May 18, 2017 Puxa muito legal isso Obrigado pela dica eu sempre criava index on normal e ficava cheio de temporario gravado dentro do Hd acho que isso resolve o unico problema e quando preciso atualizar o arquivo com seus indices exemplo abri um listbox somente mostrando os pedidos de um determinado vendedor filtrando pelo index on temporary nessa mesma tela o vendedor vai incluir um novo pedido ai tenho que criar alguma logica diferente pois quando abri o temporary os indices nao ficaram ativos ou existe algum truque Quote Link to comment Share on other sites More sharing options...
kapiaba Posted May 19, 2017 Report Share Posted May 19, 2017 ou existe algum truque ? SIM. Depois de fazer a inclusão, INDEX de NOVO do mesmo jeito es refresque a ListBox, ou use ORDSCOPE() neste caso, eu acho que seja melhor. Brinque que você descobre. Quote Link to comment Share on other sites More sharing options...
edutraini Posted May 19, 2017 Author Report Share Posted May 19, 2017 Obrigado Kapi Bom final de semana Quote Link to comment Share on other sites More sharing options...
aferra Posted May 19, 2017 Report Share Posted May 19, 2017 vais ter que criar uma lógica, não tem jeito. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.