TrBreak x TRFunction: Meu totalizador de sessão em um relatório está trazendo várias linhas após a quebra, como corrigir?

Olá!

Estou fazendo um relatório TREPORT, onde criei uma quebra com o TREBREAK e criei o totalizador com o TRFunction, porém, após cada quebra de sessão, além do totalizador da linha, são impressas diversas linhas com supostos totalizadores que não entendi de onde vem.

Alguém tem exemplo de Totalizador da sessão de um Treport que funcione bem?

O meu, que não está legal, está da seguinte forma:

Local oSecao1 := oReport:Section(1) Local nCount := 0 Local oBreak Local oTotsec1

dbselectArea(cAliasApu) dbSetOrder(1) (cAliasApu)->(dbGoTop())

oSecao1:Init()

While !EOF() oReport:SetMeter(nCount)

oSecao1:Cell("NM_PRC"):SetBlock( { || (cAliasApu)->EMP } ) oSecao1:Cell("DTMOV"):SetBlock( { || (cAliasApu)->DTMOV } ) oSecao1:Cell("PREFIXO"):SetBlock( { || (cAliasApu)->PREFIXO} ) oSecao1:Cell("NUMERO"):SetBlock( { || (cAliasApu)->NUMERO} ) oSecao1:Cell("TIPO"):SetBlock( { || (cAliasApu)->TIPO } ) oSecao1:Cell("PARCELA"):SetBlock( { || (cAliasApu)->PARCELA} ) oSecao1:Cell("CLIENTE"):SetBlock({ || (cAliasApu)->CLIENTE} ) oSecao1:Cell("LOJA"):SetBlock( { || (cAliasApu)->LOJA } ) oSecao1:Cell("NMCLI"):SetBlock( { || (cAliasApu)->NMCLI } ) oSecao1:Cell("EMISSAO"):SetBlock( { || (cAliasApu)->EMISSAO} ) oSecao1:Cell("VENCTO"):SetBlock( { || (cAliasApu)->VENCTO} ) oSecao1:Cell("VENDED"):SetBlock( { || (cAliasApu)->VENDED} ) oSecao1:Cell("NMVEND"):SetBlock( { || (cAliasApu)->NMVEND} ) oSecao1:Cell("COMIS"):SetBlock( { || (cAliasApu)->COMIS } ) oSecao1:Cell("VALREC"):SetBlock( { || (cAliasApu)->VALREC} ) oSecao1:PrintLine()

oBreak:=TRBreak():NEW(oSecao1,{||(cAliasApu)->NMVEND},"Vendedor",/.T./,,/.T./) oBreak:OnprintTotal({||oReport:SkipLine(2)})

oTotSec1:= TRFunction():New(oSecao1:Cell("VALREC"),"Vendedor: "+(cAliasApu)->NMVEND,"SUM",oBreak,,,,.T.,.F.,.F.,oSecao1)

(cAliasApu)->(DbSkip())

If EOF() oSecao1:Finish() EndIf

EndDo

compartilhar
  • Olá, seu totalizador está dentro do while, isso pode estar gerando o problema. Tente criar uma variável para o totalizador e criar a TRFunction fora do While e antes do Finish da seção.

    Daniel Mendes   15 de Feb de 2023
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do TOTVS DevForum!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags treport trbreak trfunction ou faça a sua própria pergunta.