- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Relatórios
- TReport - Totalizadores
Perguntas TReport - Totalizadores
- Ludinei
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 2
- Obrigados Recebidos: 0
8 anos 3 meses atrás #31135
por Ludinei
TReport - Totalizadores foi criado por Ludinei
Bom dia!
Tentei e pesquisei muito antes de pedir uma ajuda aqui no fórum.
Tenho um relatório baseado em uma instrução SQL (MS SQL Server), que me traz poucos campos mas preciso de 3 totalizadores.
Os campos são Data, Documento, Conta Contábil, Valor de Débito e Crédito. A ordem é por Data e Documento.
Este relatório vai mostrar um bate da contabilidade por documento, ou seja, a somatória das contas de débito e crédito devem ser iguais.
Os totalizadores que preciso são:
Por Documento
Por Data
Geral
Tenho somente o total geral funcionando (se tento colocar outros não compila). Envio abaixo o fonte que construi:
#INCLUDE "Topconn.ch"
#INCLUDE "Protheus.ch"
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma | LCCTBR02 ºAutor ³Ludinei C Maistro º Data ³ 10/09/2016 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc. ³ Relatorio de Conferencia da Contabilidade. º±±
±±º ³ º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ Empresa º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
User Function LCCTBR02()
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Declaracao de variaveis ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Private oReport := Nil
Private oSecCab1 := Nil
Private oSecCab2 := Nil
Private oSecCab3 := Nil
Private cPerg := PadR ("LCCTBR02", Len (SX1->X1_GRUPO))
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Criacao e apresentacao das perguntas ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
PutSx1(cPerg,"01","Data Lancto de ?" ,'','',"mv_ch1","D",TamSx3 ("CT2_DATA")[1] ,0,,"G","","CT2","","","mv_par01","","","","","","","","","","","","","","","","")
PutSx1(cPerg,"02","Data Lancto Ate ?" ,'','',"mv_ch2","D",TamSx3 ("CT2_DATA")[1] ,0,,"G","","CT2","","","mv_par02","","","","","","","","","","","","","","","","")
PutSx1(cPerg,"03","Cta Contabil de ?" ,'','',"mv_ch3","C",TamSx3 ("CT2_DEBITO")[1] ,0,,"G","","CT2","","","mv_par03","","","","","","","","","","","","","","","","")
PutSx1(cPerg,"04","Cta Contabil Ate ?" ,'','',"mv_ch4","C",TamSx3 ("CT2_DEBITO")[1] ,0,,"G","","CT2","","","mv_par04","","","","","","","","","","","","","","","","")
PutSx1(cPerg,"05","Documento ?" ,'','',"mv_ch5","C",TamSx3 ("CT2_DOC")[1] ,0,,"G","","CT2","","","mv_par05","","","","","","","","","","","","","","","","")
PutSx1(cPerg,"06","Valor ?" ,'','',"mv_ch6","N",TamSx3 ("CT2_VALOR")[1] ,0,,"G","","CT2","","","mv_par06","","","","","","","","","","","","","","","","")
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Definicoes/preparacao para impressao ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Pergunte(cPerg,.F.)
oReport:= ReportDef()
oReport:PrintDialog()
Return Nil
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma | LCCTBR02 ºAutor ³Ludinei C Maistro º Data ³ 10/09/2016 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc. ³ Definição da estrutura do relatório. º±±
±±º ³ º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
Static Function ReportDef()
Local oReport := nil
Local oSection1 := nil
Local oSection2 := nil
Local oSection3 := nil
Local oBreak
Local oFunction
oReport := TReport():New("LCCTBR02","Conferencia de Lancamentos Contabeis",cPerg,{|oReport| PrintReport(oReport)},"Conferencia de Movimentação Contábil.")
oReport:SetPortrait(.T.)
oReport:SetTotalInLine(.F.)
oSection1 := TRSection():New( oReport , "Movimentos Contábeis", {"QRY"}, , .F. , .T. )
TRCell():New( oSection1, "DATA" , "QRY", "DATA" ,"@!", 10,,,,,"Left")
oSection2 := TRSection():New( oReport , "Movimentos Contábeis", {"QRY"}, , .F. , .T. )
TRCell():New( oSection2, "DOC" , "QRY", "DOCUMENTO" ,"", 20,,,,,"Left")
oSection3 := TRSection():New( oReport , "Movimentos Contábeis", {"QRY"}, , .F. , .T. )
TRCell():New( oSection3, "CONTA" , "QRY", "CONTA" ,"", 13,,,,,"Left")
TRCell():New( oSection3, "NOME" , "QRY", "DESCRIÇÃO" ,"", 50,,,,,"Left")
TRCell():New( oSection3, "DEB" , "QRY", "VLR DEBITO" ,"9,999,999.99", 12,,,,,"Right")
TRCell():New( oSection3, "CRED" , "QRY", "VLR CREDITO","9,999,999.99", 12,,,,,"Right")
//"oBreak := TRBreak():New(oSection2,oSection2:Cell("DOC"),"Sub Total")
TRFunction():New(oSection3:Cell("DEB") ,"DEB", "SUM",,,"@E 9,999,999,999",,.F.,.T.)
TRFunction():New(oSection3:Cell("CRED"),"CRED","SUM",,,"@E 9,999,999,999",,.F.,.T.)
//Define a impressão dos totalizadores em colunas
oReport:SetTotalInLine(.F.)
//quebra por seção
oSection1:SetPageBreak(.T.)
oSection1:setPageBreak(.T.)
Return (oReport)
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma | LCCTBR02 ºAutor ³Ludinei C Maistro º Data ³ 10/09/2016 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc. ³ º±±
±±º ³ º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
Static Function PrintReport(oReport)
Local cQuery := ""
Local oSection1 := oReport:Section(1)
Local oSection2 := oReport:Section(2)
Local oSection3 := oReport:Section(3)
Local cData := ""
Local cDoc := ""
cQuery := "select DATA, Doc, Conta, NOME, SUM(DEB) AS DEB, SUM(CRED) AS CRED from VW_CT2010_A "
cQuery += "where 1=1 "
if ! empty(MV_PAR01)
cQuery += "and DATA >="+dtos(MV_PAR01)+" "
EndIf
if ! empty(MV_PAR02)
cQuery += "and DATA <="+dtos(MV_PAR02)+" "
EndIf
if ! empty(MV_PAR03)
cQuery += "and Conta >="+MV_PAR03+" "
EndIf
if ! empty(MV_PAR04)
cQuery += "and Conta <="+MV_PAR04+" "
EndIf
if ! empty(MV_PAR05)
cQuery += "and Doc like '%"+alltrim(MV_PAR05)+"%' "
EndIf
if ! empty(MV_PAR06)
cQuery += "and Valor ="+str(MV_PAR06)+" "
EndIf
cQuery += "GROUP BY doc, conta, NOME, data ORDER BY 1,2,5 DESC, 6 DESC"
cQuery := ChangeQuery(cQuery)
If Select("QRY") > 0
Dbselectarea("QRY")
QRY->(DbClosearea())
EndIf
TcQuery cQuery New Alias "QRY"
oReport:SetMeter(QRY->(RecCount()))
while QRY->(!EOF())
if oReport:Cancel()
Exit
endif
oSection1:Init()
oReport:IncMeter()
cData := QRY->DATA
oSection1:Cell("DATA"):SetValue(right(QRY->DATA,2)+"/"+substring(QRY->DATA,5,2)+"/"+LEFT(QRY->DATA,2))
oSection1:PrintLine()
while QRY->DATA=cData
cDoc := QRY->Doc
Osection2:init()
oSection2:Cell("DOC"):SetValue(QRY->DOC)
oSection2:PrintLine()
oSection3:init()
while QRY->DOC=cDoc
oReport:IncMeter()
oSection3:Cell("CONTA"):SetValue(QRY->CONTA)
oSection3:Cell("NOME"):SetValue(QRY->NOME)
oSection3:Cell("DEB"):SetValue(QRY->DEB)
oSection3:Cell("CRED"):SetValue(QRY->CRED)
oSection3:PrintLine()
QRY->(DBSKIP())
enddo
//finalizo a TERCEIRA seção para que seja reiniciada para o proximo registro
oSection3:Finish()
//imprimo uma linha para separar uma NCM de outra
oReport:ThinLine()
//finalizo a SEGUNDA seção
oSection2:Finish()
enddo
//imprimo uma linha para separar uma NCM de outra
oReport:ThinLine()
//finalizo a primeira seção
oSection1:Finish()
enddo
Return Nil
Agradeço qualquer ajuda!
Tentei e pesquisei muito antes de pedir uma ajuda aqui no fórum.
Tenho um relatório baseado em uma instrução SQL (MS SQL Server), que me traz poucos campos mas preciso de 3 totalizadores.
Os campos são Data, Documento, Conta Contábil, Valor de Débito e Crédito. A ordem é por Data e Documento.
Este relatório vai mostrar um bate da contabilidade por documento, ou seja, a somatória das contas de débito e crédito devem ser iguais.
Os totalizadores que preciso são:
Por Documento
Por Data
Geral
Tenho somente o total geral funcionando (se tento colocar outros não compila). Envio abaixo o fonte que construi:
#INCLUDE "Topconn.ch"
#INCLUDE "Protheus.ch"
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma | LCCTBR02 ºAutor ³Ludinei C Maistro º Data ³ 10/09/2016 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc. ³ Relatorio de Conferencia da Contabilidade. º±±
±±º ³ º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ Empresa º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
User Function LCCTBR02()
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Declaracao de variaveis ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Private oReport := Nil
Private oSecCab1 := Nil
Private oSecCab2 := Nil
Private oSecCab3 := Nil
Private cPerg := PadR ("LCCTBR02", Len (SX1->X1_GRUPO))
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Criacao e apresentacao das perguntas ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
PutSx1(cPerg,"01","Data Lancto de ?" ,'','',"mv_ch1","D",TamSx3 ("CT2_DATA")[1] ,0,,"G","","CT2","","","mv_par01","","","","","","","","","","","","","","","","")
PutSx1(cPerg,"02","Data Lancto Ate ?" ,'','',"mv_ch2","D",TamSx3 ("CT2_DATA")[1] ,0,,"G","","CT2","","","mv_par02","","","","","","","","","","","","","","","","")
PutSx1(cPerg,"03","Cta Contabil de ?" ,'','',"mv_ch3","C",TamSx3 ("CT2_DEBITO")[1] ,0,,"G","","CT2","","","mv_par03","","","","","","","","","","","","","","","","")
PutSx1(cPerg,"04","Cta Contabil Ate ?" ,'','',"mv_ch4","C",TamSx3 ("CT2_DEBITO")[1] ,0,,"G","","CT2","","","mv_par04","","","","","","","","","","","","","","","","")
PutSx1(cPerg,"05","Documento ?" ,'','',"mv_ch5","C",TamSx3 ("CT2_DOC")[1] ,0,,"G","","CT2","","","mv_par05","","","","","","","","","","","","","","","","")
PutSx1(cPerg,"06","Valor ?" ,'','',"mv_ch6","N",TamSx3 ("CT2_VALOR")[1] ,0,,"G","","CT2","","","mv_par06","","","","","","","","","","","","","","","","")
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Definicoes/preparacao para impressao ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Pergunte(cPerg,.F.)
oReport:= ReportDef()
oReport:PrintDialog()
Return Nil
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma | LCCTBR02 ºAutor ³Ludinei C Maistro º Data ³ 10/09/2016 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc. ³ Definição da estrutura do relatório. º±±
±±º ³ º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
Static Function ReportDef()
Local oReport := nil
Local oSection1 := nil
Local oSection2 := nil
Local oSection3 := nil
Local oBreak
Local oFunction
oReport := TReport():New("LCCTBR02","Conferencia de Lancamentos Contabeis",cPerg,{|oReport| PrintReport(oReport)},"Conferencia de Movimentação Contábil.")
oReport:SetPortrait(.T.)
oReport:SetTotalInLine(.F.)
oSection1 := TRSection():New( oReport , "Movimentos Contábeis", {"QRY"}, , .F. , .T. )
TRCell():New( oSection1, "DATA" , "QRY", "DATA" ,"@!", 10,,,,,"Left")
oSection2 := TRSection():New( oReport , "Movimentos Contábeis", {"QRY"}, , .F. , .T. )
TRCell():New( oSection2, "DOC" , "QRY", "DOCUMENTO" ,"", 20,,,,,"Left")
oSection3 := TRSection():New( oReport , "Movimentos Contábeis", {"QRY"}, , .F. , .T. )
TRCell():New( oSection3, "CONTA" , "QRY", "CONTA" ,"", 13,,,,,"Left")
TRCell():New( oSection3, "NOME" , "QRY", "DESCRIÇÃO" ,"", 50,,,,,"Left")
TRCell():New( oSection3, "DEB" , "QRY", "VLR DEBITO" ,"9,999,999.99", 12,,,,,"Right")
TRCell():New( oSection3, "CRED" , "QRY", "VLR CREDITO","9,999,999.99", 12,,,,,"Right")
//"oBreak := TRBreak():New(oSection2,oSection2:Cell("DOC"),"Sub Total")
TRFunction():New(oSection3:Cell("DEB") ,"DEB", "SUM",,,"@E 9,999,999,999",,.F.,.T.)
TRFunction():New(oSection3:Cell("CRED"),"CRED","SUM",,,"@E 9,999,999,999",,.F.,.T.)
//Define a impressão dos totalizadores em colunas
oReport:SetTotalInLine(.F.)
//quebra por seção
oSection1:SetPageBreak(.T.)
oSection1:setPageBreak(.T.)
Return (oReport)
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma | LCCTBR02 ºAutor ³Ludinei C Maistro º Data ³ 10/09/2016 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc. ³ º±±
±±º ³ º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
Static Function PrintReport(oReport)
Local cQuery := ""
Local oSection1 := oReport:Section(1)
Local oSection2 := oReport:Section(2)
Local oSection3 := oReport:Section(3)
Local cData := ""
Local cDoc := ""
cQuery := "select DATA, Doc, Conta, NOME, SUM(DEB) AS DEB, SUM(CRED) AS CRED from VW_CT2010_A "
cQuery += "where 1=1 "
if ! empty(MV_PAR01)
cQuery += "and DATA >="+dtos(MV_PAR01)+" "
EndIf
if ! empty(MV_PAR02)
cQuery += "and DATA <="+dtos(MV_PAR02)+" "
EndIf
if ! empty(MV_PAR03)
cQuery += "and Conta >="+MV_PAR03+" "
EndIf
if ! empty(MV_PAR04)
cQuery += "and Conta <="+MV_PAR04+" "
EndIf
if ! empty(MV_PAR05)
cQuery += "and Doc like '%"+alltrim(MV_PAR05)+"%' "
EndIf
if ! empty(MV_PAR06)
cQuery += "and Valor ="+str(MV_PAR06)+" "
EndIf
cQuery += "GROUP BY doc, conta, NOME, data ORDER BY 1,2,5 DESC, 6 DESC"
cQuery := ChangeQuery(cQuery)
If Select("QRY") > 0
Dbselectarea("QRY")
QRY->(DbClosearea())
EndIf
TcQuery cQuery New Alias "QRY"
oReport:SetMeter(QRY->(RecCount()))
while QRY->(!EOF())
if oReport:Cancel()
Exit
endif
oSection1:Init()
oReport:IncMeter()
cData := QRY->DATA
oSection1:Cell("DATA"):SetValue(right(QRY->DATA,2)+"/"+substring(QRY->DATA,5,2)+"/"+LEFT(QRY->DATA,2))
oSection1:PrintLine()
while QRY->DATA=cData
cDoc := QRY->Doc
Osection2:init()
oSection2:Cell("DOC"):SetValue(QRY->DOC)
oSection2:PrintLine()
oSection3:init()
while QRY->DOC=cDoc
oReport:IncMeter()
oSection3:Cell("CONTA"):SetValue(QRY->CONTA)
oSection3:Cell("NOME"):SetValue(QRY->NOME)
oSection3:Cell("DEB"):SetValue(QRY->DEB)
oSection3:Cell("CRED"):SetValue(QRY->CRED)
oSection3:PrintLine()
QRY->(DBSKIP())
enddo
//finalizo a TERCEIRA seção para que seja reiniciada para o proximo registro
oSection3:Finish()
//imprimo uma linha para separar uma NCM de outra
oReport:ThinLine()
//finalizo a SEGUNDA seção
oSection2:Finish()
enddo
//imprimo uma linha para separar uma NCM de outra
oReport:ThinLine()
//finalizo a primeira seção
oSection1:Finish()
enddo
Return Nil
Agradeço qualquer ajuda!
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Relatórios
- TReport - Totalizadores
Tempo para a criação da página:0.086 segundos