#include "protheus.ch" User Function MyTReport() Local oReport := TReport():New('TITULO',"MyTReport",/*cPerg*/,{|oReport| __PRPrint(oReport)},,,,,,,,) Local nI Local oBreak oReport:SetTotalInLine(.F.) oReport:SetTitle('Protheus Report Utility') oReport:SetLineHeight(30) oReport:SetColSpace(1) oReport:SetLeftMargin(0) oReport:oPage:SetPageNumber(1) oReport:cFontBody := 'Courier New' oReport:nFontBody := 6 oReport:lBold := .F. oReport:lUnderLine := .F. oReport:lHeaderVisible := .T. oReport:lFooterVisible := .T. oReport:lParamPage := .F. oTREPORT02:= TRSection():New(oReport,'Contas a Receber',,,,,,,,,,,,,,,,,,,) oTREPORT02:SetTotalInLine(.F.) oTREPORT02:SetTotalText('Contas a Receber') oTREPORT02:lUserVisible := .T. oTREPORT02:lHeaderVisible := .F. oTREPORT02:SetLineStyle(.F.) oTREPORT02:SetLineHeight(30) oTREPORT02:SetColSpace(1) oTREPORT02:SetLeftMargin(0) oTREPORT02:SetLinesBefore(0) oTREPORT02:SetCols(0) oTREPORT02:SetHeaderSection(.T.) oTREPORT02:SetHeaderPage(.F.) oTREPORT02:SetHeaderBreak(.F.) oTREPORT02:SetLineBreak(.F.) oTREPORT02:SetAutoSize(.F.) oTREPORT02:SetPageBreak(.F.) oTREPORT02:SetClrBack(16777215) oTREPORT02:SetClrFore(0) oTREPORT02:SetBorder('') oTREPORT02:SetBorder('',,,.T.) oTREPORT02:aTable := {} oTREPORT02:AddTable('SE1') oTREPORT02:AddTable('SA1') oTREPORT02:OnPrintLine({|| If(SE1->E1_FILIAL $ '01|02|', .T., .F.)}) TRCell():New(oTREPORT02,'__NEW__001','','',,,,,,,,,,,,) oTREPORT02:Cell("__NEW__001"):SetName("A1_NOME") oTREPORT02:Cell("A1_NOME"):cAlias := "SA1" oTREPORT02:Cell("A1_NOME"):SetTitle("Nome") oTREPORT02:Cell("A1_NOME"):SetSize(40) oTREPORT02:Cell("A1_NOME"):SetPicture("@!") oTREPORT02:Cell("A1_NOME"):SetAutoSize(.F.) oTREPORT02:Cell("A1_NOME"):SetLineBreak(.F.) oTREPORT02:Cell("A1_NOME"):SetHeaderSize(.F.) oTREPORT02:Cell("A1_NOME"):nAlign := 1 oTREPORT02:Cell("A1_NOME"):nHeaderAlign := 1 oTREPORT02:Cell("A1_NOME"):SetClrBack(16777215) oTREPORT02:Cell("A1_NOME"):SetClrFore(0) oTREPORT02:Cell("A1_NOME"):cOrder := "A0" oTREPORT02:Cell("A1_NOME"):nType := 1 oTREPORT02:Cell("A1_NOME"):cFormula := "" oTREPORT02:Cell("A1_NOME"):cRealFormula := "" oTREPORT02:Cell("A1_NOME"):cUserFunction := "" oTREPORT02:Cell("A1_NOME"):lVisible := .T. oTREPORT02:Cell("A1_NOME"):SetBorder("") oTREPORT02:Cell("A1_NOME"):SetBorder("",,,.T.) TRCell():New(oTREPORT02,'__NEW__002','','',,,,,,,,,,,,) oTREPORT02:Cell("__NEW__002"):SetName("E1_PREFIXO") oTREPORT02:Cell("E1_PREFIXO"):cAlias := "SE1" oTREPORT02:Cell("E1_PREFIXO"):SetTitle("Prefixo") oTREPORT02:Cell("E1_PREFIXO"):SetSize(3) oTREPORT02:Cell("E1_PREFIXO"):SetPicture("@!") oTREPORT02:Cell("E1_PREFIXO"):SetAutoSize(.F.) oTREPORT02:Cell("E1_PREFIXO"):SetLineBreak(.F.) oTREPORT02:Cell("E1_PREFIXO"):SetHeaderSize(.F.) oTREPORT02:Cell("E1_PREFIXO"):nAlign := 1 oTREPORT02:Cell("E1_PREFIXO"):nHeaderAlign := 1 oTREPORT02:Cell("E1_PREFIXO"):SetClrBack(16777215) oTREPORT02:Cell("E1_PREFIXO"):SetClrFore(0) oTREPORT02:Cell("E1_PREFIXO"):cOrder := "A1" oTREPORT02:Cell("E1_PREFIXO"):nType := 1 oTREPORT02:Cell("E1_PREFIXO"):cFormula := "" oTREPORT02:Cell("E1_PREFIXO"):cRealFormula := "" oTREPORT02:Cell("E1_PREFIXO"):cUserFunction := "" oTREPORT02:Cell("E1_PREFIXO"):lVisible := .T. oTREPORT02:Cell("E1_PREFIXO"):SetBorder("") oTREPORT02:Cell("E1_PREFIXO"):SetBorder("",,,.T.) TRCell():New(oTREPORT02,'__NEW__003','','',,,,,,,,,,,,) oTREPORT02:Cell("__NEW__003"):SetName("E1_NUM") oTREPORT02:Cell("E1_NUM"):cAlias := "SE1" oTREPORT02:Cell("E1_NUM"):SetTitle("No. Titulo") oTREPORT02:Cell("E1_NUM"):SetSize(9) oTREPORT02:Cell("E1_NUM"):SetPicture("@!") oTREPORT02:Cell("E1_NUM"):SetAutoSize(.F.) oTREPORT02:Cell("E1_NUM"):SetLineBreak(.F.) oTREPORT02:Cell("E1_NUM"):SetHeaderSize(.F.) oTREPORT02:Cell("E1_NUM"):nAlign := 1 oTREPORT02:Cell("E1_NUM"):nHeaderAlign := 1 oTREPORT02:Cell("E1_NUM"):SetClrBack(16777215) oTREPORT02:Cell("E1_NUM"):SetClrFore(0) oTREPORT02:Cell("E1_NUM"):cOrder := "A2" oTREPORT02:Cell("E1_NUM"):nType := 1 oTREPORT02:Cell("E1_NUM"):cFormula := "" oTREPORT02:Cell("E1_NUM"):cRealFormula := "" oTREPORT02:Cell("E1_NUM"):cUserFunction := "" oTREPORT02:Cell("E1_NUM"):lVisible := .T. oTREPORT02:Cell("E1_NUM"):SetBorder("") oTREPORT02:Cell("E1_NUM"):SetBorder("",,,.T.) TRCell():New(oTREPORT02,'__NEW__004','','',,,,,,,,,,,,) oTREPORT02:Cell("__NEW__004"):SetName("E1_PARCELA") oTREPORT02:Cell("E1_PARCELA"):cAlias := "SE1" oTREPORT02:Cell("E1_PARCELA"):SetTitle("Parcela") oTREPORT02:Cell("E1_PARCELA"):SetSize(1) oTREPORT02:Cell("E1_PARCELA"):SetPicture("@!") oTREPORT02:Cell("E1_PARCELA"):SetAutoSize(.F.) oTREPORT02:Cell("E1_PARCELA"):SetLineBreak(.F.) oTREPORT02:Cell("E1_PARCELA"):SetHeaderSize(.F.) oTREPORT02:Cell("E1_PARCELA"):nAlign := 1 oTREPORT02:Cell("E1_PARCELA"):nHeaderAlign := 1 oTREPORT02:Cell("E1_PARCELA"):SetClrBack(16777215) oTREPORT02:Cell("E1_PARCELA"):SetClrFore(0) oTREPORT02:Cell("E1_PARCELA"):cOrder := "A3" oTREPORT02:Cell("E1_PARCELA"):nType := 1 oTREPORT02:Cell("E1_PARCELA"):cFormula := "" oTREPORT02:Cell("E1_PARCELA"):cRealFormula := "" oTREPORT02:Cell("E1_PARCELA"):cUserFunction := "" oTREPORT02:Cell("E1_PARCELA"):lVisible := .T. oTREPORT02:Cell("E1_PARCELA"):SetBorder("") oTREPORT02:Cell("E1_PARCELA"):SetBorder("",,,.T.) TRCell():New(oTREPORT02,'__NEW__005','','',,,,,,,,,,,,) oTREPORT02:Cell("__NEW__005"):SetName("E1_CLIENTE") oTREPORT02:Cell("E1_CLIENTE"):cAlias := "SE1" oTREPORT02:Cell("E1_CLIENTE"):SetTitle("Cliente") oTREPORT02:Cell("E1_CLIENTE"):SetSize(6) oTREPORT02:Cell("E1_CLIENTE"):SetPicture("@!") oTREPORT02:Cell("E1_CLIENTE"):SetAutoSize(.F.) oTREPORT02:Cell("E1_CLIENTE"):SetLineBreak(.F.) oTREPORT02:Cell("E1_CLIENTE"):SetHeaderSize(.F.) oTREPORT02:Cell("E1_CLIENTE"):nAlign := 1 oTREPORT02:Cell("E1_CLIENTE"):nHeaderAlign := 1 oTREPORT02:Cell("E1_CLIENTE"):SetClrBack(16777215) oTREPORT02:Cell("E1_CLIENTE"):SetClrFore(0) oTREPORT02:Cell("E1_CLIENTE"):cOrder := "A4" oTREPORT02:Cell("E1_CLIENTE"):nType := 1 oTREPORT02:Cell("E1_CLIENTE"):cFormula := "" oTREPORT02:Cell("E1_CLIENTE"):cRealFormula := "" oTREPORT02:Cell("E1_CLIENTE"):cUserFunction := "" oTREPORT02:Cell("E1_CLIENTE"):lVisible := .T. oTREPORT02:Cell("E1_CLIENTE"):SetBorder("") oTREPORT02:Cell("E1_CLIENTE"):SetBorder("",,,.T.) TRCell():New(oTREPORT02,'__NEW__006','','',,,,,,,,,,,,) oTREPORT02:Cell("__NEW__006"):SetName("E1_LOJA") oTREPORT02:Cell("E1_LOJA"):cAlias := "SE1" oTREPORT02:Cell("E1_LOJA"):SetTitle("Loja") oTREPORT02:Cell("E1_LOJA"):SetSize(1) oTREPORT02:Cell("E1_LOJA"):SetPicture("@!") oTREPORT02:Cell("E1_LOJA"):SetAutoSize(.F.) oTREPORT02:Cell("E1_LOJA"):SetLineBreak(.F.) oTREPORT02:Cell("E1_LOJA"):SetHeaderSize(.F.) oTREPORT02:Cell("E1_LOJA"):nAlign := 1 oTREPORT02:Cell("E1_LOJA"):nHeaderAlign := 1 oTREPORT02:Cell("E1_LOJA"):SetClrBack(16777215) oTREPORT02:Cell("E1_LOJA"):SetClrFore(0) oTREPORT02:Cell("E1_LOJA"):cOrder := "A5" oTREPORT02:Cell("E1_LOJA"):nType := 1 oTREPORT02:Cell("E1_LOJA"):cFormula := "" oTREPORT02:Cell("E1_LOJA"):cRealFormula := "" oTREPORT02:Cell("E1_LOJA"):cUserFunction := "" oTREPORT02:Cell("E1_LOJA"):lVisible := .T. oTREPORT02:Cell("E1_LOJA"):SetBorder("") oTREPORT02:Cell("E1_LOJA"):SetBorder("",,,.T.) TRPosition():New(oTREPORT02,'SA1',1,{ || xFilial()+SE1->(E1_CLIENTE+E1_LOJA) } ) oBreak := TRBreak():New(oTREPORT02,{|| oTREPORT02:Cell('E1_CLIENTE'):uPrint+oTREPORT02:Cell('E1_LOJA'):uPrint },'Sub-Total',.F.) TRFunction():New(oTREPORT02:Cell('E1_CLIENTE'),, 'COUNT',oBreak ,,,,.F.,.F.,.F., oTREPORT02) oTREPORT02:LoadOrder() oReport:PrintDialog() Return #include "protheus.ch" #include "report.ch" User Function Exemplo1() Local oReport Local oSA1 Local oSC5 Local oSC6 Pergunte("REPORT",.F.) DEFINE REPORT oReport NAME "MYREPORT" TITLE "Pedidos de Venda" PARAMETER "REPORT" ACTION {|oReport| PrintReport(oReport)} DEFINE SECTION oSA1 OF oReport TITLE "Cliente" TABLES "SA1" //TOTAL IN COLUMN //PAGE HEADER oSA1:SetPageBreak() DEFINE CELL NAME "A1_COD" OF oSA1 ALIAS "SA1" DEFINE CELL NAME "A1_NOME" OF oSA1 ALIAS "SA1" DEFINE CELL NAME "A1_VEND" OF oSA1 ALIAS "SA1" DEFINE CELL NAME "A1_MCOMPRA" OF oSA1 ALIAS "SA1" DEFINE SECTION oSC5 OF oSA1 TITLE "Pedido" TABLE "SC5" //PAGE HEADER DEFINE CELL NAME "NUM" OF oSC5 TITLE "Pedido" SIZE 10 DEFINE CELL NAME "C5_NUM" OF oSC5 ALIAS "SC5" DEFINE CELL NAME "C5_TIPO" OF oSC5 ALIAS "SC5" DEFINE CELL NAME "C5_VEND1" OF oSC5 ALIAS "SC5" // Conta quantos pedidos foram feitos para este cliente DEFINE FUNCTION FROM oSC5:Cell("C5_NUM") OF oSA1 FUNCTION COUNT TITLE "Pedidos" DEFINE SECTION oSC6 OF oSC5 TITLE "Itens" TABLE "SC6","SB1" TOTAL TEXT "Valor total do pedido" TOTAL IN COLUMN //PAGE HEADER DEFINE CELL NAME "C6_ITEM" OF oSC6 ALIAS "SC6" DEFINE CELL NAME "C6_PRODUTO" OF oSC6 ALIAS "SC6" DEFINE CELL NAME "B1_DESC" OF oSC6 ALIAS "SB1" DEFINE CELL NAME "B1_GRUPO" OF oSC6 ALIAS "SB1" DEFINE CELL NAME "C6_UM" OF oSC6 ALIAS "SC6" DEFINE CELL NAME "C6_QTDVEN" OF oSC6 ALIAS "SC6" DEFINE CELL NAME "C6_PRCVEN" OF oSC6 ALIAS "SC6" DEFINE CELL NAME "C6_VALOR" OF oSC6 ALIAS "SC6" // Conta quantidade de itens dos pedidos e imprime somente no final da pagina DEFINE FUNCTION FROM oSC6:Cell("C6_ITEM") FUNCTION COUNT END PAGE // Faz a somatoria do pedido DEFINE FUNCTION FROM oSC6:Cell("C6_VALOR") FUNCTION SUM // Guarda o maior valor entre os itens de pedido, imprime no final da seção e depois no final do relatório DEFINE FUNCTION FROM oSC6:Cell("C6_VALOR") FUNCTION MAX TITLE "Maior Valor" // Guarda o menor valor entre os itens de pedido mas não imprime no final da seção mas imprime no final do relatório DEFINE FUNCTION FROM oSC6:Cell("C6_VALOR") FUNCTION MIN NO END SECTION TITLE "Menor Valor" // Guarda a média entre os itens de pedido não imprime no final da seção mas imprime no final do relatório DEFINE FUNCTION FROM oSC6:Cell("C6_VALOR") FUNCTION AVERAGE NO END SECTION TITLE "Valor Médio" oReport:PrintDialog() Return Static Function PrintReport(oReport) #IFDEF TOP Local cAlias := GetNextAlias() MakeSqlExp("REPORT") BEGIN REPORT QUERY oReport:Section(1) BeginSql alias cAlias SELECT A1_COD,A1_NOME,A1_VEND,A1_MCOMPRA, C5_NUM NUM,C5_NUM,C5_TIPO,C5_VEND1,C5_CLIENTE, C6_ITEM,C6_PRODUTO,C6_UM,C6_QTDVEN,C6_PRCVEN,C6_VALOR,C6_NUM, B1_DESC,B1_GRUPO FROM %table:SA1% SA1, %table:SC5% SC5, %table:SC6% SC6, %table:SB1% SB1 WHERE A1_FILIAL = %xfilial:SA1% AND SA1.%notDel% AND C5_FILIAL = %xfilial:SC5% AND SC5.%notDel% AND C5_CLIENTE = A1_COD AND C6_FILIAL = %xfilial:SC6% AND SC6.%notDel% AND C6_NUM = C5_NUM AND B1_FILIAL = %xfilial:SB1% AND SB1.%notDel% AND B1_COD = C6_PRODUTO ORDER BY A1_FILIAL,A1_COD, C5_FILIAL,C5_NUM, C6_FILIAL,C6_ITEM EndSql END REPORT QUERY oReport:Section(1) PARAM mv_par01 oReport:Section(1):Section(1):SetParentQuery() oReport:Section(1):Section(1):SetParentFilter({|cParam| (cAlias)->C5_CLIENTE == cParam},{|| (cAlias)->A1_COD}) oReport:Section(1):Section(1):Section(1):SetParentQuery() oReport:Section(1):Section(1):Section(1):SetParentFilter({|cParam| (cAlias)->C6_NUM == cParam},{|| (cAlias)->C5_NUM}) oReport:Section(1):Print() #ENDIF Return #include "protheus.ch" #include "report.ch" User Function Exemplo2() Local oReport Local oSA1 Local oSC5 Local oSC6 Pergunte("REPORT",.F.) DEFINE REPORT oReport NAME "MYREPORT" TITLE "Pedidos de Venda" PARAMETER "REPORT" ACTION {|oReport| PrintReport(oReport)} DEFINE SECTION oSA1 OF oReport TITLE "Cliente" TABLES "SA1" //TOTAL IN COLUMN //PAGE HEADER //oSA1:SetHeaderSection(.F.) //oSA1:SetPuageBreak() DEFINE CELL NAME "A1_COD" OF oSA1 ALIAS "SA1" DEFINE CELL NAME "A1_NOME" OF oSA1 ALIAS "SA1" DEFINE CELL NAME "A1_VEND" OF oSA1 ALIAS "SA1" DEFINE CELL NAME "A1_MCOMPRA" OF oSA1 ALIAS "SA1" DEFINE SECTION oSC5 OF oSA1 TITLE "Pedido" TABLE "SC5" //PAGE HEADER DEFINE CELL NAME "NUM" OF oSC5 TITLE "Pedido" SIZE 10 DEFINE CELL NAME "C5_NUM" OF oSC5 ALIAS "SC5" DEFINE CELL NAME "C5_TIPO" OF oSC5 ALIAS "SC5" DEFINE CELL NAME "C5_VEND1" OF oSC5 ALIAS "SC5" DEFINE FUNCTION FROM oSC5:Cell("C5_NUM") OF oSA1 FUNCTION COUNT TITLE "Pedidos" DEFINE SECTION oSC6 OF oSC5 TITLE "Itens" TABLE "SC6","SB1" TOTAL TEXT "Valor total do pedido" TOTAL IN COLUMN //PAGE HEADER //oSC6:SetHeaderSection(.F.) DEFINE CELL NAME "C6_ITEM" OF oSC6 ALIAS "SC6" DEFINE CELL NAME "C6_PRODUTO" OF oSC6 ALIAS "SC6" DEFINE CELL NAME "B1_DESC" OF oSC6 ALIAS "SB1" DEFINE CELL NAME "B1_GRUPO" OF oSC6 ALIAS "SB1" DEFINE CELL NAME "C6_UM" OF oSC6 ALIAS "SC6" DEFINE CELL NAME "C6_QTDVEN" OF oSC6 ALIAS "SC6" DEFINE CELL NAME "C6_PRCVEN" OF oSC6 ALIAS "SC6" DEFINE CELL NAME "C6_VALOR" OF oSC6 ALIAS "SC6" //oSC6:Cell("C6_VALOR"):Disable() DEFINE FUNCTION FROM oSC6:Cell("C6_ITEM") FUNCTION COUNT END PAGE DEFINE FUNCTION FROM oSC6:Cell("C6_VALOR") FUNCTION SUM DEFINE FUNCTION FROM oSC6:Cell("C6_VALOR") FUNCTION MAX TITLE "Maior Valor" DEFINE FUNCTION FROM oSC6:Cell("C6_VALOR") FUNCTION MIN NO END SECTION TITLE "Menor Valor" DEFINE FUNCTION FROM oSC6:Cell("C6_VALOR") FUNCTION AVERAGE NO END SECTION TITLE "Valor Médio" oReport:PrintDialog() Return Static Function PrintReport(oReport) #IFDEF TOP Local cAlias1 := GetNextAlias() Local cAlias2 := GetNextAlias() Local cAlias3 := GetNextAlias() MakeSqlExp("REPORT") BEGIN REPORT QUERY oReport:Section(1) BeginSql alias cAlias1 SELECT A1_COD,A1_NOME,A1_VEND,A1_MCOMPRA FROM %table:SA1% SA1 WHERE A1_FILIAL = %xfilial:SA1% AND SA1.%notDel% ORDER BY A1_FILIAL,A1_COD EndSql END REPORT QUERY oReport:Section(1) PARAM mv_par01 BEGIN REPORT QUERY oReport:Section(1):Section(1) BeginSql alias cAlias2 SELECT C5_NUM NUM,C5_NUM,C5_TIPO,C5_VEND1 FROM %table:SC5% SC5 WHERE C5_FILIAL = %xfilial:SC5% AND SC5.%notDel% AND C5_CLIENTE = %report_param: (cAlias1)->A1_COD% ORDER BY C5_FILIAL,C5_NUM EndSql END REPORT QUERY oReport:Section(1):Section(1) BEGIN REPORT QUERY oReport:Section(1):Section(1):Section(1) BeginSql alias cAlias3 SELECT C6_ITEM,C6_PRODUTO,C6_UM,C6_QTDVEN,C6_PRCVEN,C6_VALOR,C6_NUM, B1_DESC,B1_GRUPO FROM %table:SC6% SC6, %table:SB1% SB1 WHERE C6_FILIAL = %xfilial:SC6% AND SC6.%notDel% AND C6_NUM = %report_param: (cAlias2)->C5_NUM% AND B1_FILIAL = %xfilial:SB1% AND SB1.%notDel% AND B1_COD = C6_PRODUTO ORDER BY C6_FILIAL,C6_NUM,C6_ITEM EndSql END REPORT QUERY oReport:Section(1):Section(1):Section(1) oReport:Section(1):Print() #ENDIF Return #include "protheus.ch" #include "report.ch" User Function Exemplo3() Local oReport Local oSA1 Local oSC5 Local oSC6 Pergunte("REPORT",.F.) DEFINE REPORT oReport NAME "MYREPORT" TITLE "Pedidos de Venda" PARAMETER "REPORT" ACTION {|oReport| PrintReport(oReport)} DEFINE SECTION oSA1 OF oReport TITLE "Cliente" TABLES "SA1" //TOTAL IN COLUMN //PAGE HEADER //oSA1:SetHeaderSection(.F.) //oSA1:SetPageBreak() DEFINE CELL NAME "A1_COD" OF oSA1 ALIAS "SA1" DEFINE CELL NAME "A1_NOME" OF oSA1 ALIAS "SA1" DEFINE CELL NAME "A1_VEND" OF oSA1 ALIAS "SA1" DEFINE CELL NAME "A1_MCOMPRA" OF oSA1 ALIAS "SA1" DEFINE SECTION oSC5 OF oSA1 TITLE "Pedido" TABLE "SC5" //PAGE HEADER DEFINE CELL NAME "NUM" OF oSC5 TITLE "Pedido" SIZE 10 DEFINE CELL NAME "C5_NUM" OF oSC5 ALIAS "SC5" DEFINE CELL NAME "C5_TIPO" OF oSC5 ALIAS "SC5" DEFINE CELL NAME "C5_VEND1" OF oSC5 ALIAS "SC5" DEFINE FUNCTION FROM oSC5:Cell("C5_NUM") OF oSA1 FUNCTION COUNT TITLE "Pedidos" DEFINE SECTION oSC6 OF oSC5 TITLE "Itens" TABLE "SC6","SB1" TOTAL TEXT "Valor total do pedido" TOTAL IN COLUMN //PAGE HEADER //oSC6:SetHeaderSection(.F.) DEFINE CELL NAME "C6_ITEM" OF oSC6 ALIAS "SC6" DEFINE CELL NAME "C6_PRODUTO" OF oSC6 ALIAS "SC6" DEFINE CELL NAME "B1_DESC" OF oSC6 ALIAS "SB1" DEFINE CELL NAME "B1_GRUPO" OF oSC6 ALIAS "SB1" DEFINE CELL NAME "C6_UM" OF oSC6 ALIAS "SC6" DEFINE CELL NAME "C6_QTDVEN" OF oSC6 ALIAS "SC6" DEFINE CELL NAME "C6_PRCVEN" OF oSC6 ALIAS "SC6" DEFINE CELL NAME "C6_VALOR" OF oSC6 ALIAS "SC6" //oSC6:Cell("C6_VALOR"):Disable() DEFINE FUNCTION FROM oSC6:Cell("C6_ITEM") FUNCTION COUNT END PAGE DEFINE FUNCTION FROM oSC6:Cell("C6_VALOR") FUNCTION SUM DEFINE FUNCTION FROM oSC6:Cell("C6_VALOR") FUNCTION MAX TITLE "Maior Valor" DEFINE FUNCTION FROM oSC6:Cell("C6_VALOR") FUNCTION MIN NO END SECTION TITLE "Menor Valor" DEFINE FUNCTION FROM oSC6:Cell("C6_VALOR") FUNCTION AVERAGE NO END SECTION TITLE "Valor Médio" oReport:PrintDialog() Return Static Function PrintReport(oReport) #IFDEF TOP Local cAlias := GetNextAlias() Local cSql := "" Local oSA1 := oReport:Section(1) Local oSC5 := oReport:Section(1):Section(1) Local oSC6 := oReport:Section(1):Section(1):Section(1) MakeSqlExp("REPORT") If !Empty(mv_par02) cSql += "AND B1_GRUPO >= '"+mv_par02+"'" EndIf If !Empty(mv_par03) cSql += "AND B1_GRUPO <= '"+mv_par03+"'" EndIf cSql := "%"+cSql+"%" BEGIN REPORT QUERY oSA1 BeginSql alias cAlias SELECT A1_COD,A1_NOME,A1_VEND,A1_MCOMPRA, C5_NUM NUM,C5_NUM,C5_TIPO,C5_VEND1,C5_CLIENTE, C6_ITEM,C6_PRODUTO,C6_UM,C6_QTDVEN,C6_PRCVEN,C6_VALOR,C6_NUM, B1_DESC,B1_GRUPO FROM %table:SA1% SA1, %table:SC5% SC5, %table:SC6% SC6, %table:SB1% SB1 WHERE A1_FILIAL = %xfilial:SA1% AND SA1.%notDel% AND C5_FILIAL = %xfilial:SC5% AND SC5.%notDel% AND C5_CLIENTE = A1_COD AND C6_FILIAL = %xfilial:SC6% AND SC6.%notDel% AND C6_NUM = C5_NUM AND B1_FILIAL = %xfilial:SB1% AND SB1.%notDel% AND B1_COD = C6_PRODUTO %exp:cSql% ORDER BY A1_FILIAL,A1_COD, C5_FILIAL,C5_NUM, C6_FILIAL,C6_ITEM EndSql END REPORT QUERY oSA1 PARAM mv_par01 oSC5:SetParentQuery() oSC5:SetParentFilter({|cParam| (cAlias)->C5_CLIENTE == cParam},{|| (cAlias)->A1_COD}) oSC6:SetParentQuery() oSC6:SetParentFilter({|cParam| (cAlias)->C6_NUM == cParam},{|| (cAlias)->C5_NUM}) oSA1:Print() #ENDIF Return #include "protheus.ch" #include "report.ch" User Function Exemplo4() Local oReport Local oSA1 Local oSC5 Local oSC6 Pergunte("REPORT",.F.) DEFINE REPORT oReport NAME "MYREPORT" TITLE "Pedidos de Venda" PARAMETER "REPORT" ACTION {|oReport| PrintReport(oReport)} DEFINE SECTION oSA1 OF oReport TITLE "Cliente" TABLES "SA1" //TOTAL IN COLUMN //PAGE HEADER //oSA1:SetHeaderSection(.F.) //oSA1:SetPageBreak() DEFINE CELL NAME "A1_COD" OF oSA1 ALIAS "SA1" DEFINE CELL NAME "A1_NOME" OF oSA1 ALIAS "SA1" DEFINE CELL NAME "A1_VEND" OF oSA1 ALIAS "SA1" DEFINE CELL NAME "A1_MCOMPRA" OF oSA1 ALIAS "SA1" DEFINE SECTION oSC5 OF oSA1 TITLE "Pedido" TABLE "SC5" //PAGE HEADER DEFINE CELL NAME "NUM" OF oSC5 TITLE "Pedido" SIZE 10 DEFINE CELL NAME "C5_NUM" OF oSC5 ALIAS "SC5" DEFINE CELL NAME "C5_TIPO" OF oSC5 ALIAS "SC5" DEFINE CELL NAME "C5_VEND1" OF oSC5 ALIAS "SC5" DEFINE FUNCTION FROM oSC5:Cell("C5_NUM") OF oSA1 FUNCTION COUNT TITLE "Pedidos" DEFINE SECTION oSC6 OF oSC5 TITLE "Itens" TABLE "SC6","SB1" TOTAL TEXT "Valor total do pedido" TOTAL IN COLUMN //PAGE HEADER //oSC6:SetHeaderSection(.F.) DEFINE CELL NAME "C6_ITEM" OF oSC6 ALIAS "SC6" DEFINE CELL NAME "C6_PRODUTO" OF oSC6 ALIAS "SC6" DEFINE CELL NAME "B1_DESC" OF oSC6 ALIAS "SB1" DEFINE CELL NAME "B1_GRUPO" OF oSC6 ALIAS "SB1" DEFINE CELL NAME "C6_UM" OF oSC6 ALIAS "SC6" DEFINE CELL NAME "C6_QTDVEN" OF oSC6 ALIAS "SC6" DEFINE CELL NAME "C6_PRCVEN" OF oSC6 ALIAS "SC6" DEFINE CELL NAME "C6_VALOR" OF oSC6 ALIAS "SC6" //oSC6:Cell("C6_VALOR"):Disable() DEFINE FUNCTION FROM oSC6:Cell("C6_ITEM") FUNCTION COUNT END PAGE DEFINE FUNCTION FROM oSC6:Cell("C6_VALOR") OF oSA1 FUNCTION SUM DEFINE FUNCTION FROM oSC6:Cell("C6_VALOR") FUNCTION SUM NO END REPORT DEFINE FUNCTION FROM oSC6:Cell("C6_VALOR") FUNCTION MAX TITLE "Maior Valor" DEFINE FUNCTION FROM oSC6:Cell("C6_VALOR") FUNCTION MIN NO END SECTION TITLE "Menor Valor" DEFINE FUNCTION FROM oSC6:Cell("C6_VALOR") FUNCTION AVERAGE NO END SECTION TITLE "Valor Médio" oReport:PrintDialog() Return Static Function PrintReport(oReport) #IFDEF TOP Local cAlias := GetNextAlias() MakeSqlExp("REPORT") BEGIN REPORT QUERY oReport:Section(1) BeginSql alias cAlias SELECT A1_COD,A1_NOME,A1_VEND,A1_MCOMPRA, C5_NUM NUM,C5_NUM,C5_TIPO,C5_VEND1,C5_CLIENTE, C6_ITEM,C6_PRODUTO,C6_UM,C6_QTDVEN,C6_PRCVEN,C6_VALOR,C6_NUM, B1_DESC,B1_GRUPO FROM %table:SA1% SA1, %table:SC5% SC5, %table:SC6% SC6, %table:SB1% SB1 WHERE A1_FILIAL = %xfilial:SA1% AND SA1.%notDel% AND C5_FILIAL = %xfilial:SC5% AND SC5.%notDel% AND C5_CLIENTE = A1_COD AND C6_FILIAL = %xfilial:SC6% AND SC6.%notDel% AND C6_NUM = C5_NUM AND B1_FILIAL = %xfilial:SB1% AND SB1.%notDel% AND B1_COD = C6_PRODUTO ORDER BY A1_FILIAL,A1_COD, C5_FILIAL,C5_NUM, C6_FILIAL,C6_ITEM EndSql END REPORT QUERY oReport:Section(1) PARAM mv_par01 oReport:Section(1):Section(1):SetParentQuery() oReport:Section(1):Section(1):SetParentFilter({|cParam| (cAlias)->C5_CLIENTE == cParam},{|| (cAlias)->A1_COD}) oReport:Section(1):Section(1):Section(1):SetParentQuery() oReport:Section(1):Section(1):Section(1):SetParentFilter({|cParam| (cAlias)->C6_NUM == cParam},{|| (cAlias)->C5_NUM}) oReport:Section(1):Print() #ENDIF Return #include "protheus.ch" #include "report.ch" User Function Exemplo5() Local oReport Local oSA1 Local oSC5 Local oSC6 Pergunte("REPORT",.F.) DEFINE REPORT oReport NAME "MYREPORT" TITLE "Pedidos de Venda" PARAMETER "REPORT" ACTION {|oReport| PrintReport(oReport)} DEFINE SECTION oSA1 OF oReport TITLE "Cliente" TABLES "SA1" //TOTAL IN COLUMN //PAGE HEADER //oSA1:SetHeaderSection(.F.) //oSA1:SetPageBreak() DEFINE CELL NAME "A1_COD" OF oSA1 ALIAS "SA1" DEFINE CELL NAME "A1_NOME" OF oSA1 ALIAS "SA1" DEFINE CELL NAME "A1_VEND" OF oSA1 ALIAS "SA1" DEFINE CELL NAME "A1_MCOMPRA" OF oSA1 ALIAS "SA1" DEFINE SECTION oSC5 OF oSA1 TITLE "Pedido" TABLE "SC5" //PAGE HEADER DEFINE CELL NAME "NUM" OF oSC5 TITLE "Pedido" SIZE 10 DEFINE CELL NAME "C5_NUM" OF oSC5 ALIAS "SC5" DEFINE CELL NAME "C5_TIPO" OF oSC5 ALIAS "SC5" DEFINE CELL NAME "C5_VEND1" OF oSC5 ALIAS "SC5" DEFINE FUNCTION FROM oSC5:Cell("C5_NUM") OF oSA1 FUNCTION COUNT TITLE "Pedidos" DEFINE SECTION oSC6 OF oSC5 TITLE "Itens" TABLE "SC6","SB1" TOTAL TEXT "Valor total do pedido" TOTAL IN COLUMN //PAGE HEADER //oSC6:SetHeaderSection(.F.) DEFINE CELL NAME "C6_ITEM" OF oSC6 ALIAS "SC6" DEFINE CELL NAME "C6_PRODUTO" OF oSC6 ALIAS "SC6" DEFINE CELL NAME "B1_DESC" OF oSC6 ALIAS "SB1" DEFINE CELL NAME "B1_GRUPO" OF oSC6 ALIAS "SB1" DEFINE CELL NAME "C6_UM" OF oSC6 ALIAS "SC6" DEFINE CELL NAME "C6_QTDVEN" OF oSC6 ALIAS "SC6" DEFINE CELL NAME "C6_PRCVEN" OF oSC6 ALIAS "SC6" DEFINE CELL NAME "C6_VALOR" OF oSC6 ALIAS "SC6" //oSC6:Cell("C6_VALOR"):Disable() DEFINE FUNCTION FROM oSC6:Cell("C6_ITEM") FUNCTION COUNT END PAGE DEFINE FUNCTION FROM oSC6:Cell("C6_VALOR") FUNCTION SUM DEFINE FUNCTION FROM oSC6:Cell("C6_VALOR") FUNCTION MAX TITLE "Maior Valor" DEFINE FUNCTION FROM oSC6:Cell("C6_VALOR") FUNCTION MIN NO END SECTION TITLE "Menor Valor" DEFINE FUNCTION FROM oSC6:Cell("C6_VALOR") FUNCTION AVERAGE NO END SECTION TITLE "Valor Médio" oReport:PrintDialog() Return Static Function PrintReport(oReport) #IFDEF TOP Local cAlias := GetNextAlias() MakeSqlExp("REPORT") BEGIN REPORT QUERY oReport:Section(1) BeginSql alias cAlias SELECT A1_COD,A1_NOME,A1_VEND,A1_MCOMPRA, C5_NUM NUM,C5_NUM,C5_TIPO,C5_VEND1,C5_CLIENTE, C6_ITEM,C6_PRODUTO,C6_UM,C6_QTDVEN,C6_PRCVEN,C6_VALOR,C6_NUM, B1_DESC,B1_GRUPO FROM %table:SA1% SA1, %table:SC5% SC5, %table:SC6% SC6, %table:SB1% SB1 WHERE A1_FILIAL = %xfilial:SA1% AND SA1.%notDel% AND C5_FILIAL = %xfilial:SC5% AND SC5.%notDel% AND C5_CLIENTE = A1_COD AND C6_FILIAL = %xfilial:SC6% AND SC6.%notDel% AND C6_NUM = C5_NUM AND B1_FILIAL = %xfilial:SB1% AND SB1.%notDel% AND B1_COD = C6_PRODUTO ORDER BY A1_FILIAL,A1_COD, C5_FILIAL,C5_NUM, C6_FILIAL,C6_ITEM EndSql END REPORT QUERY oReport:Section(1) PARAM mv_par01 oReport:Section(1):Section(1):SetParentQuery() oReport:Section(1):Section(1):SetParentFilter({|cParam| (cAlias)->C5_CLIENTE == cParam},{|| (cAlias)->A1_COD}) oReport:Section(1):Section(1):Section(1):SetParentQuery() oReport:Section(1):Section(1):Section(1):SetParentFilter({|cParam| (cAlias)->C6_NUM == cParam},{|| (cAlias)->C5_NUM}) oReport:Section(1):Section(1):Section(1):SetLineCondition({|| (cAlias)->B1_GRUPO >= mv_par02 .and. (cAlias)->B1_GRUPO <= mv_par03}) oReport:Section(1):Print() #ENDIF Return #include "protheus.ch" #include "report.ch" User Function Exemplo6() Local oReport Local oSA1 Local oBreak Pergunte("REPORT",.F.) DEFINE REPORT oReport NAME "MYREPORT" TITLE "Pedidos de Venda" PARAMETER "REPORT" ACTION {|oReport| PrintReport(oReport)} DEFINE SECTION oSA1 OF oReport TITLE "Cliente" TABLES "SA1" //TOTAL IN COLUMN //PAGE HEADER //oSA1:SetHeaderSection(.F.) //oSA1:SetPageBreak() DEFINE CELL NAME "A1_COD" OF oSA1 ALIAS "SA1" DEFINE CELL NAME "A1_NOME" OF oSA1 ALIAS "SA1" DEFINE CELL NAME "A1_VEND" OF oSA1 ALIAS "SA1" DEFINE CELL NAME "A1_MCOMPRA" OF oSA1 ALIAS "SA1" DEFINE BREAK oBreak OF oSA1 WHEN oSA1:Cell("A1_VEND") DEFINE FUNCTION FROM oSA1:Cell("A1_COD") FUNCTION COUNT BREAK oBreak DEFINE FUNCTION FROM oSA1:Cell("A1_MCOMPRA") FUNCTION SUM BREAK oBreak oReport:PrintDialog() Return Static Function PrintReport(oReport) #IFDEF TOP Local cAlias := GetNextAlias() MakeSqlExp("REPORT") BEGIN REPORT QUERY oReport:Section(1) BeginSql alias cAlias SELECT A1_COD,A1_NOME,A1_VEND,A1_MCOMPRA FROM %table:SA1% SA1 WHERE A1_FILIAL = %xfilial:SA1% AND SA1.%notDel% ORDER BY A1_FILIAL,A1_VEND EndSql END REPORT QUERY oReport:Section(1) PARAM mv_par01 oReport:Section(1):Print() #ENDIF Return #include "protheus.ch" #include "report.ch" User Function Exemplo7() Local oReport Local oSA1 Local oSC5 Local oSC6 Pergunte("REPORT",.F.) DEFINE REPORT oReport NAME "MYREPORT" TITLE "Pedidos de Venda" PARAMETER "REPORT" ACTION {|oReport| PrintReport(oReport)} DEFINE SECTION oSA1 OF oReport TITLE "Cliente" TABLES "SA1" //TOTAL IN COLUMN //PAGE HEADER //oSA1:SetHeaderSection(.F.) //oSA1:SetPageBreak() DEFINE CELL NAME "A1_COD" OF oSA1 ALIAS "SA1" DEFINE CELL NAME "A1_NOME" OF oSA1 ALIAS "SA1" DEFINE CELL NAME "A1_VEND" OF oSA1 ALIAS "SA1" DEFINE CELL NAME "A1_MCOMPRA" OF oSA1 ALIAS "SA1" DEFINE SECTION oSC5 OF oSA1 TITLE "Pedido" TABLE "SC5" //PAGE HEADER DEFINE CELL NAME "NUM" OF oSC5 TITLE "Pedido" SIZE 10 DEFINE CELL NAME "C5_NUM" OF oSC5 ALIAS "SC5" DEFINE CELL NAME "C5_TIPO" OF oSC5 ALIAS "SC5" DEFINE CELL NAME "C5_VEND1" OF oSC5 ALIAS "SC5" DEFINE FUNCTION FROM oSC5:Cell("C5_NUM") OF oSA1 FUNCTION COUNT TITLE "Pedidos" DEFINE SECTION oSC6 OF oSC5 TITLE "Itens" TABLE "SC6","SB1" TOTAL TEXT "Valor total do pedido" TOTAL IN COLUMN //PAGE HEADER //oSC6:SetHeaderSection(.F.) DEFINE CELL NAME "C6_ITEM" OF oSC6 ALIAS "SC6" DEFINE CELL NAME "C6_PRODUTO" OF oSC6 ALIAS "SC6" DEFINE CELL NAME "B1_DESC" OF oSC6 ALIAS "SB1" DEFINE CELL NAME "B1_GRUPO" OF oSC6 ALIAS "SB1" DEFINE CELL NAME "C6_UM" OF oSC6 ALIAS "SC6" DEFINE CELL NAME "C6_QTDVEN" OF oSC6 ALIAS "SC6" DEFINE CELL NAME "C6_PRCVEN" OF oSC6 ALIAS "SC6" DEFINE CELL NAME "C6_VALOR" OF oSC6 ALIAS "SC6" //oSC6:Cell("C6_VALOR"):Disable() DEFINE FUNCTION FROM oSC6:Cell("C6_ITEM") FUNCTION COUNT END PAGE DEFINE FUNCTION FROM oSC6:Cell("C6_VALOR") FUNCTION SUM DEFINE FUNCTION FROM oSC6:Cell("C6_VALOR") FUNCTION MAX TITLE "Maior Valor" DEFINE FUNCTION FROM oSC6:Cell("C6_VALOR") FUNCTION MIN NO END SECTION TITLE "Menor Valor" DEFINE FUNCTION FROM oSC6:Cell("C6_VALOR") FUNCTION AVERAGE NO END SECTION TITLE "Valor Médio" oReport:PrintDialog() Return Static Function PrintReport(oReport) MakeAdvplExpr("REPORT") DbSelectArea("SA1") DbSetOrder(1) If ( !Empty(mv_par01) ) oReport:Section(1):SetFilter(mv_par01) EndIf oReport:Section(1):Section(1):SetRelation({|| xFilial("SC5")+SA1->A1_COD},"SC5",3,.T.) oReport:Section(1):Section(1):SetParentFilter({|cParam| SC5->C5_CLIENTE == cParam},{|| SA1->A1_COD}) oReport:Section(1):Section(1):Section(1):SetRelation({|| xFilial("SC6")+SC5->C5_NUM},"SC6",1,.T.) oReport:Section(1):Section(1):Section(1):SetParentFilter({|cParam| SC6->C6_NUM == cParam},{|| SC5->C5_NUM}) TRPosition():New(oReport:Section(1):Section(1):Section(1),"SB1",1,{|| xFilial("SB1")+SC6->C6_PRODUTO}) oReport:Section(1):Section(1):Section(1):SetLineCondition({|| SB1->B1_GRUPO >= MV_PAR02 .and. SB1->B1_GRUPO <= MV_PAR03}) oReport:Section(1):Print() Return
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas