- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Totalizadores Treport
×
Linguagem de Programação ADVPL
Perguntas Totalizadores Treport
- Gustavo
- Autor do Tópico
- Visitante
11 anos 9 meses atrás - 11 anos 9 meses atrás #10344
por Gustavo
Totalizadores Treport foi criado por Gustavo
Olá!
Estou com uma grande duvida. Estou fazendo um relatório com treport que contempla mais de uma filial e possuo as quebras (TRFunction), gostaria que elas não fossem executadas na troca de uma filial e se o CFOP anterior for menor de 5000 e o posterior maior de 5000. As informações estão ordenas por filial e quebrei a página e imprimi na troca de filial e CFOP. Ainda ocorre a impressão das quebras zeradas, pois continua obedecendo a regra se houver troca do código bbc. Segue exemplo e código.
For nI := 1 To Len(aImp)
z := nI
if z = 1
oReport:Section(1):Init()
endif
if nI = 1
oReport:SkipLine(
if (mv_par06 = 1 .Or. mv_par06 = 4)
oReport:PrtCenter("ENTRADAS FILIAL: "+aImp[z,1])
else
oReport:PrtCenter("SAIDAS FILIAL: "+aImp[z,1])
Endif
oReport:SkipLine(1)
oReport:ThinLine()
Endif
if nI <> 1
if (val(aImp[z,1]) <> val(aImp[z-1,1]))
oReport:Section(1):PrintTHeader(.T.)
oReport:Section(1):EvalBreak(.T.,.T.)
aImp[z-1,3] := aImp[z,3]
aImp[z-1,2] := aImp[z,2]
oReport:EndPage(.T.)
oReport:StartPage()
if (val(aImp[z,4]) < 5000 .And. val(aImp[z-1,4]) < 5000)
oReport:PrtCenter("ENTRADAS FILIAL: "+aImp[z,1])
else
oReport:PrtCenter("SAIDA FILIAL: "+aImp[z,1])
endif
oReport:SkipLine(1)
oReport:ThinLine()
elseif (val(aImp[z,1]) == val(aImp[z-1,1])) .And. (val(aImp[z,4]) > 5000 .And. val(aImp[z-1,4]) < 5000)
oReport:Section(1):EvalBreak(.T.,.T.)
aImp[z-1,3] := aImp[z,3]
aImp[z-1,2] := aImp[z,2]
oReport:EndPage(.T.)
oReport:StartPage()
oReport:PrtCenter("SAIDA FILIAL: "+aImp[z,1])
oReport:SkipLine(1)
oReport:ThinLine()
ENDIF
Endif
oReport:Section(1):PrintLine()
Next
oReport:Section(1):Finish()
Se alguém possuir um exemplo de como eu posso zerar as referencias dos totalizadores ou outro modo de que não apareça as quebras na próxima página agradeço. Segue a página de como está o relatório agora e o que eu quero retirar.
Estou com uma grande duvida. Estou fazendo um relatório com treport que contempla mais de uma filial e possuo as quebras (TRFunction), gostaria que elas não fossem executadas na troca de uma filial e se o CFOP anterior for menor de 5000 e o posterior maior de 5000. As informações estão ordenas por filial e quebrei a página e imprimi na troca de filial e CFOP. Ainda ocorre a impressão das quebras zeradas, pois continua obedecendo a regra se houver troca do código bbc. Segue exemplo e código.
For nI := 1 To Len(aImp)
z := nI
if z = 1
oReport:Section(1):Init()
endif
if nI = 1
oReport:SkipLine(
if (mv_par06 = 1 .Or. mv_par06 = 4)
oReport:PrtCenter("ENTRADAS FILIAL: "+aImp[z,1])
else
oReport:PrtCenter("SAIDAS FILIAL: "+aImp[z,1])
Endif
oReport:SkipLine(1)
oReport:ThinLine()
Endif
if nI <> 1
if (val(aImp[z,1]) <> val(aImp[z-1,1]))
oReport:Section(1):PrintTHeader(.T.)
oReport:Section(1):EvalBreak(.T.,.T.)
aImp[z-1,3] := aImp[z,3]
aImp[z-1,2] := aImp[z,2]
oReport:EndPage(.T.)
oReport:StartPage()
if (val(aImp[z,4]) < 5000 .And. val(aImp[z-1,4]) < 5000)
oReport:PrtCenter("ENTRADAS FILIAL: "+aImp[z,1])
else
oReport:PrtCenter("SAIDA FILIAL: "+aImp[z,1])
endif
oReport:SkipLine(1)
oReport:ThinLine()
elseif (val(aImp[z,1]) == val(aImp[z-1,1])) .And. (val(aImp[z,4]) > 5000 .And. val(aImp[z-1,4]) < 5000)
oReport:Section(1):EvalBreak(.T.,.T.)
aImp[z-1,3] := aImp[z,3]
aImp[z-1,2] := aImp[z,2]
oReport:EndPage(.T.)
oReport:StartPage()
oReport:PrtCenter("SAIDA FILIAL: "+aImp[z,1])
oReport:SkipLine(1)
oReport:ThinLine()
ENDIF
Endif
oReport:Section(1):PrintLine()
Next
oReport:Section(1):Finish()
Se alguém possuir um exemplo de como eu posso zerar as referencias dos totalizadores ou outro modo de que não apareça as quebras na próxima página agradeço. Segue a página de como está o relatório agora e o que eu quero retirar.
Ultima edição: 11 anos 9 meses atrás por Gustavo. Razão: faltou anexo.
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Totalizadores Treport
Tempo para a criação da página:0.083 segundos