0 votos
perguntado em Outros por (210 pontos)

Estou desenvolvendo o seguinte relatorio que esta retornando o seguinte erro:  argument #0 error, expected D->C,  function DTOS on PRINTREPORT

Alguem poderia me ajudar com esse probleminha.

segue abaixo o fonte. 

#include "TbiConn.ch"

#include "shell.ch"

#include "totvs.ch"

#INCLUDE "RPTDEF.CH"

#include "report.ch"

#include "TopConn.ch"

User Function NP5NP6 ()

Private cPerg       := 'XPERGNP'

Private oReport

Private oSecCabec

Private oSecDados

Pergunte(cPerg,.T.)

oReport := ReportDef()

oReport:PrintDialog()

Return

Static Function ReportDef()

oReport := TReport():New("NP5NP6","CRONOGRAMA REALIZADO",cPerg,{|oReport| PrintReport(oReport)},"CRONOGRAMA REALIZADO")

oReport:HideParamPage()

//cabecalho

oSecCabec := TRSection():New(oReport,"CABEC","NP5-NN3")

TRCell():New( oSecCabec ,"DATA" ,"" ,"Data" ,"@!"/*Picture*/ ,   /*nSize*/,/*lPixel*/,/*bBlock*/,"LEFT"/*cAlign*/,/*lLineBreak*/,"LEFT"/*cHeaderAlign*/,/*lCellBreak*/,/*nColSpace*/,.T./*lAutoSize*/,/*nClrBack*/,/*nClrFore*/,/*lBold*/)

TRCell():New( oSecCabec ,"SAFRA" ,"" ,"Safra" ,"@!"/*Picture*/ ,   /*nSize*/,/*lPixel*/,/*bBlock*/,"LEFT"/*cAlign*/,/*lLineBreak*/,"LEFT"/*cHeaderAlign*/,/*lCellBreak*/,/*nColSpace*/,.T./*lAutoSize*/,/*nClrBack*/,/*nClrFore*/,/*lBold*/)

TRCell():New( oSecCabec ,"FAZENDA" ,"" ,"Fazenda" ,"@!"/*Picture*/ ,   /*nSize*/,/*lPixel*/,/*bBlock*/,"LEFT"/*cAlign*/,/*lLineBreak*/,"LEFT"/*cHeaderAlign*/,/*lCellBreak*/,/*nColSpace*/,.T./*lAutoSize*/,/*nClrBack*/,/*nClrFore*/,/*lBold*/)

TRCell():New( oSecCabec ,"TALHAO" ,"" ,"Talhao" ,"@!"/*Picture*/ ,   /*nSize*/,/*lPixel*/,/*bBlock*/,"LEFT"/*cAlign*/,/*lLineBreak*/,"LEFT"/*cHeaderAlign*/,/*lCellBreak*/,/*nColSpace*/,.T./*lAutoSize*/,/*nClrBack*/,/*nClrFore*/,/*lBold*/)

TRCell():New( oSecCabec ,"DESC_SERV" ,"" ,"Descrição do Serviço" ,"@!"/*Picture*/ ,   /*nSize*/,/*lPixel*/,/*bBlock*/,"LEFT"/*cAlign*/,/*lLineBreak*/,"LEFT"/*cHeaderAlign*/,/*lCellBreak*/,/*nColSpace*/,.T./*lAutoSize*/,/*nClrBack*/,/*nClrFore*/,/*lBold*/)

TRCell():New( oSecCabec ,"TOTAL_HECT" ,"" ,"Area Total" ,"@!"/*Picture*/ ,   /*nSize*/,/*lPixel*/,/*bBlock*/,"LEFT"/*cAlign*/,/*lLineBreak*/,"LEFT"/*cHeaderAlign*/,/*lCellBreak*/,/*nColSpace*/,.T./*lAutoSize*/,/*nClrBack*/,/*nClrFore*/,/*lBold*/)

//itens

oSecDados := TRSection():New(oReport,"ITENS","NP6-NP2")

TRCell():New(oSecDados ,"TIPO" ,"" ,"Tipo" ,"@!"/*Picture*/ ,   /*nSize*/,/*lPixel*/,/*bBlock*/,"LEFT"/*cAlign*/,/*lLineBreak*/,"LEFT"/*cHeaderAlign*/,/*lCellBreak*/,/*nColSpace*/,.T./*lAutoSize*/,/*nClrBack*/,/*nClrFore*/,/*lBold*/)

TRCell():New(oSecDados ,"PRODUTO" ,"" ,"Produto" ,"@!"/*Picture*/ ,   /*nSize*/,/*lPixel*/,/*bBlock*/,"LEFT"/*cAlign*/,/*lLineBreak*/,"LEFT"/*cHeaderAlign*/,/*lCellBreak*/,/*nColSpace*/,.T./*lAutoSize*/,/*nClrBack*/,/*nClrFore*/,/*lBold*/)

TRCell():New(oSecDados ,"UN" ,"" ,"Un" ,"@!" ,   /*nSize*/,/*lPixel*/,/*bBlock*/,"LEFT"/*cAlign*/,/*lLineBreak*/,"LEFT"/*cHeaderAlign*/,/*lCellBreak*/,/*nColSpace*/,.T./*lAutoSize*/,/*nClrBack*/,/*nClrFore*/,/*lBold*/)

TRCell():New(oSecDados ,"QTDHAS_NP2" ,"" ,"NP2_Qtdhas" ,"@E 999,999,999.99" ,   /*nSize*/,/*lPixel*/,/*bBlock*/,"LEFT"/*cAlign*/,/*lLineBreak*/,"LEFT"/*cHeaderAlign*/,/*lCellBreak*/,/*nColSpace*/,.T./*lAutoSize*/,/*nClrBack*/,/*nClrFore*/,/*lBold*/)

TRCell():New(oSecDados ,"QTDUNI_NP2" ,"" ,"NP2_Qtduni" ,"@E 999,999,999.99" ,   /*nSize*/,/*lPixel*/,/*bBlock*/,"LEFT"/*cAlign*/,/*lLineBreak*/,"LEFT"/*cHeaderAlign*/,/*lCellBreak*/,/*nColSpace*/,.T./*lAutoSize*/,/*nClrBack*/,/*nClrFore*/,/*lBold*/)

TRCell():New(oSecDados ,"QTDTOT_NP2" ,"" ,"NP2_Qtdtot" ,"@E 999,999,999.99" ,   /*nSize*/,/*lPixel*/,/*bBlock*/,"LEFT"/*cAlign*/,/*lLineBreak*/,"LEFT"/*cHeaderAlign*/,/*lCellBreak*/,/*nColSpace*/,.T./*lAutoSize*/,/*nClrBack*/,/*nClrFore*/,/*lBold*/)

TRCell():New(oSecDados ,"QTDHAS_NP6" ,"" ,"NP6_Qtdhas" ,"@E 999,999,999.99" ,   /*nSize*/,/*lPixel*/,/*bBlock*/,"LEFT"/*cAlign*/,/*lLineBreak*/,"LEFT"/*cHeaderAlign*/,/*lCellBreak*/,/*nColSpace*/,.T./*lAutoSize*/,/*nClrBack*/,/*nClrFore*/,/*lBold*/)

TRCell():New(oSecDados ,"QTDUNI_NP6" ,"" ,"NP6_Qtduni" ,"@E 999,999,999.99" ,   /*nSize*/,/*lPixel*/,/*bBlock*/,"LEFT"/*cAlign*/,/*lLineBreak*/,"LEFT"/*cHeaderAlign*/,/*lCellBreak*/,/*nColSpace*/,.T./*lAutoSize*/,/*nClrBack*/,/*nClrFore*/,/*lBold*/)

TRCell():New(oSecDados ,"QTDTOT_NP6" ,"" ,"NP6_Qtdtot" ,"@E 999,999,999.99" ,   /*nSize*/,/*lPixel*/,/*bBlock*/,"LEFT"/*cAlign*/,/*lLineBreak*/,"LEFT"/*cHeaderAlign*/,/*lCellBreak*/,/*nColSpace*/,.T./*lAutoSize*/,/*nClrBack*/,/*nClrFore*/,/*lBold*/)

oSecCabec:SetLinesBefore(3)

Return(oReport)

Static Function PrintReport(oReport)

Local cFiltro := "%"

Local lPrime :=.T.

Local cNum

cFiltro += "AND AND NP5.NP5_FAZ >= '"+dTos(MV_PAR01)+"' AND NP5.NP5_FAZ <= '"+dTos(MV_PAR02)+"' "

cFiltro += "AND NP5.NP5_DATA >= '"+dTos(MV_PAR03)+"' AND NP5.NP5_DATA <= '"+dTos(MV_PAR04)+"' "

cFiltro += "%"

BEGIN REPORT QUERY oSecCabec

BeginSql alias "RET"

SELECT    

NP5.NP5_DATA, 

NN3.NN3_HECTAR,

NP6.NP6_FILIAL, 

NP5.NP5_SAFRA,

NP5.NP5_SAFDES, 

NP5.NP5_FAZ, 

NP5.NP5_FAZNOM, 

NP5.NP5_TALHAO, 

NP5.NP5_CODSRV, 

NP5.NP5_DESSRV, 

NP6.NP6_PDCOD, 

NP6.NP6_PDNOM, 

NP6.NP6_UM,

NP6.NP6_TIPO, 

NP6.NP6_VAZAO, 

NP6.NP6_QTDHAS, 

NP6.NP6_QTDUNI, 

NP6.NP6_QTDTOT, 

NP2.NP2_QTDHAS, 

NP2.NP2_QTDUNI, 

NP2.NP2_QTDTOT, 

NP6.NP6_CUSTO, 

NP5.NP5_OBS, 

NP5.NP5_CODPRE, 

NP5.NP5_CODIGO 

FROM 

NP5010 NP5, 

    NP6010 NP6, 

  NP1010 NP1, 

  NP2010 NP2, 

  NN3010 NN3

WHERE 

NP6.D_E_L_E_T_ = ''

  AND NP5.D_E_L_E_T_ = ''

  AND NP1.D_E_L_E_T_ = ''

  AND NP2.D_E_L_E_T_ = ''

  %exp:cFiltro%

  AND NP6.NP6_TIPO = 'PD'

  AND NP5.NP5_CODIGO = NP6.NP6_CODIGO

  AND NP5.NP5_CODPRE = NP1.NP1_CODIGO

  AND NP1.NP1_CODIGO = NP2.NP2_CODIGO

  AND NP5.NP5_FILIAL = NP1.NP1_FILIAL

  AND NP2.NP2_PDCOD = NP6_PDCOD

  AND NP5.NP5_SAFRA+NP5.NP5_FAZ+NP5.NP5_TALHAO = NN3.NN3_SAFRA+NN3.NN3_FAZ+NN3.NN3_TALHAO

EndSql

END REPORT QUERY oSecCabec

RET->(dbGoTop())

cNum:=RET->NP5_CODIGO

While !RET->(Eof())

If oReport:Cancel()

Exit

EndIf

IF lPrime .OR. cNum <> RET->NP5_CODIGO

oSecCabec:Init()

oSecCabec:Cell("DATA"):SetValue(RET->NP5_DATA)

oSecCabec:Cell("SAFRA"):SetValue(RET->NP5_SAFRA +"-"+ NP5_SAFDES)

oSecCabec:Cell("FAZENDA"):SetValue(RET->NP5_FAZ +"-"+ NP5_FAZNOM)

oSecCabec:Cell("TALHAO"):SetValue(RET->NP5_TALHAO)

oSecCabec:Cell("DESC_SERV"):SetValue(RET->NP5_CODSRV +"-"+ NP5_DESSRV)

oSecCabec:Cell("TOTAL_HECT"):SetValue(RET->NN3_HECTAR)

oSecCabec:PrintLine()

oSecCabec:Finish()

lPrime:=.F.

oSecDados:Init()

EndIF

oSecDados:Cell("TIPO"):SetValue(RET->NP6_TIPO)

oSecDados:Cell("PRODUTO"):SetValue(RET->NP6_PDCOD + NP6_PDNOM)

oSecDados:Cell("UN"):SetValue(RET->NP6_UM)

oSecDados:Cell("QTDHAS_NP2"):SetValue(RET->NP2_QTDHAS)

oSecDados:Cell("QTDUNI_NP2"):SetValue(RET->NP2_QTDUNI)

oSecDados:Cell("QTDTOT_NP2"):SetValue(RET->NP2_QTDTOT)

oSecDados:Cell("QTDHAS_NP6"):SetValue(RET->NP6_QTDHAS)

oSecDados:Cell("QTDUNI_NP6"):SetValue(RET->NP6_QTDUNI)

oSecDados:Cell("QTDTOT_NP6"):SetValue(RET->NP6_QTDTOT)

oSecDados:PrintLine()

cNum:=RET->NP5_CODIGO

RET->(dbSkip())

IF cNum <> RET->NP5_CODIGO

oSecDados:Finish()

EndIF

EndDo

dbCloseArea("RET")

Return

2 Respostas

0 votos
respondida por (800 pontos)

Olá Lucas

O campo NP5_FAZ  é um tipo data mesmo? Teria como você mostrar o tipo do MV_PAR01 e 02?

0 votos
respondida por (220 pontos)

cFiltro += "AND AND NP5.NP5_FAZ >= '"+dTos(MV_PAR01)+"' AND NP5.NP5_FAZ <= '"+dTos(MV_PAR02)+"' "

Está repetindo AND AND NP5.NP5_FAZ, outra coisa... verifique se o NP5.NP5_FAZ é tipo Data ?

34 perguntas

28 respostas

22 comentários

77 usuários

Seja bem vindo a dbSeek, seu StackOverflow de Protheus, onde você pode fazer perguntas e receber respostas de outros membros da comunidade, alcançando sempre o melhor resultado.
...