Discussão sobre interface com o Cliente.
20 Mar 2019 11:32
Bom dia...
Pessoal...
um cliente me pediu um relatório de produtos não movimentados...
Tô quebrando a cabeça aqui porque não tô conseguindo visualizar esse relatório.. Não tô pegando bem o conceito.
Que dados vou apresentar, como vou filtrar isso.
Na minha tabela de produtos ficar armazenado a data da última compra e data da última venda.. Já fica mais fácil..
Mas blz... alguém tem relatórios nesse sentido? Pode dar uma ajuda...
Obrigado
Rubens
20 Mar 2019 18:41
Rubens, o mais simples que eu vejo a principio, é pesquisar na tabela de vendas, pq se vendeu o produto, o código/ID dele vai estar registrado em alguma tabela de venda, então se vc pegar como base a tabela de produtos e pesquisar nessa tabela de vendas e não achar o produto, sabe que nunca vendeu, ou encontrando, saber a quanto tempo não vende mais.
Abraços
20 Mar 2019 19:45
Lembrando que provavelmente vão querer um período... por exemplo, produtos não vendidos há mais de um ano.
SQL?
SELECT Código, Nome, UltimaVenda FROM PRODUTOS WHERE UltimaVenda < '20180101'
DBF?
SET FILTER TO UltimaVenda < Stod( "20180101" )
O que vai colocar no relatório? quem sabe o que o cliente quer é o cliente.
Talvez há quanto tempo: Date() - UltimaVenda
20 Mar 2019 20:36
Boa noite pessoal!
Gostaria de uma ajuda. Preciso acelerar minha pesquisa e o dbsetfilter está um pouco lento em rede, como poderia aumentar essa velocidade.
Uso para compilação harbour 3.2 +bcc5.5. e RDD CDX Desde já agradeço.
Estou postando o trecho do meu código que trata a questão:
SETCURSOR(1)
SETCOLOR(Mcor[1])
Sombra(08,24,15,57,frame[3])
@ 10,26 SAY PADC("Procurar Por:",30) COLOR "B/W"
@ 11,26 SAY PADC(cab,30) COLOR "R*/W"
@ 13,26 GET COD PICT "@!"
READ
SETCURSOR(0)
DBSELECTAR("Pro")
INDEX ON NOMPRO+CODPRO TAG "NOM1" TO nompro1 //NOMPRO=COD // .AND. NUMERO=cNUMERO
DBSETORDER("NOM1")
DBSETFILTER( { || trim(COD) $ NOMPRO}, trim(COD) $ NOMPRO)
DBGOTOP()
IF LASTKEY() = K_ESC
SETCOLOR(cor)
RESTSCREEN(05,15,20,65,t)
dbsetfilter()
// DBGOTO(reg)
RETURN
ENDIF
if ! trim(cod) $ nompro //(cod $ nome'1_2_3')
alert("Informacao nao encontrada!!!;Pesquise Novamente !!!")
dbsetfilter()
endif
20 Mar 2019 20:38
Rubens vou procurar aqui alguns que tenho nesse sentido e já te mando.
20 Mar 2019 20:54
rubens escreveu:Na minha tabela de produtos ficar armazenado a data da última compra e data da última venda..
Vou dizer como faço:
1-Registro em produtos, a última compra (em atualização de estoque) e também a última venda (a cada venda);
2-Tenho um índice com o campo "ultvenda";
3-No menu de relatórios tem a opção de "Produtos não movimentados";
4-Apresenta uma janela perguntando há quantos MESES (01 a 99 - trabalho com 2 dígitos).
Se ele coloca por exemplo 6 (parados há 6 meses ou mais), pesquisa o indice +- dessa forma:
- Código:
/*
Considerando que sua função abre o arquivo e índices,
e já deixa o índice desejado selecionado...
*/
AbreArquivo( "PRODUTOS", nOrdem )
dData := AddMonth( Date(), -nMeses ) // pega data inicial da pesquisa (nMeses foi o número de meses digitado)
DbSeek( dData, .T. ) // se não acha a data exata, para na mais próxima
aProdutos := {}
While ultvenda <= dData // inicia o loop
AaDd( aProdutos, { codprod, descprod, ultvenda, estoque } )
Skip
EndDo
If Len( aProdutos ) = 0
Hb_Alert( "Nenhum produto parado no período" )
Else
// monta o relatório...
EndIf
21 Mar 2019 08:51
Bom dia
Obrigado pessoal...
Vou analisar isso aí e fazer um compilaççã..
obrigado a todos...
Rubens
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.