Galera, já dei manutenção de ponta a ponta nesse fonte e debuguei todo, ele está exportando para os tipos de arquivos, mas não está trazendo nenhum dado no relatório, alguém passou por isso ou tem alguma dica para ajudar?
#Include "Totvs.ch"
#Include "TopConn.ch"
#include "Report.ch"
/*{Protheus.doc} MTRFAT07
Pedido pendente de aprovação x aprovador
@author Tauani Vitória
@since 28/11/2023
@version 1.0
@type function
*/
User Function MTRFAT07()
Local oReport := NIL
Local aPergs := {}
Local aResps := {}
Local dDataDe := FirstDate(Date())
Local dDataAt := LastDate(Date())
//Adicionando os parametros No ParamBox
aAdd(aPergs, {1, "Data De", dDataDe, , , , , 80, .F.})
aAdd(aPergs, {1, "Data Até", dDataAt, , , , , 80, .T.})
//cria o parambox
If ParamBox(aPergs, 'Informe os parâmetros',@aResps, /*bOk*/, /*aButtons*/, /*lCentered*/, /*nPosx*/, /*nPosy*/, /*oDlgWizard*/, /*cLoad*/, .F., .F.)
oReport := ReportDef(aResps)
oReport:PrintDialog()
EndIf
Return
/*/{Protheus.doc} ReportDef
Definições da estrutura - ReportDef
@author Tauani Vitória
@since 28/11/2023
@version 1.0
@type function
/*/
Static Function ReportDef(aResps)
Local oSection := Nil
Local oReport := Nil
Local cAliasTop := ""
Local cNomeArq := "MTRFAT07"
Local cTitulo := "Pedidos Pendentes de Aprovacao"
//Criacao do componente de impressao
oReport := TReport():New(cNomeArq, cTitulo, "" ,{|oReport| PrintReport(oReport, @cAliasTop, aResps)})
//Orientacao do Relatorio - paisagem
oReport:SetLandscape()
//Criando a secao de dados
oSection := TRSection():New(oReport, cTitulo, {"SCR", "SC7", "SA2", "SF1"})
//Colunas do relatorio
//Clase de colunas, objetos da seção, nome do alias, tabela, nome da coluna, picture, tamanho do campo
//TRCell():New(objeto da seção, 'nome do alias' , 'tabela' , 'nome da coluna' ,'picture', TamSX3('tamanho do campo')[1])
TRCell():New(oSection, "DATADISPONIBILIZADA" , cAliasTop , "Data Disponibilizada" , , , , {||(cAliasTop)->DATADISPONIBILIZADA})
TRCell():New(oSection, "DATA_RECEBIMENTO" , cAliasTop , "DATA_RECEBIMENTO" , , , , {||(cAliasTop)->DATA_RECEBIMENTO})
TRCell():New(oSection, "COD_FORNECEDOR" , cAliasTop , "COD_FORNECEDOR" , , , , {||(cAliasTop)->COD_FORNECEDOR})
TRCell():New(oSection, "RAZAO_SOCIAL" , cAliasTop , "RAZAO_SOCIAL" , , , , {||(cAliasTop)->RAZAO_SOCIAL})
TRCell():New(oSection, "NOTA" , cAliasTop , "NOTA" , , , , {||(cAliasTop)->NOTA})
TRCell():New(oSection, "VALOR" , cAliasTop , "VALOR" , , , , {||(cAliasTop)->VALOR})
TRCell():New(oSection, "NUM_PEDIDO" , cAliasTop , "NUM_PEDIDO" , , , , {||(cAliasTop)->NUM_PEDIDO})
TRCell():New(oSection, "APROVADOR" , cAliasTop , "APROVADOR" , , , , {||(cAliasTop)->APROVADOR})
TRCell():New(oSection, "STATUS" , cAliasTop , "STATUS" , , , , {||(cAliasTop)->STATUS})
Return oReport
/*/{Protheus.doc} PrintReport
Impressao do relatorio MTRFAT07
@author Tauani Vitória
@since 28/11/2023
@version 1.0
@type function
/*/
Static Function PrintReport(oReport, cAliasTop, aResps)
Local oSection := oReport:Section(1)
Local cQryReport := ""
Local dDataDe := aResps[1]
Local dDataAt := aResps[2]
cQryReport := " SELECT " + CRLF
cQryReport += " SC7.C7_EMISSAO AS DATA_DISPONIBILIZADA, " + CRLF
cQryReport += " SCR.CR_DATALIB AS DATA_RECEBIMENTO, " + CRLF
cQryReport += " SA2.A2_NOME AS RAZAO_SOCIAL, " + CRLF
cQryReport += " SC7.C7_FORNECE AS COD_FORNECEDOR, " + CRLF
cQryReport += " SF1.F1_DOC AS NOTA, " + CRLF
cQryReport += " SCR.CR_TOTAL AS VALOR, " + CRLF
cQryReport += " SCR.CR_NUM AS NUM_PEDIDO, " + CRLF
cQryReport += " USR.USR_NOME AS APROVADOR, " + CRLF
cQryReport += " SCR.CR_STATUS STATUS_APROV, " + CRLF
cQryReport += " CASE " + CRLF
cQryReport += " WHEN SCR.CR_STATUS = 1 THEN 'Aguardando nível anterior' " + CRLF
cQryReport += " WHEN SCR.CR_STATUS = 2 THEN 'Pendente' " + CRLF
cQryReport += " WHEN SCR.CR_STATUS = 3 THEN 'Liberado' " + CRLF
cQryReport += " WHEN SCR.CR_STATUS = 4 THEN 'Bloqueado' " + CRLF
cQryReport += " WHEN SCR.CR_STATUS = 5 THEN 'Liberado por outro aprovador' " + CRLF
cQryReport += " WHEN SCR.CR_STATUS = 6 THEN 'Rejeitado' " + CRLF
cQryReport += " WHEN SCR.CR_STATUS = 7 THEN 'Rejeitado/Bloqueado por outro aprovador' " + CRLF
cQryReport += " ELSE 'SEM STATUS' " + CRLF
cQryReport += " END as STATUS " + CRLF
cQryReport += " FROM " + RetSqlName("SC7")+" SC7"+ CRLF
cQryReport += " INNER JOIN " + RetSqlName("SCR") + " SCR ON SC7.C7_NUM = SCR.CR_NUM AND SC7.D_E_L_E_T_ = '' AND SCR.D_E_L_E_T_ ='' " + CRLF
cQryReport += " INNER JOIN " + RetSqlName("SA2") +" SA2 ON A2_COD = SC7.C7_FORNECE AND SA2.D_E_L_E_T_ = '' " + CRLF
cQryReport += " INNER JOIN SYS_USR USR ON USR.USR_ID = SCR.CR_USER AND USR.D_E_L_E_T_ = '' " + CRLF
cQryReport += " INNER JOIN " + RetSqlName("SF1") +" SF1 ON SF1.F1_FORNECE = SC7.C7_FORNECE AND SF1.F1_LOJA = SC7.C7_LOJA AND SF1.D_E_L_E_T_ = '' " + CRLF
cQryReport += " WHERE SCR.CR_STATUS IN ('2', '3')" + CRLF
cQryReport += " AND SC7.C7_EMISSAO BETWEEN '" + DToS(dDataDe) + "' AND '"+ DToS(dDataAt) +"'" + CRLF
cAliasTop := MPSysOpenQuery(cQryReport)
oSection:Init()
While (cAliasTop)->(!EOF())
oSection:PrintLine()
(cAliasTop)->(DBSkip())
ENDDO
(cAliasTop)->(DBCloseArea())
oSection:Finish()
Return
Quando você roda esse script no SQL, ele retorna os dados?
— Lucas de Paulo Santos 12 de Dec de 2023retorna, mas acho que descobri o que estava ocorrendo...era um caso na minha base de homologação que não estava batendo com os parâmetros que coloquei na query.
— Tauani Vitória 15 de Dec de 2023