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
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