#INCLUDE "POMSR020.CH" /*ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±± ±±³Programa ³OMSR020 ³ Autor ³Eduardo Riera ³ Data ³10.05.2006³±± ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±± ±±³Descri‡…o ³Relatorio de cargas - Release 4. ³±± ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±± ±±³Retorno ³Nenhum ³±± ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±± ±±³Parametros³Nenhum ³±± ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±± ±±³ DATA ³ Programador ³Manutencao efetuada ³±± ±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±± ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß*/ User Function POMSR020() Local oReport := Nil //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Interface de impressao ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ oReport := ReportDef() oReport:PrintDialog() Return /*ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±± ±±³Programa ³ReportDef ³ Autor ³Eduardo Riera ³ Data ³10.05.2006³±± ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±± ±±³Descri‡…o ³A funcao estatica ReportDef devera ser criada para todos os ³±± ±±³ ³relatorios que poderao ser agendados pelo usuario. ³±± ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±± ±±³Retorno ³ExpO1: Objeto do relatorio ³±± ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±± ±±³Parametros³Nenhum ³±± ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±± ±±³ DATA ³ Programador ³Manutencao efetuada ³±± ±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±± ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß*/ Static Function ReportDef() Local oReport := Nil Local oCarga := Nil Local oItCarga := Nil Local oItPedido := Nil Local oBreak := Nil Local cNReduz := "" Local cAliasQry := GetNextAlias() Local lPesoLiq := Getmv("MV_PESOCAR") == "L" //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Criacao do componente de impressao ³ //³ ³ //³TReport():New ³ //³ExpC1 : Nome do relatorio ³ //³ExpC2 : Titulo ³ //³ExpC3 : Pergunte ³ //³ExpB4 : Bloco de codigo que sera executado na confirmacao da impressao ³ //³ExpC5 : Descricao ³ //³ ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ oReport := TReport():New("OMSR020",STR0001,"POMR020", {|oReport| ReportPrint(oReport,oItPedido,cAliasQry,oCarga,cNReduz)},OemToAnsi(STR0002)+" "+OemToAnsi(STR0003)) //"Listagem de Cargas"###"Este relatorio ira imprimir a listagem de cargas de acordo"###"com os parametros informados pelo usuario" oReport:SetTitle('Picking List Carga - OMS') oReport:SetLandscape() oReport:SetTotalInLine(.F.) oReport:HideParamPage() // Fonte do Relatório oReport:nfontbody:=8 //oReport:cfontbody:="Arial" Pergunte(oReport:uParam,.F.) //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Criacao da secao utilizada pelo relatorio ³ //³ ³ //³TRSection():New ³ //³ExpO1 : Objeto TReport que a secao pertence ³ //³ExpC2 : Descricao da seçao ³ //³ExpA3 : Array com as tabelas utilizadas pela secao. A primeira tabela ³ //³ sera considerada como principal para a secao. ³ //³ExpA4 : Array com as Ordens do relatorio ³ //³ExpL5 : Carrega campos do SX3 como celulas ³ //³ Default : False ³ //³ExpL6 : Carrega ordens do Sindex ³ //³ Default : False ³ //³ ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Criacao da celulas da secao do relatorio ³ //³ ³ //³TRCell():New ³ //³ExpO1 : Objeto TSection que a secao pertence ³ //³ExpC2 : Nome da celula do relatorio. O SX3 sera consultado ³ //³ExpC3 : Nome da tabela de referencia da celula ³ //³ExpC4 : Titulo da celula ³ //³ Default : X3Titulo() ³ //³ExpC5 : Picture ³ //³ Default : X3_PICTURE ³ //³ExpC6 : Tamanho ³ //³ Default : X3_TAMANHO ³ //³ExpL7 : Informe se o tamanho esta em pixel ³ //³ Default : False ³ //³ExpB8 : Bloco de codigo para impressao. ³ //³ Default : ExpC2 ³ //³ ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Section(1) ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ oCarga:= TRSection():New(oReport,STR0026,{"DAK","DA3","DA4"},{STR0027,STR0028},/*Campos do SX3*/,/*Campos do SIX*/) //"Carga"###"Pedido/Item"###"Produto" oCarga:SetTotalInLine(.F.) TRCell():New(oCarga , "DAK_COD" , "DAK" , STR0026 , PesqPict("DAK","DAK_COD") , TamSx3("DAK_COD")[1]+1 , /*lPixel*/ , /*{|| code-block de impressao }*/) //"Carga" TRCell():New(oCarga , "DAK_SEQCAR" , "DAK" , STR0037 , PesqPict("DAK","DAK_SEQCAR") , TamSx3("DAK_COD")[1] , /*lPixel*/ , /*{|| code-block de impressao }*/) //"Seq." TRCell():New(oCarga , "DAK_TRANSP" , "DAK" , /*Titulo*/ , /*Picture*/ , TamSx3("DAK_TRANSP")[1] , /*lPixel*/ , /*{|| code-block de impressao }*/) //"Seq." TRCell():New(oCarga , "A4_NREDUZ" , "SA4" , /*Titulo*/ , /*Picture*/ , TamSx3("A4_NREDUZ")[1] , /*lPixel*/ , /*{|| code-block de impressao }*/) //Nome da Transportadora TRCell():New(oCarga , "DAK_PESO" , "DAK" , /*Titulo*/ , /*Picture*/ , /*Tamanho*/ , /*lPixel*/ , /*{|| code-block de impressao }*/) TRCell():New(oCarga , "DAK_CAPVOL" , "DAK" , /*Titulo*/ , /*Picture*/ , /*Tamanho*/ , /*lPixel*/ , /*{|| code-block de impressao }*/) TRCell():New(oCarga , "DAK_PTOENT" , "DAK" , /*Titulo*/ , /*Picture*/ , /*Tamanho*/ , /*lPixel*/ , /*{|| code-block de impressao }*/) TRCell():New(oCarga , "DAK_VALOR" , "DAK" , /*Titulo*/ , /*Picture*/ , /*Tamanho*/ , /*lPixel*/ , /*{|| code-block de impressao }*/) TRCell():New(oCarga , "DAK_DATA" , "DAK" , /*Titulo*/ , /*Picture*/ , TamSx3("DAK_DATA")[1]+6 , /*lPixel*/ , /*{|| code-block de impressao }*/) TRCell():New(oCarga , "DAK_HORA" , "DAK" , /*Titulo*/ , /*Picture*/ , TamSx3("DAK_HORA")[1]+4 , /*lPixel*/ , /*{|| code-block de impressao }*/) TRCell():New(oCarga , "DAK_XDTCAR" , "DAK" , /*Titulo*/ , /*Picture*/ , TamSx3("DAK_XDTCAR")[1]+6 , /*lPixel*/ , /*{|| code-block de impressao }*/) TRCell():New(oCarga , "DAK_XHORCA" , "DAK" , /*Titulo*/ , /*Picture*/ , TamSx3("DAK_XHORCA")[1]+4 , /*lPixel*/ , /*{|| code-block de impressao }*/) TRCell():New(oCarga , "DAK_XDOCK" , "DAK" , /*Titulo*/ , /*Picture*/ , TamSx3("DAK_XDOCK")[1]+4 , /*lPixel*/ , /*{|| code-block de impressao }*/) TRCell():New(oCarga , "CSIGN" , ,"Assinatura Conferente" ,"@!" ,30 ,/*lPixel*/,{|| Replicate("_",30) },"RIGHT",,"RIGHT") //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Section(1):Section(1) ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ oItCarga:= TRSection():New(oCarga,STR0029,{"DAI","SA1","SF2"},/*{Array com as ordens do relatorio}*/,/*Campos do SX3*/,/*Campos do SIX*/) //"Item da Carga" oItCarga:SetTotalInLine(.F.) TRCell():New(oItCarga , "DAI_SEQUEN" ,"DAI" , /*Titulo*/ , /*Picture*/ , /*Tamanho*/ , /*lPixel*/ , /*{|| code-block de impressao }*/) TRCell():New(oItCarga , "DAI_PEDIDO" ,"DAI" , /*Titulo*/ , /*Picture*/ , /*Tamanho*/ , /*lPixel*/ , /*{|| code-block de impressao }*/) TRCell():New(oItCarga , "DAI_CLIENT" ,"DAI" , /*Titulo*/ , /*Picture*/ , /*Tamanho*/ , /*lPixel*/ , /*{|| code-block de impressao }*/) TRCell():New(oItCarga , "DAI_LOJA" ,"DAI" , /*Titulo*/ , /*Picture*/ , /*Tamanho*/ , /*lPixel*/ , /*{|| code-block de impressao }*/) TRCell():New(oItCarga , "A1_NOME" ,"SA1" , /*Titulo*/ , /*Picture*/ , /*Tamanho*/ , /*lPixel*/ , /*{|| code-block de impressao }*/) TRCell():New(oItCarga , "A1_MUN" ,"SA1" , /*Titulo*/ , /*Picture*/ , /*Tamanho*/ , /*lPixel*/ , /*{|| code-block de impressao }*/) TRCell():New(oItCarga , "A1_EST" ,"SA1" , /*Titulo*/ , /*Picture*/ , /*Tamanho*/ , /*lPixel*/ , /*{|| code-block de impressao }*/) TRCell():New(oItCarga , "F2_DOC" ,"SF2" , /*Titulo*/ , /*Picture*/ , /*Tamanho*/ , /*lPixel*/ , /*{|| code-block de impressao }*/) TRCell():New(oItCarga , "F2_SERIE" ,"SF2" , /*Titulo*/ , /*Picture*/ , /*Tamanho*/ , /*lPixel*/ , /*{|| code-block de impressao }*/) //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Ordem 1 ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Section(1):Section(1):Section(1) ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ oItPedido:= TRSection():New(oItCarga,STR0030,{"SC9","SB1","SC6","SF2"},/*{Array com as ordens do relatório}*/,/*Campos do SX3*/,/*Campos do SIX*/) //"Item da liberação do Pedido de venda" oItPedido:SetTotalInLine(.F.) // Totalizar por Pedido TRCell():New(oItPedido , "DAI_PEDIDO" , "DAI" , /*Titulo*/ , /*Picture*/ , /*Tamanho*/ , /*lPixel*/ , /*{|| code-block de impressao }*/) TRCell():New(oItPedido , "C9_ITEM" , "SC9" , /*Titulo*/ , /*Picture*/ , /*Tamanho*/ , /*lPixel*/ , /*{|| code-block de impressao }*/) TRCell():New(oItPedido , "C9_PRODUTO" , "SC9" , /*Titulo*/ , /*Picture*/ , /*Tamanho*/ , /*lPixel*/ , /*{|| code-block de impressao }*/) TRCell():New(oItPedido , "B1_DESC" , "SB1" , /*Titulo*/ , /*Picture*/ , /*Tamanho*/ , /*lPixel*/ , /*{|| code-block de impressao }*/) TRCell():New(oItPedido , "C9_LOTECTL" , "SC9" , /*Titulo*/ , /*Picture*/ , /*Tamanho*/ , /*lPixel*/ , /*{|| code-block de impressao }*/) TRCell():New(oItPedido , "C9_NUMLOTE" , "SC9" , /*Titulo*/ , /*Picture*/ , /*Tamanho*/ , /*lPixel*/ , /*{|| code-block de impressao }*/) TRCell():New(oItPedido , "C9_QTDLIB" , "SC9" , /*Titulo*/ , /*Picture*/ , /*Tamanho*/ , /*lPixel*/ , /*{|| code-block de impressao }*/) TRCell():New(oItPedido , "B1_UM" , "SB1" , /*Titulo*/ , /*Picture*/ , /*Tamanho*/ , /*lPixel*/ , /*{|| code-block de impressao }*/) TRCell():New(oItPedido , "C6_VALOR" , "SC6" , /*Titulo*/ , /*Picture*/ , /*Tamanho*/ , /*lPixel*/ , {|| (cAliasQry)->C9_VALOR }) TRCell():New(oItPedido , "C9_PESO" , "SC9" , STR0031 , PesqPict("SB1","B1_PESO" ) , TamSx3("B1_PESO" )[1] , /*lPixel*/ , {|| OsPesoProd((cAliasQry)->C9_PRODUTO)*(cAliasQry)->C9_QTDLIB}) //"Peso" TRCell():New(oItPedido , "F2_VOLUME1" , "SF2" , "Paletes" , PesqPict("SF2","F2_VOLUME1") , TamSx3("F2_VOLUME1")[1] , /*lPixel*/ , {|| OsPrCapArm((cAliasQry)->C9_PRODUTO,(cAliasQry)->C9_FILIAL)*(cAliasQry)->C9_QTDLIB }) //"Volume" Return( oReport ) /*ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±± ±±³Programa ³ReportPrint³ Autor ³Eduardo Riera ³ Data ³04.05.2006³±± ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±± ±±³Descri‡…o ³A funcao estatica ReportDef devera ser criada para todos os ³±± ±±³ ³relatorios que poderao ser agendados pelo usuario. ³±± ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±± ±±³Retorno ³Nenhum ³±± ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±± ±±³Parametros³ExpO1: Objeto Report do Relatorio ³±± ±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±± ±±³ DATA ³ Programador ³Manutencao efetuada ³±± ±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±± ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß*/ Static Function ReportPrint(oReport,oItPedido,cAliasQry,oCarga,cNReduz) Local cFilPV := "" Local nTipoOper := OsVlEntCom() Local cFilSC9 := Iif(nTipoOper == 1, xFilial("SC9"),"%"+OsFilQry("SC9","DAI.DAI_FILPV")+"%" ) Local cFilSB1 := Iif(nTipoOper == 1, xFilial("SB1"),"%"+OsFilQry("SB1","SC9.C9_FILIAL")+"%" ) Local cQrySelect := "%%" //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Transforma parametros Range em expressao SQL ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ MakeSqlExpr(oReport:uParam) oReport:Section(1):Section(1):Section(1):Cell("DAI_PEDIDO"):Disable() oBreak := TRBreak():New(oItPedido,oItPedido:Cell("DAI_PEDIDO" ),,.F.) //--"TOTAL DO ITEM" TRFunction():New(oItPedido:Cell("C9_QTDLIB") ,/* cID */,"SUM",oBreak,/*cTitle*/,/*cPicture*/,/*uFormula*/,.F./*lEndSection*/,.F.,/*lEndPage*/,oItPedido) TRFunction():New(oItPedido:Cell("C6_VALOR") ,/* cID */,"SUM",oBreak,/*cTitle*/,/*cPicture*/,/*uFormula*/,.F./*lEndSection*/,.F.,/*lEndPage*/,oItPedido) TRFunction():New(oItPedido:Cell("C9_PESO") ,/* cID */,"SUM",oBreak,/*cTitle*/,/*cPicture*/,/*uFormula*/,.F./*lEndSection*/,.F.,/*lEndPage*/,oItPedido) TRFunction():New(oItPedido:Cell("F2_VOLUME1"),/* cID */,"SUM",oBreak,/*cTitle*/,/*cPicture*/,/*uFormula*/,.F./*lEndSection*/,.F.,/*lEndPage*/,oItPedido) Ceiling(F2_VOLUME1) If mv_par12 == 2 // Nao Imprimir Lote oReport:Section(1):Section(1):Section(1):Cell("C9_LOTECTL"):Disable() oReport:Section(1):Section(1):Section(1):Cell("C9_NUMLOTE"):Disable() EndIf //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Query do relatorio ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ cQrySelect := "" If cPaisLoc <> "BRA" cQrySelect += ",C9_REMITO " EndIf If nTipoOper == 2 .Or. nTipoOper == 3 cQrySelect += ",DAI_FILPV " EndIf If MV_PAR12 == 1 cQrySelect += ",C9_LOTECTL,C9_NUMLOTE" EndIf cQrySelect := "%"+cQrySelect+"%" oReport:Section(1):BeginQuery() BeginSQL Alias cAliasQry SELECT DAK_FILIAL, DAK_COD, B1_DESC, DAK_SEQCAR, DAK_CAMINH, DAK_MOTORI, DAK_DATA, DAK_PESO, DAK_CAPVOL, DAK_PTOENT, DAK_VALOR, DAK_HORA, DAK_XDTCAR, DAK_XHORCA, DAK_XDOCK, DAK_TRANSP, DAI_FILIAL, DAI_COD, DAI_SEQCAR, DAI_SEQUEN, DAI_PEDIDO, DAI_CLIENT, DAI_LOJA, C9_FILIAL, C9_CLIENTE, C9_LOJA, C9_PEDIDO, C9_ITEM, C9_PRODUTO, SUM(C9_QTDLIB) C9_QTDLIB, SUM(C9_QTDLIB2) C9_QTDLIB2, SUM(C9_QTDLIB*C9_PRCVEN) C9_VALOR, C9_CARGA, C9_SEQCAR, C9_NFISCAL, C9_SERIENF, B1_UM, B1_SEGUM, SUM(B1_PESO) B1_PESO, SUM(B1_PESBRU) B1_PESBRU %exp:cQrySelect% FROM %table:DAK% DAK, %table:DAI% DAI, %table:SC9% SC9, %table:SB1% SB1 WHERE DAK_FILIAL = %xFilial:DAK% AND DAK_COD >= %exp:mv_par01% AND DAK_COD <= %exp:mv_par02% AND DAK_SEQCAR >= %exp:mv_par03% AND DAK_SEQCAR <= %exp:mv_par04% AND DAK_CAMINH >= %exp:mv_par05% AND DAK_CAMINH <= %exp:mv_par06% AND DAK_MOTORI >= %exp:mv_par07% AND DAK_MOTORI <= %exp:mv_par08% AND DAK_DATA >= %exp:Dtos(mv_par09)% AND DAK_DATA <= %exp:Dtos(mv_par10)% AND DAK.%NotDel% AND DAI_FILIAL = %exp:xFilial("DAI")% AND DAI_COD = DAK_COD AND DAI_SEQCAR = DAK_SEQCAR AND DAI.%NotDel% AND B1_FILIAL = %exp:cFilSB1% AND B1_COD = C9_PRODUTO AND SB1.%NotDel% AND C9_FILIAL = %exp:cFilSC9% AND C9_CARGA = DAI_COD AND C9_SEQCAR = DAI_SEQCAR AND C9_SEQENT = DAI_SEQUEN AND C9_CLIENTE= DAI_CLIENT AND C9_LOJA = DAI_LOJA AND C9_PEDIDO = DAI_PEDIDO AND SC9.%NotDel% GROUP BY DAK_FILIAL, DAK_COD, B1_DESC, DAK_SEQCAR, DAK_CAMINH, DAK_MOTORI, DAK_DATA, DAK_PESO, DAK_CAPVOL, DAK_PTOENT, DAK_VALOR, DAK_HORA, DAK_XDTCAR, DAK_XHORCA, DAK_XDOCK, DAK_TRANSP, DAI_FILIAL, DAI_COD, DAI_SEQCAR, DAI_SEQUEN, DAI_PEDIDO, DAI_CLIENT, DAI_LOJA, C9_FILIAL, C9_CLIENTE, C9_LOJA, C9_PEDIDO, C9_ITEM, C9_PRODUTO, C9_CARGA, C9_SEQCAR, C9_NFISCAL, C9_SERIENF, B1_UM, B1_SEGUM %exp:cQrySelect% ORDER BY DAK_FILIAL, DAK_COD, DAK_SEQCAR, DAI_SEQUEN, C9_PEDIDO, C9_ITEM, C9_NFISCAL EndSQL oReport:Section(1):EndQuery(/*Array com os parametros do tipo Range*/) oReport:Section(1):Section(1):SetParentQuery() oReport:Section(1):Section(1):Section(1):SetParentQuery() //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Ordem Pedido, Carga por Pedido ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ oReport:Section(1):Section(1):SetParentFilter({|x| (cAliasQry)->DAI_FILIAL+(cAliasQry)->DAI_COD+(cAliasQry)->DAI_SEQCAR == x}) oReport:Section(1):Section(1):bParentParam := {||cFilPv := Iif(nTipoOper == 1,cFilAnt, (cAliasQry)->C9_FILIAL),xFilial("DAI")+(cAliasQry)->DAK_COD+(cAliasQry)->DAK_SEQCAR} oReport:Section(1):Section(1):Section(1):SetParentFilter({|x|(cAliasQry)->C9_FILIAL+(cAliasQry)->DAK_COD+(cAliasQry)->DAK_SEQCAR+(cAliasQry)->C9_PEDIDO+(cAliasQry)->C9_NFISCAL == x}) oReport:Section(1):Section(1):Section(1):bParentParam := {||OsFilial("SC9",cFilPv)+(cAliasQry)->DAK_COD+(cAliasQry)->DAK_SEQCAR+(cAliasQry)->DAI_PEDIDO+(cAliasQry)->C9_NFISCAL} // oReport:Section(1):Section(1):Section(1):SetParentFilter({|x|(cAliasQry)->C9_FILIAL+(cAliasQry)->C9_CLIENTE+(cAliasQry)->C9_LOJA+(cAliasQry)->C9_PEDIDO+(cAliasQry)->C9_NFISCAL == x}) // oReport:Section(1):Section(1):Section(1):bParentParam := {||OsFilial("SC9",cFilPv)+(cAliasQry)->DAI_CLIENT+(cAliasQry)->DAI_LOJA+(cAliasQry)->DAI_PEDIDO+(cAliasQry)->C9_NFISCAL} //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Desliga e liga as section com base na ordem do relatorio. ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ oReport:Section(1):Section(1):Enable() //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Metodo TrPosition() ³ //³ ³ //³Posiciona em um registro de uma outra tabela. O posicionamento será ³ //³realizado antes da impressao de cada linha do relatorio. ³ //³ ³ //³ ³ //³ExpO1 : Objeto Report da Secao ³ //³ExpC2 : Alias da Tabela ³ //³ExpX3 : Ordem ou NickName de pesquisa ³ //³ExpX4 : String ou Bloco de codigo para pesquisa. A string sera macroexe-³ //³ cutada. ³ //³ ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Ordem 1 ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ oReport:Section(1):Section(1):Cell("A1_NOME" ):SetBlock({|| cNReduz}) TRPosition():New(oReport:Section(1),"DA3",1,{|| xFilial("DA3")+(cAliasQry)->DAK_CAMINH }) TRPosition():New(oReport:Section(1),"DA4",1,{|| xFilial("DA4")+(cAliasQry)->DAK_MOTORI }) TRPosition():New(oReport:Section(1):Section(1),"SC5",1,{|| BuscaNome(OsFilial("SC5",cFilPv)+(cAliasQry)->DAI_PEDIDO,@cNReduz)}) TRPosition():New(oReport:Section(1),"SA4",1,{|| xFilial("SA4")+(cAliasQry)->DAK_TRANSP }) TRPosition():New(oReport:Section(1):Section(1),"SF2",1,{|| OsFilial("SC9",cFilPv)+(cAliasQry)->C9_NFISCAL+(cAliasQry)->C9_SERIENF+(cAliasQry)->DAI_CLIENT+(cAliasQry)->DAI_LOJA}) //TRPosition():New(oReport:Section(1):Section(1):Section(1),"SF2",1,{|| OsFilial("SC9",cFilPv)+(cAliasQry)->C9_NFISCAL+(cAliasQry)->C9_SERIENF+(cAliasQry)->DAI_CLIENT+(cAliasQry)->DAI_LOJA}) TRPosition():New(oReport:Section(1):Section(1):Section(1),"SB1",1,{|| OsFilial("SB1",cFilPv)+(cAliasQry)->C9_ITEM+(cAliasQry)->C9_PRODUTO}) TRPosition():New(oReport:Section(1):Section(1),"SA1",1,{|| OsFilial("SA1",cFilPv) + SC5->C5_CLIENTE + SC5->C5_LOJACLI }) //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Inicio da impressao do fluxo do relatorio ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ oReport:SetMeter((cAliasQry)->(LastRec())) If MV_PAR11 == 1 oReport:Section(1):SetPageBreak(.T.) EndIf oReport:Section(1):Print() Return /*ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍ»±± ±±ºPrograma ³BuscaNome ºAutor ³Marco Bianchi º Data ³ 19/11/2007º±± ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍ͹±± ±±ºDesc. ³ Busca nome do cliente/fornecedor dependendo do tipo do º±± ±±º ³ pedido de vendas. º±± ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±± ±±ºParametros³ExpC1: Filial_Numero do pedido de vendas º±± ±±º ³ExpC2: Nome do cliente/fornececor º±± ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±± ±±ºUso ³ MP8/P10 º±± ±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±± ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß*/ Static Function BuscaNome(cChave,cNReduz) DbSelectArea("SC5") DbSetOrder(1) If DbSeek(cChave) If !SC5->C5_TIPO $ "BD" DbSelectArea("SA1") DbSetOrder(1) DbSeek(xFilial("SA1")+SC5->C5_CLIENTE+SC5->C5_LOJACLI) cNReduz := SA1->A1_NOME Else DbSelectArea("SA2") DbSetOrder(1) DbSeek(xFilial("SA2")+SC5->C5_CLIENTE+SC5->C5_LOJACLI) cNReduz := SA2->A2_NOME EndIf EndIf Return( cChave )