×
Linguagem de Programação ADVPL
Perguntas Totalizador
- flavianoan
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 58
- Obrigados Recebidos: 0
9 anos 7 meses atrás #27630
por flavianoan
Totalizador foi criado por flavianoan
Boa tarde a todos, eu estou aprendendo a Desenvolver Relatório em Treport, ja consigo fazer algumas coisas mas estou tendo dificultadas em colocar um totalizador no numero de pedidos.
estou colocando o fonte a baixo.
#Include 'Protheus.ch'
#INCLUDE "Topconn.ch"
/*
| AUTOR:Flaviano Ferreira dos Santos
| relatorio de Pedidos nao atendidos, para gestao da qualidades.
*/*
User Function VMREL05()
Private oReport := Nil
Private oSecCab := Nil
Private cPerg := Padr("VMREL05", Len(SX1->X1_GRUPO))
AjustaSX1(cPerg)
ReportDef()
oReport:PrintDialog()
Return
Static Function AjustaSX1(cPerg)
Local aAreaAtu := GetArea()
Local aAreaSX1 := SX1->( GetArea() )
PutSx1(cPerg,"01","DE ?" ,'','',"mv_ch1","D",TamSx3 ("C5_EMISSAO")[1] ,0,,"G","","","","","mv_par01","","","","","","","","","","","","","","","","")
PutSx1(cPerg,"02","ATE ?" ,'','',"mv_ch1","D",TamSx3 ("C5_EMISSAO")[1] ,0,,"G","","","","","mv_par02","","","","","","","","","","","","","","","","")
RestArea( aAreaSX1 )
RestArea( aAreaAtu )
Return()
Static Function ReportDef()
//Local oSection1
Local oSection := oReport:Section(1)
oReport := TReport():New("VMREL05","Pedidos nao Atendidos",cPerg,{|oReport| PrintReport(oReport)},"Pedidos nao Atendidos.")
TRFunction():New(oSection1 :Cell("C5_NUM"),"TOTAL GERAL" ,"COUNT",,,"@E 999999",,.F.,.T.)
oreport:nfontbody:=8 //tamnho da fonte
oreport:cfontbody:="Arial"//tipo de Fonte
oReport:SetLandscape(.F.)
oSecCab := TRSection():New( oReport , "PEDIDOS", {"QRY"} )
TRCell():New( oSecCab, "C5_NUM" , "QRY", "PEDIDO")
TRCell():New( oSecCab, "C5_CLIENT" , "QRY", "CODIGO")
TRCell():New( oSecCab, "C5_YNOMECL" , "QRY", "CLIENTE")
TRCell():New( oSecCab, "C5_VEND1" , "QRY", "VENDEDOR")
TRCell():New( oSecCab, "C5_EMISSAO" , "QRY", "DT EMISSAO")
Return Nil
Static Function PrintReport(oReport)
Local cQuery := ""
Pergunte(cPerg,.F.)
cQuery += " SELECT " + CRLF
cQuery += " C5_NUM ," + CRLF
cQuery += " C5_CLIENT ," + CRLF
cQuery += " C5_YNOMECL ," + CRLF
cQuery += " C5_VEND1 , " + CRLF
cQuery += " C5_EMISSAO ," + CRLF
cQuery += "C5_YTOTAL , " + CRLF
cQuery += " C5_NOTA " + CRLF
cQuery += " FROM " + RetSqlName("SC5") +" SC5 " + CRLF
//cQuery += " JOIN " + RetSqlName("SA1") +" SA1 ON SF3.F3_CLIEFOR = SA1.A1_COD AND SA1.D_E_L_E_T_ = ''" + CRLF
cQuery += " WHERE SC5.C5_FILIAL = '" + xFilial ("SC5") + "'
cQuery += " AND SC5.D_E_L_E_T_ = ' '" + CRLF
cQuery += "AND SC5.C5_NOTA =''" + CRLF
cQuery += " AND SC5.C5_EMISSAO >= " + ValToSql(mv_par01) + CRLF
cQuery += " AND SC5.C5_EMISSAO <= " + ValToSql(mv_par02) + CRLF
cQuery := ChangeQuery(cQuery)
If Select("QRY") > 0
Dbselectarea("QRY")
QRY->(DbClosearea())
EndIf
TcQuery cQuery New Alias "QRY"
oSecCab:BeginQuery()
oSecCab:EndQuery({{"QRY"},cQuery})
TcSetField('QRY' , "C5_EMISSAO" , "D" )// esta funçao converte o tipo de data EUA para BR.
oSection1:SetTotalInLine(.F.)
oSecCab:Print()
Return Nil
obrigado.
estou colocando o fonte a baixo.
#Include 'Protheus.ch'
#INCLUDE "Topconn.ch"
/*
| AUTOR:Flaviano Ferreira dos Santos
| relatorio de Pedidos nao atendidos, para gestao da qualidades.
*/*
User Function VMREL05()
Private oReport := Nil
Private oSecCab := Nil
Private cPerg := Padr("VMREL05", Len(SX1->X1_GRUPO))
AjustaSX1(cPerg)
ReportDef()
oReport:PrintDialog()
Return
Static Function AjustaSX1(cPerg)
Local aAreaAtu := GetArea()
Local aAreaSX1 := SX1->( GetArea() )
PutSx1(cPerg,"01","DE ?" ,'','',"mv_ch1","D",TamSx3 ("C5_EMISSAO")[1] ,0,,"G","","","","","mv_par01","","","","","","","","","","","","","","","","")
PutSx1(cPerg,"02","ATE ?" ,'','',"mv_ch1","D",TamSx3 ("C5_EMISSAO")[1] ,0,,"G","","","","","mv_par02","","","","","","","","","","","","","","","","")
RestArea( aAreaSX1 )
RestArea( aAreaAtu )
Return()
Static Function ReportDef()
//Local oSection1
Local oSection := oReport:Section(1)
oReport := TReport():New("VMREL05","Pedidos nao Atendidos",cPerg,{|oReport| PrintReport(oReport)},"Pedidos nao Atendidos.")
TRFunction():New(oSection1 :Cell("C5_NUM"),"TOTAL GERAL" ,"COUNT",,,"@E 999999",,.F.,.T.)
oreport:nfontbody:=8 //tamnho da fonte
oreport:cfontbody:="Arial"//tipo de Fonte
oReport:SetLandscape(.F.)
oSecCab := TRSection():New( oReport , "PEDIDOS", {"QRY"} )
TRCell():New( oSecCab, "C5_NUM" , "QRY", "PEDIDO")
TRCell():New( oSecCab, "C5_CLIENT" , "QRY", "CODIGO")
TRCell():New( oSecCab, "C5_YNOMECL" , "QRY", "CLIENTE")
TRCell():New( oSecCab, "C5_VEND1" , "QRY", "VENDEDOR")
TRCell():New( oSecCab, "C5_EMISSAO" , "QRY", "DT EMISSAO")
Return Nil
Static Function PrintReport(oReport)
Local cQuery := ""
Pergunte(cPerg,.F.)
cQuery += " SELECT " + CRLF
cQuery += " C5_NUM ," + CRLF
cQuery += " C5_CLIENT ," + CRLF
cQuery += " C5_YNOMECL ," + CRLF
cQuery += " C5_VEND1 , " + CRLF
cQuery += " C5_EMISSAO ," + CRLF
cQuery += "C5_YTOTAL , " + CRLF
cQuery += " C5_NOTA " + CRLF
cQuery += " FROM " + RetSqlName("SC5") +" SC5 " + CRLF
//cQuery += " JOIN " + RetSqlName("SA1") +" SA1 ON SF3.F3_CLIEFOR = SA1.A1_COD AND SA1.D_E_L_E_T_ = ''" + CRLF
cQuery += " WHERE SC5.C5_FILIAL = '" + xFilial ("SC5") + "'
cQuery += " AND SC5.D_E_L_E_T_ = ' '" + CRLF
cQuery += "AND SC5.C5_NOTA =''" + CRLF
cQuery += " AND SC5.C5_EMISSAO >= " + ValToSql(mv_par01) + CRLF
cQuery += " AND SC5.C5_EMISSAO <= " + ValToSql(mv_par02) + CRLF
cQuery := ChangeQuery(cQuery)
If Select("QRY") > 0
Dbselectarea("QRY")
QRY->(DbClosearea())
EndIf
TcQuery cQuery New Alias "QRY"
oSecCab:BeginQuery()
oSecCab:EndQuery({{"QRY"},cQuery})
TcSetField('QRY' , "C5_EMISSAO" , "D" )// esta funçao converte o tipo de data EUA para BR.
oSection1:SetTotalInLine(.F.)
oSecCab:Print()
Return Nil
obrigado.
Por favor Acessar ou Registrar para participar da conversa.
- flavianoan
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 58
- Obrigados Recebidos: 0
9 anos 7 meses atrás #27643
por flavianoan
Respondido por flavianoan no tópico Totalizador
Resolvido, acrescentei a função abaixo.
TRFunction():New(oSecCab:Cell("C5_NUM"),NIL,"COUNT") // funçao que mostra a quantidade de pedidos
att,
TRFunction():New(oSecCab:Cell("C5_NUM"),NIL,"COUNT") // funçao que mostra a quantidade de pedidos
att,
Por favor Acessar ou Registrar para participar da conversa.
Tempo para a criação da página:0.074 segundos