- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Relatório Consulta Posição Clientes!
×
Linguagem de Programação ADVPL
Perguntas Relatório Consulta Posição Clientes!
- rsbmaximo
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 17
- Obrigados Recebidos: 0
11 anos 5 meses atrás #14444
por rsbmaximo
Relatório Consulta Posição Clientes! foi criado por rsbmaximo
Bom dia a todos!
Estou com um dificuldade para desenvolver um relatório para consulta posição de clientes.
O sistema já tem a consulta padrão, mas preciso de algumas informações que não têm na consulta padrão.
Das informações abaixo consegui imprimir todas, com exceção da realçada em vermelho, pois a consulta de maior saldo é composta por um intervalo de datas, e eu teria de imprimir essas datas, mas não consegui alcançar esse objetivo.
Por favor, se alguém tiver algum exemplo que possa me ajudar, desde já agradeço.
Obrigado.
@ Li,01 PSAY TRB->E1_CLIENTE // Codigo do cliente
@ Li,10 PSAY TRB->E1_NUM // Nota fiscal maior compra
@ Li,21 PSAY "|"
@ Li,24 PSAY ALLTRIM(TRANSFORM(TRB->A1_MCOMPRA,"@E 999,999.99")) // Maior compra
@ Li,40 PSAY TRB->E1_EMISSAO // Emissao da maior compra
@ Li,49 PSAY "|"
@ Li,52 PSAY "VL PCOMPRA" // Valor da primeira compra
@ Li,66 PSAY TRB->A1_PRICOM // Data da primeira compra
@ Li,75 PSAY "|"
@ Li,78 PSAY "ULT COMPRA" //TRANSFORM(TRB->F2_VALFAT, "@E 999,999.99") // Valor da ultima compra
@ Li,93 PSAY "EMISSAO" //TRB->F2_EMISSAO // Data da ultima compra
@ Li,101 PSAY "|"
@ Li,104 PSAY ALLTRIM(TRANSFORM(TRB->A1_MSALDO,"@E 999,999.99")) // Valor do maior saldo
@ Li,121 PSAY "EMISSAO" // Emissao do maior saldo
Estou com um dificuldade para desenvolver um relatório para consulta posição de clientes.
O sistema já tem a consulta padrão, mas preciso de algumas informações que não têm na consulta padrão.
Das informações abaixo consegui imprimir todas, com exceção da realçada em vermelho, pois a consulta de maior saldo é composta por um intervalo de datas, e eu teria de imprimir essas datas, mas não consegui alcançar esse objetivo.
Por favor, se alguém tiver algum exemplo que possa me ajudar, desde já agradeço.
Obrigado.
@ Li,01 PSAY TRB->E1_CLIENTE // Codigo do cliente
@ Li,10 PSAY TRB->E1_NUM // Nota fiscal maior compra
@ Li,21 PSAY "|"
@ Li,24 PSAY ALLTRIM(TRANSFORM(TRB->A1_MCOMPRA,"@E 999,999.99")) // Maior compra
@ Li,40 PSAY TRB->E1_EMISSAO // Emissao da maior compra
@ Li,49 PSAY "|"
@ Li,52 PSAY "VL PCOMPRA" // Valor da primeira compra
@ Li,66 PSAY TRB->A1_PRICOM // Data da primeira compra
@ Li,75 PSAY "|"
@ Li,78 PSAY "ULT COMPRA" //TRANSFORM(TRB->F2_VALFAT, "@E 999,999.99") // Valor da ultima compra
@ Li,93 PSAY "EMISSAO" //TRB->F2_EMISSAO // Data da ultima compra
@ Li,101 PSAY "|"
@ Li,104 PSAY ALLTRIM(TRANSFORM(TRB->A1_MSALDO,"@E 999,999.99")) // Valor do maior saldo
@ Li,121 PSAY "EMISSAO" // Emissao do maior saldo
Por favor Acessar ou Registrar para participar da conversa.
- rsbmaximo
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 17
- Obrigados Recebidos: 0
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
11 anos 5 meses atrás #14498
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Respondido por lalberto no tópico Relatório Consulta Posição Clientes!
@ Li,93 PSAY DtoC(TRB->F2_EMISSAO)
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
11 anos 5 meses atrás #14499
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Respondido por lalberto no tópico Relatório Consulta Posição Clientes!
Na montagem da sua query vc deve declarar estes campos como data.
cQuery += "SC9.C9_NFISCAL='"+Space(Len(SC9->C9_NFISCAL))+"' AND "
cQuery += "SC9.D_E_L_E_T_<>'*'"
cQuery := ChangeQuery(cQuery)
cQry := cArquivo+"A"
dbUseArea(.T.,"TOPCONN",TcGenQry(,,cQuery),cQry,.T.,.T.)
TcSetField(cQry,"F2_EMISSAO","D")
Exemplo
cQuery += "SC9.C9_NFISCAL='"+Space(Len(SC9->C9_NFISCAL))+"' AND "
cQuery += "SC9.D_E_L_E_T_<>'*'"
cQuery := ChangeQuery(cQuery)
cQry := cArquivo+"A"
dbUseArea(.T.,"TOPCONN",TcGenQry(,,cQuery),cQry,.T.,.T.)
TcSetField(cQry,"F2_EMISSAO","D")
Exemplo
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Por favor Acessar ou Registrar para participar da conversa.
- rsbmaximo
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 17
- Obrigados Recebidos: 0
11 anos 5 meses atrás #14508
por rsbmaximo
Respondido por rsbmaximo no tópico Relatório Consulta Posição Clientes!
Alberto, bom dia!
Muito obrigado pela força, como sou novo na área tenho algumas dificuldades.
Abaixo segue parte do fonte padrão, o qual faz a atualização do cliente:
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Atualizacao de titulos a receber, gerando todos os dados³
//³complementares a uma implantacao de titulo. ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
A040DupRec(FunName(), (i == 1), 0, .F., lTPAbISS, .F.)
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Atualiza o saldo do cliente ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
IF ! SuperGetMV( "MV_CLIPAD" )+ SuperGetMV( "MV_LOJAPAD" ) == cCliente+cLojaCli
IF SA1->(MsSeek(xFilial("SA1") + cCliente + cLojaCli ))
AtuSalDup("+",SE1->E1_VALOR,SE1->E1_MOEDA,SE1->E1_TIPO,If(SE1->E1_MOEDA==nMoedaCor,nTaxaMoeda,0),SE1->E1_EMISSAO)
RecLock("SA1",.F.,.F.)
SA1->A1_MSALDO := If( SA1->(A1_SALDUPM > A1_MSALDO), A1_SALDUPM, A1_MSALDO )
SA1->( MsUnlock())
Na atualização ele compara o campo A1_MSALDO com o A1_SALDUPM. O campo A1_SALDUPM é quem recebe os valores,mas não sei quando ou como. Já que esse campo, A1_SALDUPM, é carregado com valores de várias datas diferentes, teria como eu carregar, também, essas datas e no meu relatório imprimir esses valores com suas datas, mas teria de ser as datas referentes aos valores do campo A1_MSALDO?
Muito obrigado pela força, como sou novo na área tenho algumas dificuldades.
Abaixo segue parte do fonte padrão, o qual faz a atualização do cliente:
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Atualizacao de titulos a receber, gerando todos os dados³
//³complementares a uma implantacao de titulo. ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
A040DupRec(FunName(), (i == 1), 0, .F., lTPAbISS, .F.)
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³ Atualiza o saldo do cliente ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
IF ! SuperGetMV( "MV_CLIPAD" )+ SuperGetMV( "MV_LOJAPAD" ) == cCliente+cLojaCli
IF SA1->(MsSeek(xFilial("SA1") + cCliente + cLojaCli ))
AtuSalDup("+",SE1->E1_VALOR,SE1->E1_MOEDA,SE1->E1_TIPO,If(SE1->E1_MOEDA==nMoedaCor,nTaxaMoeda,0),SE1->E1_EMISSAO)
RecLock("SA1",.F.,.F.)
SA1->A1_MSALDO := If( SA1->(A1_SALDUPM > A1_MSALDO), A1_SALDUPM, A1_MSALDO )
SA1->( MsUnlock())
Na atualização ele compara o campo A1_MSALDO com o A1_SALDUPM. O campo A1_SALDUPM é quem recebe os valores,mas não sei quando ou como. Já que esse campo, A1_SALDUPM, é carregado com valores de várias datas diferentes, teria como eu carregar, também, essas datas e no meu relatório imprimir esses valores com suas datas, mas teria de ser as datas referentes aos valores do campo A1_MSALDO?
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Relatório Consulta Posição Clientes!
Tempo para a criação da página:0.104 segundos