- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Relatório com data retroativa
×
Linguagem de Programação ADVPL
Perguntas Relatório com data retroativa
- miquilino
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 61
- Obrigados Recebidos: 0
10 anos 3 meses atrás - 10 anos 3 meses atrás #24188
por miquilino
Bom dia!
Possuimos um relatório customizado de Aging List, porem ele só busca a informação da data atual, já tentei alterar a database para uma data retroativa, mas mesmo assim os saldos aparecem apenas com a data atual (de hoje), como eu posso trabalhar o fonte para que ele busque as informações (ex: saldo dos clientes neste caso) em uma data retroativa?
Em anexo segue o fonte.
Obrigado.
Fernando Silva
Relatório com data retroativa foi criado por miquilino
Bom dia!
Possuimos um relatório customizado de Aging List, porem ele só busca a informação da data atual, já tentei alterar a database para uma data retroativa, mas mesmo assim os saldos aparecem apenas com a data atual (de hoje), como eu posso trabalhar o fonte para que ele busque as informações (ex: saldo dos clientes neste caso) em uma data retroativa?
Em anexo segue o fonte.
Obrigado.
Fernando Silva
Ultima edição: 10 anos 3 meses atrás por miquilino.
Por favor Acessar ou Registrar para participar da conversa.
- AndersonBR
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 108
- Obrigados Recebidos: 0
10 anos 3 meses atrás #24189
por AndersonBR
Respondido por AndersonBR no tópico Relatório com data retroativa
Fernando, tive o mesmo problema algum tempo atrás, a solução que encontrei foi tratar o SE1 x SE5, segue a minha select principal (faço praticamente todo tratamento de data base nela), se ficar alguma dúvida posta aí.
BeginSQL Alias "SK_"
Column E1_SALDO As Numeric(15,2)
Column E1_VENCREA As Date
Column A1_ULTCOM As Date
/*
SELECT E1_CLIENTE, E1_LOJA, E1_SALDO, E1_VENCREA, A1_VEND, E1_STATUS, A3_GEREN, A1_ULTCOM, E1_VALOR,
(
select SUM(E5_VALOR-E5_VLJUROS-E5_VLMULTA+E5_VLDESCO) from %Table:SE5% SE5
where (E5_TIPODOC = 'VL' or E5_TIPODOC = 'BA' or E5_TIPODOC = 'CP') and
E5_DATA > %Exp:DtBase% and
E5_RECPAG = 'R' and
E5_CLIFOR = E1_CLIENTE and
E5_TIPO = E1_TIPO and
E5_PREFIXO = E1_PREFIXO and
E5_NUMERO = E1_NUM and
E5_PARCELA = E1_PARCELA// and
//SE5.%NotDel%
) as E5_VLR,
(
select SUM(E5_VALOR-E5_VLJUROS-E5_VLMULTA+E5_VLDESCO) from %Table:SE5% SE5
where E5_TIPODOC = 'ES' and
E5_DATA > %Exp:DtBase% and
E5_RECPAG = 'P' and
E5_CLIFOR = E1_CLIENTE and
E5_TIPO = E1_TIPO and
E5_PREFIXO = E1_PREFIXO and
E5_NUMERO = E1_NUM and
E5_PARCELA = E1_PARCELA
//SE5.%NotDel%
) as E5_EST
FROM %Table:SE1% SE1
LEFT JOIN %Table:SA1% SA1 ON E1_CLIENTE+E1_LOJA=A1_COD+A1_LOJA
LEFT JOIN %Table:SA3% SA3 ON A1_VEND=A3_COD
WHERE E1_FILIAL = %xFilial:SE1% AND
E1_VENCREA < %Exp:DtBase% AND
E1_EMISSAO >= %Exp:EmissaoIn% AND
E1_EMISSAO <= %Exp:EmissaoFn% AND
(E1_BAIXA > %Exp:DtBase% or E1_BAIXA = ' ' or E1_SALDO > 0) and
E1_TIPO <> 'RA' and
E1_TIPO <> 'NCC' and
E1_TIPO <> 'DEB' and
SE1.%NotDel%
%Exp:cQuery%
*/
select E1_CLIENTE, E1_LOJA, E1_SALDO, E1_VENCREA, E1_VALOR, A1_VEND, A3_GEREN, A1_ULTCOM,
(
select SUM(E5_VALOR-E5_VLJUROS-E5_VLMULTA+E5_VLDESCO) from %Table:SE5% SE5
where (E5_TIPODOC = 'VL' or E5_TIPODOC = 'BA' or E5_TIPODOC = 'CP') and
E5_DATA > %Exp:DtBase% and
E5_RECPAG = 'R' and
E1_CLIENTE = E5_CLIFOR and
E5_TIPO = E1_TIPO and
E5_PREFIXO = E1_PREFIXO and
E5_NUMERO = E1_NUM and
E5_PARCELA = E1_PARCELA
) as E5_VLR,
(
select SUM(E5_VALOR-E5_VLJUROS-E5_VLMULTA+E5_VLDESCO) from %Table:SE5% SE5
where E5_TIPODOC = 'ES' and
E5_DATA > %Exp:DtBase% and
E5_RECPAG = 'P' and
E1_CLIENTE = E5_CLIENTE and
E5_TIPO = E1_TIPO and
E5_PREFIXO = E1_PREFIXO and
E5_NUMERO = E1_NUM and
E5_PARCELA = E1_PARCELA
) as E5_EST
from %Table:SE1% SE1
LEFT JOIN %Table:SA1% SA1 ON E1_CLIENTE+E1_LOJA=A1_COD+A1_LOJA
LEFT JOIN %Table:SA3% SA3 ON A1_VEND=A3_COD
where E1_FILIAL = %xFilial:SE1% and
E1_VENCREA < %Exp:DtBase% and
E1_EMISSAO >= %Exp:EmissaoIn% and
E1_EMISSAO <= %Exp:EmissaoFn% and
(E1_BAIXA > %Exp:DtBase% or E1_BAIXA = ' ' or E1_SALDO > 0) and
E1_TIPO <> 'RA' and
E1_TIPO <> 'NCC' and
E1_TIPO <> 'DEB' and
SE1.%NotDel%
EndSql
Por favor Acessar ou Registrar para participar da conversa.
- miquilino
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 61
- Obrigados Recebidos: 0
- AndersonBR
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 108
- Obrigados Recebidos: 0
10 anos 3 meses atrás #24197
por AndersonBR
Respondido por AndersonBR no tópico Relatório com data retroativa
Dei uma olhada no fonte, vai ter que mudar um pouco, mas nada muito exagerado. Onde você passa pelo título, você inclui uma checagem de baixa, faz a busca dessa baixa na SE5 veja qual a data e o valor da baixa e use esse valor para compor o valor do saldo caso a baixa seja posterior a Data Base.
Não se esqueça dos campos de Juros e multa, na select que passei tem a conta certinha para pegar o valor correto da E5, acho que com mais umas 15, 20 linhas vc resolve o problema.
Se precisar de ajuda me adiciona no Skype: anderson.barbosa.btu
Abraço.
Não se esqueça dos campos de Juros e multa, na select que passei tem a conta certinha para pegar o valor correto da E5, acho que com mais umas 15, 20 linhas vc resolve o problema.
Se precisar de ajuda me adiciona no Skype: anderson.barbosa.btu
Abraço.
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Relatório com data retroativa
Tempo para a criação da página:0.103 segundos