× Linguagem de Programação ADVPL

Perguntas Não repetir cabeçalho no treports

Mais
7 anos 9 meses atrás #30968 por adrianocarneirocosta
Boa noite,

Gostaria de sabe como faço para não fica repetir o cabeçalho neste fonte?

#INCLUDE "PROTHEUS.CH"
#INCLUDE "TOPCONN.CH"
#INCLUDE "TBICONN.CH"
#DEFINE CRLF CHR(13) + CHR(10)


User Function PEC000003()
Local aRegs := {}

//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Declaracao de variaveis ? ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Private oReport := {}, oSection1 := {}
Private cPerg := PadR("PEC000003", Len(SX1->X1_GRUPO))
aAdd(aRegs,{cPerg,'01','Emissao de ?' ,'','','mv_ch1','D', 08,0,0,'G','','mv_par01','','','','','',''})
aAdd(aRegs,{cPerg,'02','Emissao Ate ?' ,'','','mv_ch2','D', 08,0,0,'G','','mv_par02','','','','','',''})
aAdd(aRegs,{cPerg,'03','Filial De ?' ,'','','mv_ch3','C', 04,0,0,'G','','mv_par03','','','','','',''})
aAdd(aRegs,{cPerg,'04','Filial Ate ?' ,'','','mv_ch4','C', 04,0,0,'G','','mv_par04','','','','','',''})
aAdd(aRegs,{cPerg,'05','Grupo De ?' ,'','','mv_ch5','C', 04,0,0,'G','','mv_par05','','','','','',''})
aAdd(aRegs,{cPerg,'06','Grupo Ate ?' ,'','','mv_ch6','C', 04,0,0,'G','','mv_par06','','','','','',''})
aAdd(aRegs,{cPerg,'07','Tipo De ?' ,'','','mv_ch7','C', 02,0,0,'G','','mv_par07','','','','','',''})
aAdd(aRegs,{cPerg,'08','Tipo Ate ?' ,'','','mv_ch8','C', 02,0,0,'G','','mv_par08','','','','','',''})
aAdd(aRegs,{cPerg,'09','Familia ?' ,'','','mv_ch9','C', 02,0,0,'G','','mv_par09','','','','','',''})
DbSelectArea('SX1')
SX1->(DbSetOrder(1))

For nX:=1 to Len(aRegs)
If RecLock('SX1',Iif(!SX1->(DbSeek(PadR(aRegs[nx][01],10)+aRegs[nx][02])),.T.,.F.))
Replace SX1->X1_GRUPO With aRegs[nx][01]
Replace SX1->X1_ORDEM With aRegs[nx][02]
Replace SX1->X1_PERGUNTE With aRegs[nx][03]
Replace SX1->X1_PERSPA With aRegs[nx][04]
Replace SX1->X1_PERENG With aRegs[nx][05]
Replace SX1->X1_VARIAVL With aRegs[nx][06]
Replace SX1->X1_TIPO With aRegs[nx][07]
Replace SX1->X1_TAMANHO With aRegs[nx][08]
Replace SX1->X1_DECIMAL With aRegs[nx][09]
Replace SX1->X1_PRESEL With aRegs[nx][10]
Replace SX1->X1_GSC With aRegs[nx][11]
Replace SX1->X1_VALID With aRegs[nx][12]
Replace SX1->X1_VAR01 With aRegs[nx][13]
Replace SX1->X1_DEF01 With aRegs[nx][14]
Replace SX1->X1_DEF02 With aRegs[nx][15]
Replace SX1->X1_DEF03 With aRegs[nx][16]
Replace SX1->X1_DEF04 With aRegs[nx][17]
Replace SX1->X1_DEF05 With aRegs[nx][18]
Replace SX1->X1_F3 With aRegs[nx][19]
MsUnlock('SX1')
Else
Help('',1,'REGNOIS')
Endif
Next nX

ReportDef()
oReport:PrintDialog()
Return

Static Function ReportDef()

oReport := TReport():New("PEC000003","Relatorio de Vendas por grupo",cPerg,{|oReport| PrintReport(oReport)}," Resumo por grupo")
oReport:SetLandscape(.T.)

if !Empty(oReport:uParam)
Pergunte(oReport:uParam,.F.)
endif

//Primeira Sessao dados da Campanha
oSection1 := TRSection():New( oReport , "Cabecalho", {"QRY1"} )
TRCell():New(oSection1,"D2_FILIAL" ,"QRY1" ,"Filial" , , 10)
TRCell():New(oSection1,"D2_GRUPO" ,"QRY1" ,"Grupo" , , 10)
TRCell():New(oSection1,"QUANTIDADE" ,"QRY1" ,"Quantidade" , , 10)
TRCell():New(oSection1,"VALOR" ,"QRY1" ,"Valor total" , "@E 999,999,999.99" , 10)

TRFunction():New(oSection1:Cell("QUANTIDADE"),/*cId*/,"SUM",/*oBreak*/,/*cTitle*/,/*cPicture*/,/*uFormula*/,.F.,.T.,.F.,oSection1)
TRFunction():New(oSection1:Cell("VALOR"),/*cId*/,"SUM",/*oBreak*/,/*cTitle*/,"@E 999,999,999.99",/*uFormula*/,.F.,.T.,.F.,oSection1)


Return Nil


Static Function PrintReport(oReport)

Local cPulaLinha := CHR(13) + CHR(10)
Local cQuery := ""
Pergunte(cPerg,.F.)

If Select("QRY1") > 0
QRY1->(DbCloseArea())
EndIf
//cabeçalho do relatório
cQuery := "SELECT" + cPulaLinha
cQuery += "D2_FILIAL,D2_GRUPO,SUM(D2_QUANT) AS QUANTIDADE,SUM(D2_VALBRUT) AS VALOR from " + RetSqlName("SD2") + ""+ cPulaLinha
cQuery += "WHERE D2_EMISSAO >= '"+ DTOS(MV_PAR01) +"' AND D2_EMISSAO <= '"+ DTOS(MV_PAR02) +"'" + cPulaLinha
cQuery += "AND D2_FILIAL BETWEEN '"+ MV_PAR03 +"' AND '"+ MV_PAR04 +"'" + cPulaLinha
cQuery += "AND D2_GRUPO BETWEEN '"+ MV_PAR05 +"' AND '"+ MV_PAR06 +"'" + cPulaLinha
cQuery += "AND D2_TP BETWEEN '"+ MV_PAR07 +"' AND '"+ MV_PAR08 +"'" + cPulaLinha
cQuery += "AND D2_GRUPO LIKE '"+MV_PAR09+"%'" + cPulaLinha
cQuery += "AND D_E_L_E_T_='' AND D2_TIPO<>'D' GROUP BY D2_GRUPO,D2_FILIAL ORDER BY D2_GRUPO " + cPulaLinha

//Funcao ChangeQuery - Funcao para compatibilidade de banco
cQuery := ChangeQuery(cQuery)


//TcQuery VARIAVEL_QUERY New Alias "NOME DI ALIAS"
TcQuery cQuery New Alias "QRY1"

If QRY1->(EOF())
MSGInfo("Nao ha dados a serem exibidos!")
QRY1->(dbCloseArea())
Return (.F.)
EndIf

dbSelectArea("QRY1")
QRY1->(dbGoTop())

oReport:SetMeter(QRY1->(LastRec()))

//Irei percorrer todos os meus registros
While QRY1->(!Eof())

If oReport:Cancel()
Exit
EndIf

//inicializo a primeira seção
oSection1:Init()

oReport:IncMeter()

//imprimo a primeira seção
oSection1:Cell("D2_FILIAL"):SetValue(QRY1->D2_FILIAL)
oSection1:Cell("D2_GRUPO"):SetValue(QRY1->D2_GRUPO)
oSection1:Cell("QUANTIDADE"):SetValue(QRY1->QUANTIDADE)
oSection1:Cell("VALOR"):SetValue(QRY1->VALOR)

oSection1:Printline()


//imprimo uma linha para separar uma NOME de outra
oReport:ThinLine()
//finalizo a primeira seção
oSection1:Finish()
QRY1->(dbSkip())

Enddo
Return Nil

Por favor Acessar ou Registrar para participar da conversa.

Mais
7 anos 8 meses atrás #31050 por Tony.totvs
Olá,

Tenta usar esse comando:

oReport:HideHeader()

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.096 segundos
Joomla templates by a4joomla