Imprimi Página | Fechar janela |
Desenvolvimento Relatório Impresso de: Helpfacil - Portal do conhecimento Nome do Forum: ADVPL Descrição do Forum: Dúvidas sobre a programação em ADVPL URL:http://www.helpfacil.com.br/display_topic_threads.asp?ForumID=1&TopicID=43028 Data da Impressão: quinta-feira, 18 de abril de 2024 at 18:31 Topico: Desenvolvimento Relatório Postado por: BLALVES Assunto: Desenvolvimento Relatório Data Postagem: segunda-feira, 23 de dezembro de 2019 at 20:05 Olá colegas, boa noite! Estou iniciando no desenvolvimento ADVPL, e estou gerando um relatório que fiz baseado em outros fontes. Estou gravando a variável: _aProcesso que é populada através da execução de uma função, já debuggei e não consigo descobrir o motivo de ao imprimir o relatório, ela vir zerada. Segue o código completo abaixo, caso alguém possa me dar uma força pra resolver. Feliz Natal e Boas Festas. Obrigada; Brunna -----------------------------------------------------------------------------------#INCLUDE "PROTHEUS.CH" #INCLUDE "TOPCONN.CH" #INCLUDE "TBICONN.CH" /*/{Protheus.doc} RELCUS01 Relatorio Personalizado Custo Importacao @author QsdoBrasil - Brunna ALves @since Dez/2019 @version 1.0 /*/ User Function RELCUS01() Local aArea := GetArea() Private cPerg := PadR("RELCUS01",Len (SX1->X1_GRUPO)) Private oReport := Nil Private oSecCab:= Nil Pergunte(cPerg,.F.) oReport:= ReportDef(cPerg) oReport:PrintDialog() RestArea(aArea) Return Nil Static Function ReportDef(cPerg) oReport := TReport():New(cPerg,"Custo Importacao (EIC)",cPerg,{|oReport| pReport(oReport)},"Impressao de Livros Fiscais") oReport:SetLandscape(.T.) oSecCab := TRSection():New( oReport , "RELCUS01", {"QRY"} ) TRCell():New( oSecCab, "W6_TPOPER" , "QRY", ‘Tipo Operacao‘ ,PesqPict(‘SW6‘,"W6_TPOPER") ,TamSX3("W6_TPOPER")[1],/*lPixel*/,/*{|| code-block de impressao }*/) TRCell():New( oSecCab, "W6_PTAX_DI" , "QRY", ‘Taxa Cambio DI‘ ,PesqPict(‘SW6‘,"W6_PTAX_DI") ,TamSX3("W6_PTAX_DI")[1],/*lPixel*/,/*{|| code-block de impressao }*/) TRCell():New( oSecCab, "D1_FILIAL" , "QRY", ‘Filial‘ ,PesqPict(‘SD1‘,"D1_FILIAL") ,TamSX3("D1_FILIAL")[1],/*lPixel*/,/*{|| code-block de impressao }*/) TRCell():New( oSecCab, "D1_CONHEC" , "QRY", ‘Processo ‘ ,PesqPict(‘SD1‘,"D1_CONHEC") ,TamSX3("D1_CONHEC")[1],/*lPixel*/,/*{|| code-block de impressao }*/) TRCell():New( oSecCab, "D1_DOC" , "QRY", ‘Doc. Fiscal‘ ,PesqPict(‘SD1‘,"D1_DOC") ,TamSX3("D1_DOC")[1],/*lPixel*/,/*{|| code-block de impressao }*/) TRCell():New( oSecCab, "D1_SERIE" , "QRY", ‘Serie NF‘ ,PesqPict(‘SD1‘,"D1_SERIE") ,TamSX3("D1_SERIE")[1],/*lPixel*/,/*{|| code-block de impressao }*/) TRCell():New( oSecCab, "D1_EMISSAO" , "QRY", ‘Dt. Emissao NF‘ ,PesqPict(‘SD1‘,"D1_EMISSAO") ,TamSX3("D1_EMISSAO")[1],/*lPixel*/,/*{|| code-block de impressao }*/) TRCell():New( oSecCab, "D1_DTDIGIT" , "QRY", ‘Dt. Digitacao NF‘ ,PesqPict(‘SD1‘,"D1_DTDIGIT") ,TamSX3("D1_DTDIGIT")[1],/*lPixel*/,/*{|| code-block de impressao }*/) TRCell():New( oSecCab, "D1_FORNECE" , "QRY", ‘Codigo Fornece‘ ,PesqPict(‘SD1‘,"D1_FORNECE") ,TamSX3("D1_FORNECE")[1],/*lPixel*/,/*{|| code-block de impressao }*/) TRCell():New( oSecCab, "D1_VALICM" , "QRY", ‘Vlr. ICMS‘ ,PesqPict(‘SD1‘,"D1_VALICM") ,TamSX3("D1_VALICM")[1],/*lPixel*/,/*{|| code-block de impressao }*/) TRCell():New( oSecCab, "D1_II" , "QRY", ‘Vlr. II‘ ,PesqPict(‘SD1‘,"D1_II") ,TamSX3("D1_II")[1],/*lPixel*/,/*{|| code-block de impressao }*/) TRCell():New( oSecCab, "D1_VALIPI" , "QRY", ‘Vlr. IPI‘ ,PesqPict(‘SD1‘,"D1_VALIPI") ,TamSX3("D1_VALIPI")[1],/*lPixel*/,/*{|| code-block de impressao }*/) TRCell():New( oSecCab, "D1_VALIMP6" , "QRY", ‘Vlr. PIS‘ ,PesqPict(‘SD1‘,"D1_VALIMP6") ,TamSX3("D1_VALIMP6")[1],/*lPixel*/,/*{|| code-block de impressao }*/) TRCell():New( oSecCab, "D1_VALIMP5" , "QRY", ‘Vlr. COF‘ ,PesqPict(‘SD1‘,"D1_VALIMP5") ,TamSX3("D1_VALIMP5")[1],/*lPixel*/,/*{|| code-block de impressao }*/) TRCell():New( oSecCab, "D1_DESPESA" , "QRY", ‘Vlr. Siscomex‘ ,PesqPict(‘SD1‘,"D1_DESPESA") ,TamSX3("D1_DESPESA")[1],/*lPixel*/,/*{|| code-block de impressao }*/) TRCell():New( oSecCab, "D1_OBS" , "QRY", ‘Obs‘ ,PesqPict(‘SD1‘,"D1_OBS") ,TamSX3("D1_OBS")[1],/*lPixel*/,/*{|| code-block de impressao }*/) TRCell():New( oSecCab, "W8_INVOICE" , "QRY", ‘Num. Invoice‘ ,PesqPict(‘SW8‘,"W8_INVOICE") ,TamSX3("W8_INVOICE")[1],/*lPixel*/,/*{|| code-block de impressao }*/) TRCell():New( oSecCab, "W8_DT_EMIS" , "QRY", ‘Dt. Emis. Invoice‘,PesqPict(‘SW8‘,"W8_DT_EMIS") ,TamSX3("W8_DT_EMIS")[1],/*lPixel*/,/*{|| code-block de impressao }*/) TRCell():New( oSecCab, "W8_COD_I" , "QRY", ‘Cod. Produto‘ ,PesqPict(‘SW8‘,"W8_COD_I") ,TamSX3("W8_COD_I")[1],/*lPixel*/,/*{|| code-block de impressao }*/) TRCell():New( oSecCab, "B1_DESC" , "QRY", ‘Desc. Produto‘ ,PesqPict(‘SB1‘,"B1_DESC") ,TamSX3("B1_DESC")[1],/*lPixel*/,/*{|| code-block de impressao }*/) TRCell():New( oSecCab, "W8_LOTEORI" , "QRY", ‘Lote Origem‘ ,PesqPict(‘SW8‘,"W8_LOTEORI") ,TamSX3("W8_LOTEORI")[1],/*lPixel*/,/*{|| code-block de impressao }*/) TRCell():New( oSecCab, "W8_QTDE" , "QRY", ‘Qtde Produto‘ ,PesqPict(‘SW8‘,"W8_QTDE") ,TamSX3("W8_QTDE")[1],/*lPixel*/,/*{|| code-block de impressao }*/) TRCell():New( oSecCab, "W8_PRECO_R" , "QRY", ‘Vlr. Produto R$‘ ,PesqPict(‘SW8‘,"W8_PRECO_R") ,TamSX3("W8_PRECO_R")[1],/*lPixel*/,/*{|| code-block de impressao }*/) TRCell():New( oSecCab, "W8_PRECO_D" , "QRY", ‘Vlr. Produto USD‘ ,PesqPict(‘SW8‘,"W8_PRECO_D") ,TamSX3("W8_PRECO_D")[1],/*lPixel*/,/*{|| code-block de impressao }*/) TRCell():New( oSecCab, "W8_FRETEIN" , "QRY", ‘Vlr. Frete R$‘ ,PesqPict(‘SW8‘,"W8_FRETEIN") ,TamSX3("W8_FRETEIN")[1],/*lPixel*/,/*{|| code-block de impressao }*/) TRCell():New( oSecCab, "W8_FRETE_D" , "QRY", ‘Vlr. Frete USD‘ ,PesqPict(‘SW8‘,"W8_FRETE_D") ,TamSX3("W8_FRETE_D")[1],/*lPixel*/,/*{|| code-block de impressao }*/) TRCell():New( oSecCab, "W8_SEGURO" , "QRY", ‘Vlr. Seguro‘ ,PesqPict(‘SW8‘,"W8_SEGURO") ,TamSX3("W8_SEGURO")[1],/*lPixel*/,/*{|| code-block de impressao }*/) TRCell():New( oSecCab, "W2_INCOTER" , "QRY", ‘Incoterm‘ ,PesqPict(‘SW2‘,"W2_INCOTER") ,TamSX3("W2_INCOTER")[1],/*lPixel*/,/*{|| code-block de impressao }*/) TRCell():New( oSecCab, "YQ_DESCR" , "QRY", ‘Tipo de Envio‘ ,PesqPict(‘SYQ‘,"YQ_DESCR") ,TamSX3("YQ_DESCR")[1],/*lPixel*/,/*{|| code-block de impressao }*/) TRCell():New( oSecCab, "VL_DESPESA" , " ", ‘Vlr. Despesas‘ ,PesqPict(‘SWD‘,"WD_VALOR_R") ,TamSX3("WD_VALOR_R")[1],/*lPixel*/,/*{|| code-block de impressao }*/) //TRCell():New( oSecCab, "WD_VALOR_R" , "QRY", ‘Vlr. Servico Clac‘,PesqPict(‘SWD‘,"WD_VALOR_R") ,TamSX3("WD_VALOR_R")[1],/*lPixel*/,/*{|| code-block de impressao }*/) Return oReport Static Function RcpItensNF(cProcesso, cDoc, cSerie) // Local cQuery2 := " " Local _cTotal := " " // cQuery2 := "SELECT DISTINCT (G.WD_VALOR_R / MAX(A.D1_ITEM))AS VLR_DESPESAS"+CRLF cQuery2 += "FROM "+RetSqlName(‘SD1‘)+" A (NOLOCK), "+RetSqlName(‘SWD‘)+" G (NOLOCK)" +CRLF //cQuery2 += "WHERE A.D1_CONHEC = ‘IMP 362/19‘"+CRLF cQuery2 += "WHERE D1_CONHEC = ‘"+cProcesso+"‘ " + CRLF cQuery2 += "AND D1_DOC = ‘"+cDoc+"‘ " + CRLF cQuery2 += "AND D1_SERIE = ‘"+cSerie+"‘ " + CRLF cQuery2 += "AND A.D_E_L_E_T_ <> ‘*‘ "+CRLF cQuery2 += "AND A.D1_FILIAL = G.WD_FILIAL "+CRLF cQuery2 += "AND A.D1_CONHEC = G.WD_HAWB "+CRLF cQuery2 += "AND G.WD_DESPESA IN (‘411‘)"+CRLF cQuery2 += "AND A.D1_TIPO = ‘N‘"+CRLF cQuery2 += "AND G.D_E_L_E_T_ <> ‘*‘"+CRLF cQuery2 += "GROUP BY G.WD_VALOR_R" if Select("TRB") > 0 TRB->( dbCloseArea() ) endif // cQuery2 := ChangeQuery(cQuery2) dbUseArea(.T.,"TOPCONN",TcGenQry(,,cQuery2),"TRB",.T.,.T.) //aTam := TamSx3("WD_VALOR_R") //TCSetField( "TRB", "VLR_DESPESAS", "N", aTam[1], aTam[2] ) // dbselectarea("TRB") // TRB->( dbGoTop() ) If !TRB->( eof() ) _cTotal := TRB->VLR_DESPESAS Endif // if Select("TRB") > 0 TRB->( dbCloseArea() ) endif // Return {_cTotal} Static Function pReport(oReport) Local cQuery := "" Local oSection1 := oReport:Section(1) Local _aProcesso := " " Pergunte(cPerg,.F.) oSection1:Init() oSection1:SetHeaderSection(.T.) //Query cQuery := "SELECT DISTINCT W6_TPOPER, W6_PTAX_DI,D1_FILIAL, D1_CONHEC, D1_DOC, D1_SERIE, D1_EMISSAO, D1_DTDIGIT, D1_FORNECE, "+CRLF cQuery += "D1_VALICM,D1_II, D1_VALIPI, D1_VALIMP6,D1_DTDIGIT, D1_FORNECE, D1_VALICM, D1_II, D1_VALIPI, "+CRLF cQuery += "D1_VALIMP6,D1_VALIMP5,D1_DESPESA, D1_OBS, W8_INVOICE, W8_DT_EMIS, W8_COD_I, B1_DESC, "+CRLF cQuery += "W8_LOTEORI, W8_QTDE, W8_PRECO_R,W8_PRECO_D, W8_FRETEIN, W8_FRETE_D, W8_SEGURO,"+CRLF cQuery += "W2_INCOTER, YQ_DESCR"+CRLF cQuery += "FROM "+RetSqlName(‘SD1‘)+" A (NOLOCK), "+RetSqlName(‘SW8‘)+" B (NOLOCK)," +CRLF cQuery += +RetSqlName(‘SB1‘)+" C (NOLOCK), "+RetSqlName(‘SW2‘)+" D (NOLOCK)," +CRLF cQuery += +RetSqlName(‘SYQ‘)+" E (NOLOCK), "+RetSqlName(‘SW6‘)+" F (NOLOCK)" +CRLF cQuery += "WHERE D1_DTDIGIT BETWEEN ‘"+DtoS(MV_PAR01)+"‘ AND ‘"+DtoS(MV_PAR02)+"‘ "+CRLF cQuery += "AND A.D_E_L_E_T_ <> ‘*‘ "+CRLF cQuery += "AND A.D1_CONHEC <> ‘ ‘ "+CRLF cQuery += "AND A.D1_CONHEC = B.W8_HAWB "+CRLF cQuery += "AND A.D1_FILIAL = B.W8_FILIAL "+CRLF cQuery += "AND A.D1_COD = B.W8_COD_I "+CRLF cQuery += "AND A.D1_QUANT = B.W8_QTDE "+CRLF cQuery += "AND B.D_E_L_E_T_ <> ‘*‘ "+CRLF cQuery += "AND B.W8_COD_I = C.B1_COD "+CRLF cQuery += "AND C.D_E_L_E_T_ <> ‘*‘ "+CRLF cQuery += "AND D.W2_PO_NUM = A.D1_CONHEC "+CRLF cQuery += "AND D.W2_FILIAL = A.D1_FILIAL "+CRLF cQuery += "AND D.D_E_L_E_T_ <> ‘*‘ "+CRLF cQuery += "AND D.W2_TIPO_EM = E.YQ_VIA"+CRLF cQuery += "AND D.W2_FILIAL = E.YQ_FILIAL"+CRLF cQuery += "AND E.D_E_L_E_T_ <> ‘*‘ "+CRLF cQuery += "AND A.D1_TIPO = ‘N‘"+CRLF cQuery += "AND A.D1_CONHEC = F.W6_HAWB "+CRLF cQuery += "AND A.D1_FILIAL = F.W6_FILIAL"+CRLF cQuery += "AND F.D_E_L_E_T_ <> ‘*‘ "+CRLF cQuery += "AND A.D1_CONHEC = ‘IMP 366/19‘"+CRLF cQuery += "ORDER BY D1_EMISSAO, D1_DOC, D1_SERIE" If Select("QRY") > 0 Dbselectarea("QRY") QRY->(DbClosearea()) EndIf TcQuery cQuery New Alias "QRY" dbSelectArea("QRY") QRY->(dbGoTop()) oReport:SetMeter(QRY->(RecCount())) Alert("Vlr. Despesas3: " + cValToChar(_aProcesso)) While QRY->(!Eof()) _aProcesso := RcpItensNF(QRY->D1_CONHEC ,QRY->D1_DOC, QRY->D1_SERIE) // ùltima Compra If oReport:Cancel() Exit EndIf oReport:IncMeter() oSection1:Cell("W6_TPOPER"):SetValue(QRY->W6_TPOPER) oSection1:Cell("W6_PTAX_DI"):SetValue(QRY->W6_PTAX_DI) oSection1:Cell("D1_FILIAL"):SetValue(QRY->D1_FILIAL) oSection1:Cell("D1_CONHEC"):SetValue(QRY->D1_CONHEC) oSection1:Cell("D1_DOC"):SetValue(QRY->D1_DOC) oSection1:Cell("D1_SERIE"):SetValue(QRY->D1_SERIE) oSection1:Cell("D1_EMISSAO"):SetValue(QRY->D1_EMISSAO) oSection1:Cell("D1_DTDIGIT"):SetValue(QRY->D1_DTDIGIT) oSection1:Cell("D1_DTDIGIT"):SetValue(QRY->D1_DTDIGIT) oSection1:Cell("D1_VALICM"):SetValue(QRY->D1_VALICM) oSection1:Cell("D1_II"):SetValue(QRY->D1_II) oSection1:Cell("D1_VALIPI"):SetValue(QRY->D1_VALIPI) oSection1:Cell("D1_VALIMP6"):SetValue(QRY->D1_VALIMP6) oSection1:Cell("D1_VALIMP5"):SetValue(QRY->D1_VALIMP5) oSection1:Cell("D1_DESPESA"):SetValue(QRY->D1_DESPESA) oSection1:Cell("D1_OBS"):SetValue(QRY->D1_OBS) oSection1:Cell("W8_INVOICE"):SetValue(QRY->W8_INVOICE) oSection1:Cell("W8_DT_EMIS"):SetValue(QRY->W8_DT_EMIS) oSection1:Cell("W8_COD_I"):SetValue(QRY->W8_COD_I) oSection1:Cell("B1_DESC"):SetValue(QRY->B1_DESC) oSection1:Cell("W8_LOTEORI"):SetValue(QRY->W8_LOTEORI) oSection1:Cell("W8_QTDE"):SetValue(QRY->W8_QTDE) oSection1:Cell("W8_PRECO_R"):SetValue(QRY->W8_PRECO_R) oSection1:Cell("W8_PRECO_D"):SetValue(QRY->W8_PRECO_D) oSection1:Cell("W8_FRETEIN"):SetValue(QRY->W8_FRETEIN) oSection1:Cell("W8_FRETE_D"):SetValue(QRY->W8_FRETE_D) oSection1:Cell("W8_SEGURO"):SetValue(QRY->W8_SEGURO) oSection1:Cell("W2_INCOTER"):SetValue(QRY->W2_INCOTER) oSection1:Cell("YQ_DESCR"):SetValue(QRY->YQ_DESCR) oSection1:Cell("VL_DESPESA"):SetValue(_aProcesso) oSection1:PrintLine() QRY->(dbSkip()) End oSection1:Finish() Return Nil User Function VLDFT01() Local lRet := .t. Local cVar := ReadVar() Local xCont := &(cVar) If cVar == "MV_PAR01" If Empty(xCont) lRet:= .f. Alert("Preencha a Data de Inicio") ENDIF EndIf If cVar == "MV_PAR02" If Empty(xCont) lRet := .f. Alert("Preencha a Data Final") Elseif Substr(dToS(xCont),1,6) != SubStr(dToS(MV_PAR01),1,6) lRet := .f. Alert("Favor Utilizar Data Final no mesmo Mês e Ano da Data Inicial") Elseif xCont < MV_PAR01 lRet := .f. Alert("Data Final deve ser maior que Data Inicial") Endif EndIf Return(lret) Respostas: Postado Por: MNGT Data Postagem: terça-feira, 24 de dezembro de 2019 at 19:28 Brunna Vou tentar ajudar na análise, porém não li minuciosamente. Portanto, estou realizando um pré-análise. Pelo que vi vc não esta utilizando a função Pergunte() vc esta definindo as variáveis na query. Primeiro, as query estão trazendo registros ? tente utilizar a função Memowrite() para as query e valide no próprio MSSQL se elas estão trazendo registros. Esse pode ser um dos motivos para estar trazendo o resultado reportado. Aplique o DbGoTop() depois do Reccount() Não utilize o Changequery(). O NOLOCK é eliminado com esta função. Verifique esta minha afirmação com a utilização do Memowrite(). O retorno da RcpItensNF() é uma variável numérica e vc esta armazenando numa variável matriz. Somente comece nesta área de programação de forma coesa para criar uma linha de metodologia e normatização correta. Ajuda na sua linha de raciocínio. desenvolvimento e aprendizado mais fácil. Vc cria coerência nas suas decisões. Como lhe informei foi superficial minha análise, 2 minutinhos. Aparentemente, parece o vilão o RecCount(), porém muito pouco tenho para afirmar. Além do que um bom programador precisa realizar exaustivamente "teste de mesa" para entender como analisar e onde esta a causa do mau resultado da rotina. Querendo ou não o que seu cliente deseja é o resultado solicitado. Perdi mais tempo escrevendo do que analisando. Boa Análise, Boas festas e um Feliz Natal. Att, mngt Postado Por: EMERSON.EN Data Postagem: quinta-feira, 26 de dezembro de 2019 at 11:50 avalie tudo o que o MNGT apontou. segue uma versão do teu relatório: #INCLUDE "PROTHEUS.CH" #INCLUDE "TOPCONN.CH" #INCLUDE "TBICONN.CH" /*/{Protheus.doc} RELCUS01 Relatorio Personalizado Custo Importacao @author QsdoBrasil - Brunna ALves @since Dez/2019 @version 1.0 /*/ User Function RELCUS01() Local aArea := GetArea() Private cPerg := PadR("RELCUS01",Len (SX1->X1_GRUPO)) Private oReport := Nil Private oSecCab := Nil Pergunte(cPerg,.F.) oReport := TReport():New(cPerg,"Custo Importacao (EIC)",cPerg,{|oReport| pReport(oReport)},"Impressao de Livros Fiscais") oReport:SetLandscape() oReport:PrintDialog() RestArea(aArea) Return Nil Static Function ReportDef( oReport ) oSecCab := TRSection():New( oReport, "RELCUS01", {"QRY"} ) TRCell():New( oSecCab, "W6_TPOPER" , "QRY", ‘Tipo Operacao‘ , PesqPict(‘SW6‘,"W6_TPOPER") , TamSX3("W6_TPOPER")[1] , /*lPixel*/, /*{|| code-block de impressao }*/) TRCell():New( oSecCab, "W6_PTAX_DI" , "QRY", ‘Taxa Cambio DI‘ , PesqPict(‘SW6‘,"W6_PTAX_DI") , TamSX3("W6_PTAX_DI")[1] , /*lPixel*/, /*{|| code-block de impressao }*/) TRCell():New( oSecCab, "D1_FILIAL" , "QRY", ‘Filial‘ , PesqPict(‘SD1‘,"D1_FILIAL") , TamSX3("D1_FILIAL")[1] , /*lPixel*/, /*{|| code-block de impressao }*/) TRCell():New( oSecCab, "D1_CONHEC" , "QRY", ‘Processo‘ , PesqPict(‘SD1‘,"D1_CONHEC") , TamSX3("D1_CONHEC")[1] , /*lPixel*/, /*{|| code-block de impressao }*/) TRCell():New( oSecCab, "D1_DOC" , "QRY", ‘Doc. Fiscal‘ , PesqPict(‘SD1‘,"D1_DOC") , TamSX3("D1_DOC")[1] , /*lPixel*/, /*{|| code-block de impressao }*/) TRCell():New( oSecCab, "D1_SERIE" , "QRY", ‘Serie NF‘ , PesqPict(‘SD1‘,"D1_SERIE") , TamSX3("D1_SERIE")[1] , /*lPixel*/, /*{|| code-block de impressao }*/) TRCell():New( oSecCab, "D1_EMISSAO" , "QRY", ‘Dt. Emissao NF‘ , PesqPict(‘SD1‘,"D1_EMISSAO") , TamSX3("D1_EMISSAO")[1] , /*lPixel*/, /*{|| code-block de impressao }*/) TRCell():New( oSecCab, "D1_DTDIGIT" , "QRY", ‘Dt. Digitacao NF‘ , PesqPict(‘SD1‘,"D1_DTDIGIT") , TamSX3("D1_DTDIGIT")[1] , /*lPixel*/, /*{|| code-block de impressao }*/) TRCell():New( oSecCab, "D1_FORNECE" , "QRY", ‘Codigo Fornece‘ , PesqPict(‘SD1‘,"D1_FORNECE") , TamSX3("D1_FORNECE")[1] , /*lPixel*/, /*{|| code-block de impressao }*/) TRCell():New( oSecCab, "D1_VALICM" , "QRY", ‘Vlr. ICMS‘ , PesqPict(‘SD1‘,"D1_VALICM") , TamSX3("D1_VALICM")[1] , /*lPixel*/, /*{|| code-block de impressao }*/) TRCell():New( oSecCab, "D1_II" , "QRY", ‘Vlr. II‘ , PesqPict(‘SD1‘,"D1_II") , TamSX3("D1_II")[1] , /*lPixel*/, /*{|| code-block de impressao }*/) TRCell():New( oSecCab, "D1_VALIPI" , "QRY", ‘Vlr. IPI‘ , PesqPict(‘SD1‘,"D1_VALIPI") , TamSX3("D1_VALIPI")[1] , /*lPixel*/, /*{|| code-block de impressao }*/) TRCell():New( oSecCab, "D1_VALIMP6" , "QRY", ‘Vlr. PIS‘ , PesqPict(‘SD1‘,"D1_VALIMP6") , TamSX3("D1_VALIMP6")[1] , /*lPixel*/, /*{|| code-block de impressao }*/) TRCell():New( oSecCab, "D1_VALIMP5" , "QRY", ‘Vlr. COF‘ , PesqPict(‘SD1‘,"D1_VALIMP5") , TamSX3("D1_VALIMP5")[1] , /*lPixel*/, /*{|| code-block de impressao }*/) TRCell():New( oSecCab, "D1_DESPESA" , "QRY", ‘Vlr. Siscomex‘ , PesqPict(‘SD1‘,"D1_DESPESA") , TamSX3("D1_DESPESA")[1] , /*lPixel*/, /*{|| code-block de impressao }*/) TRCell():New( oSecCab, "D1_OBS" , "QRY", ‘Obs‘ , PesqPict(‘SD1‘,"D1_OBS") , TamSX3("D1_OBS")[1] , /*lPixel*/, /*{|| code-block de impressao }*/) TRCell():New( oSecCab, "W8_INVOICE" , "QRY", ‘Num. Invoice‘ , PesqPict(‘SW8‘,"W8_INVOICE") , TamSX3("W8_INVOICE")[1] , /*lPixel*/, /*{|| code-block de impressao }*/) TRCell():New( oSecCab, "W8_DT_EMIS" , "QRY", ‘Dt. Emis. Invoice‘ , PesqPict(‘SW8‘,"W8_DT_EMIS") , TamSX3("W8_DT_EMIS")[1] , /*lPixel*/, /*{|| code-block de impressao }*/) TRCell():New( oSecCab, "W8_COD_I" , "QRY", ‘Cod. Produto‘ , PesqPict(‘SW8‘,"W8_COD_I") , TamSX3("W8_COD_I")[1] , /*lPixel*/, /*{|| code-block de impressao }*/) TRCell():New( oSecCab, "B1_DESC" , "QRY", ‘Desc. Produto‘ , PesqPict(‘SB1‘,"B1_DESC") , TamSX3("B1_DESC")[1] , /*lPixel*/, /*{|| code-block de impressao }*/) TRCell():New( oSecCab, "W8_LOTEORI" , "QRY", ‘Lote Origem‘ , PesqPict(‘SW8‘,"W8_LOTEORI") , TamSX3("W8_LOTEORI")[1] , /*lPixel*/, /*{|| code-block de impressao }*/) TRCell():New( oSecCab, "W8_QTDE" , "QRY", ‘Qtde Produto‘ , PesqPict(‘SW8‘,"W8_QTDE") , TamSX3("W8_QTDE")[1] , /*lPixel*/, /*{|| code-block de impressao }*/) TRCell():New( oSecCab, "W8_PRECO_R" , "QRY", ‘Vlr. Produto R$‘ , PesqPict(‘SW8‘,"W8_PRECO_R") , TamSX3("W8_PRECO_R")[1] , /*lPixel*/, /*{|| code-block de impressao }*/) TRCell():New( oSecCab, "W8_PRECO_D" , "QRY", ‘Vlr. Produto USD‘ , PesqPict(‘SW8‘,"W8_PRECO_D") , TamSX3("W8_PRECO_D")[1] , /*lPixel*/, /*{|| code-block de impressao }*/) TRCell():New( oSecCab, "W8_FRETEIN" , "QRY", ‘Vlr. Frete R$‘ , PesqPict(‘SW8‘,"W8_FRETEIN") , TamSX3("W8_FRETEIN")[1] , /*lPixel*/, /*{|| code-block de impressao }*/) TRCell():New( oSecCab, "W8_FRETE_D" , "QRY", ‘Vlr. Frete USD‘ , PesqPict(‘SW8‘,"W8_FRETE_D") , TamSX3("W8_FRETE_D")[1] , /*lPixel*/, /*{|| code-block de impressao }*/) TRCell():New( oSecCab, "W8_SEGURO" , "QRY", ‘Vlr. Seguro‘ , PesqPict(‘SW8‘,"W8_SEGURO") , TamSX3("W8_SEGURO")[1] , /*lPixel*/, /*{|| code-block de impressao }*/) TRCell():New( oSecCab, "W2_INCOTER" , "QRY", ‘Incoterm‘ , PesqPict(‘SW2‘,"W2_INCOTER") , TamSX3("W2_INCOTER")[1] , /*lPixel*/, /*{|| code-block de impressao }*/) TRCell():New( oSecCab, "YQ_DESCR" , "QRY", ‘Tipo de Envio‘ , PesqPict(‘SYQ‘,"YQ_DESCR") , TamSX3("YQ_DESCR")[1] , /*lPixel*/, /*{|| code-block de impressao }*/) TRCell():New( oSecCab, "VL_DESPESA" , " ", ‘Vlr. Despesas‘ , PesqPict(‘SWD‘,"WD_VALOR_R") , TamSX3("WD_VALOR_R")[1] , /*lPixel*/, /*{|| code-block de impressao }*/) // TRCell():New( oSecCab, "WD_VALOR_R" , "QRY", ‘Vlr. Servico Clac‘ , PesqPict(‘SWD‘,"WD_VALOR_R") , TamSX3("WD_VALOR_R")[1] , /*lPixel*/, /*{|| code-block de impressao }*/) Return oReport Static Function RcpItensNF(cProcesso, cDoc, cSerie) // Local cQuery2 Local _nTotal := 0 // // D1_ITEM é caracter; não tem como dividir cQuery2 := "SELECT COALESCE(SUM(WD.WD_VALOR_R),0) AS VLR_DESPESAS "+CRLF cQuery2 += "FROM "+RetSqlName(‘SD1‘)+" D1 (NOLOCK) "+CRLF cQuery2 += "INNER JOIN "+RetSqlName(‘SWD‘)+" WD (NOLOCK) ON WD.D_E_L_E_T_ = ‘‘ AND WD.WD_FILIAL = ‘"+xFilial("SWD")+"‘ "+CRLF cQuery2 += " AND WD.WD_HAWB = D1.D1_CONHEC "+CRLF cQuery2 += " AND WD.WD_DESPESA IN (‘411‘) "+CRLF cQuery2 += "WHERE D1.D_E_L_E_T_ = ‘‘ AND D1.D1_FILIAL = ‘"+xFilial("SD1")+"‘ "+CRLF cQuery2 += " AND D1.D1_CONHEC = ‘"+cProcesso+"‘ "+CRLF cQuery2 += " AND D1.D1_DOC = ‘"+cDoc+"‘ "+CRLF cQuery2 += " AND D1.D1_SERIE = ‘"+cSerie+"‘ "+CRLF cQuery2 += " AND D1.D1_TIPO = ‘N‘ "+CRLF if Select("TRB") > 0 TRB->( dbCloseArea() ) endif dbUseArea(.T.,"TOPCONN",TcGenQry(,,cQuery2),"TRB",.T.,.T.) _nTotal := TRB->VLR_DESPESAS TRB->( dbCloseArea() ) Return _nTotal Static Function pReport(oReport) Local oSection1 Local cQuery := "" Local _aProcesso:= {} Pergunte(cPerg,.F.) //Query cQuery := "SELECT DISTINCT W6_TPOPER, W6_PTAX_DI,D1_FILIAL, D1_CONHEC, D1_DOC, D1_SERIE, D1_EMISSAO, D1_DTDIGIT, D1_FORNECE, "+CRLF cQuery += " D1_VALICM,D1_II, D1_VALIPI, D1_VALIMP6,D1_DTDIGIT, D1_FORNECE, D1_VALICM, D1_II, D1_VALIPI, "+CRLF cQuery += " D1_VALIMP6,D1_VALIMP5,D1_DESPESA, D1_OBS, W8_INVOICE, W8_DT_EMIS, W8_COD_I, B1_DESC, "+CRLF cQuery += " W8_LOTEORI, W8_QTDE, W8_PRECO_R,W8_PRECO_D, W8_FRETEIN, W8_FRETE_D, W8_SEGURO, "+CRLF cQuery += " W2_INCOTER, YQ_DESCR "+CRLF cQuery += "FROM "+RetSqlName(‘SD1‘)+" D1 (NOLOCK) "+CRLF cQuery += "INNER JOIN "+RetSqlName(‘SW8‘)+" W8 (NOLOCK) ON W8.D_E_L_E_T_ = ‘‘ AND W8.W8_FILIAL = ‘"+xFilial("SW8")+"‘ "+CRLF cQuery += " AND W8.W8_HAWB = D1.D1_CONHEC "+CRLF cQuery += " AND W8.W8_COD_I = D1.D1_COD "+CRLF cQuery += " AND W8.W8_QTDE = D1.D1_QUANT "+CRLF cQuery += "INNER JOIN "+RetSqlName(‘SB1‘)+" B1 (NOLOCK) ON B1.D_E_L_E_T_ = ‘‘ AND B1.B1_FILIAL = ‘"+xFilial("SB1")+"‘ "+CRLF cQuery += " AND B1.B1_COD = W8.W8_COD_I "+CRLF cQuery += "INNER JOIN "+RetSqlName(‘SW2‘)+" W2 (NOLOCK) ON W2.D_E_L_E_T_ = ‘‘ AND W2.W2_FILIAL = ‘"+xFilial("SW2")+"‘ "+CRLF cQuery += " AND W2.W2_PO_NUM = D1.D1_CONHEC "+CRLF cQuery += "INNER JOIN "+RetSqlName(‘SYQ‘)+" YQ (NOLOCK) ON YQ.D_E_L_E_T_ = ‘‘ AND YQ.YQ_FILIAL = ‘"+xFilial("SYQ")+"‘ "+CRLF cQuery += " AND YQ.YQ_VIA = W2.W2_TIPO_EM "+CRLF cQuery += "INNER JOIN "+RetSqlName(‘SW6‘)+" W6 (NOLOCK) ON W6.D_E_L_E_T_ = ‘‘ AND W6.W6_FILIAL = ‘"+xFilial("SW6")+"‘ "+CRLF cQuery += " AND W6.W6_HAWB = D1.D1_CONHEC "+CRLF cQuery += "WHERE D1.D_E_L_E_T_ = ‘‘ AND D1.D1_FILIAL = ‘"+xFilial("SD1")+"‘ "+CRLF cQuery += " AND D1.D1_DTDIGIT BETWEEN ‘"+DtoS(MV_PAR01)+"‘ AND ‘"+DtoS(MV_PAR02)+"‘ "+CRLF cQuery += " AND D1.D1_CONHEC <> ‘ ‘ "+CRLF cQuery += " AND D1.D1_TIPO = ‘N‘ "+CRLF cQuery += " AND D1.D1_CONHEC = ‘IMP 366/19‘ "+CRLF // VALOR CHUMBADO ????? cQuery += "ORDER BY D1.D1_EMISSAO, D1.D1_DOC, D1.D1_SERIE "+CRLF If Select("QRY") > 0 QRY->(DbClosearea()) EndIf TcQuery cQuery New Alias "QRY" QRY->(dbGoTop()) oReport:SetMeter(QRY->(RecCount())) ReportDef() oSection1 := oReport:Section(1) oSection1:Init() oSection1:SetHeaderSection() While QRY->(!EOF()) _aProcesso := RcpItensNF(QRY->D1_CONHEC, QRY->D1_DOC, QRY->D1_SERIE) // última compra Alert("Vlr. Despesas3: " + cValToChar(_aProcesso)) If oReport:Cancel() Exit EndIf oReport:IncMeter() oSection1:Cell("W6_TPOPER"):SetValue(QRY->W6_TPOPER) oSection1:Cell("W6_PTAX_DI"):SetValue(QRY->W6_PTAX_DI) oSection1:Cell("D1_FILIAL"):SetValue(QRY->D1_FILIAL) oSection1:Cell("D1_CONHEC"):SetValue(QRY->D1_CONHEC) oSection1:Cell("D1_DOC"):SetValue(QRY->D1_DOC) oSection1:Cell("D1_SERIE"):SetValue(QRY->D1_SERIE) oSection1:Cell("D1_EMISSAO"):SetValue(QRY->D1_EMISSAO) oSection1:Cell("D1_DTDIGIT"):SetValue(QRY->D1_DTDIGIT) oSection1:Cell("D1_DTDIGIT"):SetValue(QRY->D1_DTDIGIT) oSection1:Cell("D1_VALICM"):SetValue(QRY->D1_VALICM) oSection1:Cell("D1_II"):SetValue(QRY->D1_II) oSection1:Cell("D1_VALIPI"):SetValue(QRY->D1_VALIPI) oSection1:Cell("D1_VALIMP6"):SetValue(QRY->D1_VALIMP6) oSection1:Cell("D1_VALIMP5"):SetValue(QRY->D1_VALIMP5) oSection1:Cell("D1_DESPESA"):SetValue(QRY->D1_DESPESA) oSection1:Cell("D1_OBS"):SetValue(QRY->D1_OBS) oSection1:Cell("W8_INVOICE"):SetValue(QRY->W8_INVOICE) oSection1:Cell("W8_DT_EMIS"):SetValue(QRY->W8_DT_EMIS) oSection1:Cell("W8_COD_I"):SetValue(QRY->W8_COD_I) oSection1:Cell("B1_DESC"):SetValue(QRY->B1_DESC) oSection1:Cell("W8_LOTEORI"):SetValue(QRY->W8_LOTEORI) oSection1:Cell("W8_QTDE"):SetValue(QRY->W8_QTDE) oSection1:Cell("W8_PRECO_R"):SetValue(QRY->W8_PRECO_R) oSection1:Cell("W8_PRECO_D"):SetValue(QRY->W8_PRECO_D) oSection1:Cell("W8_FRETEIN"):SetValue(QRY->W8_FRETEIN) oSection1:Cell("W8_FRETE_D"):SetValue(QRY->W8_FRETE_D) oSection1:Cell("W8_SEGURO"):SetValue(QRY->W8_SEGURO) oSection1:Cell("W2_INCOTER"):SetValue(QRY->W2_INCOTER) oSection1:Cell("YQ_DESCR"):SetValue(QRY->YQ_DESCR) oSection1:Cell("VL_DESPESA"):SetValue(_aProcesso) oSection1:PrintLine() QRY->(dbSkip()) End oSection1:Finish() Return Nil User Function VLDFT01() Local lRet := .t. Local cVar := ReadVar() Local xCont := &(cVar) If cVar == "MV_PAR01" If Empty(xCont) lRet:= .f. Alert("Preencha a Data de Inicio") ENDIF ElseIf cVar == "MV_PAR02" If Empty(xCont) lRet := .f. Alert("Preencha a Data Final") Elseif Substr(dToS(xCont),1,6) != SubStr(dToS(MV_PAR01),1,6) lRet := .f. Alert("Favor Utilizar Data Final no mesmo Mês e Ano da Data Inicial") Elseif xCont < MV_PAR01 lRet := .f. Alert("Data Final deve ser maior que Data Inicial") Endif EndIf Return(lret) |
Imprimir Página | Fechar Janela |