×
Linguagem de Programação ADVPL
Perguntas Treport com SX1
- clistenis
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 97
- Obrigados Recebidos: 0
11 anos 7 meses atrás #12278
por clistenis
Treport com SX1 foi criado por clistenis
Galera boa noite....
Estou desenvolvendo o meu primeiro relatório com TREPORT porém estou tendo algumas duvidas e gostaria da ajuda dos amigos do Forum para esclarece-la.
Tenho um relatório que usa algumas perguntas como parametros para desenvolver o relatorio porém não estou conseguindo pega rum parametro do SX1 que é do tipo data e coloca-lo na SQL e depois escrever,
É retornado o seguinte erro:
Existe um erro na formula digitada
argument #0 error, expect D->C, function dtos
segue fonte abaixo:
user function TST001
local oReport
local cPergClis := 'EXTREPCP' //Nome que será criado no sx1
local cAlias := getNextAlias()
criaSx1(cPergClis)
Pergunte(cPergClis, .F.)
oReport := reportDef(cAlias, cPergClis)
oReport:printDialog()
return
//++
//! Rotina para montagem dos dados do relatório. !
//++
Static Function ReportPrint(oReport,cAlias)
local oSecao1 := oReport:Section(1)
oSecao1:BeginQuery()
BeginSQL Alias cAlias
SELECT E1_NUM,E1_PARCELA,E1_TIPO,E1_CLIENTE,E1_NOMCLI,E1_EMISSAO,E1_VENCTO,E1_VALOR,E1_BAIXA
FROM %Table:SE1% SE1
WHERE E1_FILIAL = '0101'
If !Empty(MV_PAR01)
AND E1_CLIENTE = %Exp:MV_PAR01%
endIf
AND SE1.E1_VENCTO BETWEEN %Exp:dTOs(MV_PAR02)% AND %Exp:dTOs(MV_PAR03)%
AND SE1.D_E_L_E_T_ != '*'
AND SE1.E1_BAIXA = ' '
AND SE1.E1_TIPO = 'NF'
ORDER BY E1_NOMCLI,E1_NUM,E1_PARCELA
EndSQL
oSecao1:EndQuery()
oReport:SetMeter((cAlias)->(RecCount()))
oSecao1:Print()
return
//++
//! Função para criação da estrutura do relatório. !
//++
Static Function ReportDef(cAlias,cPergClis)
local cTitle := "Relatório de Contas a Receber por Período"
local cHelp := "Permite gerar relatório de Contas a Pagar por periodo."
local oReport
local oSection1
oReport := TReport():New('CRP',cTitle,cPergClis,{|oReport|ReportPrint(oReport,cAlias)},cHelp)
//Primeira seção
oSection1 := TRSection():New(oReport,"Contas a Pagar",{"SE1"})
TRCell():New(oSection1,"E1_NUM", "SE1", "Numero")
TRCell():New(oSection1,"E1_PARCELA", "SE1", "Parcela")
TRCell():New(oSection1,"E1_TIPO", "SE1", "Tipo")
TRCell():New(oSection1,"E1_CLIENTE", "SE1", "Cod. Cli")
TRCell():New(oSection1,"E1_NOMCLI", "SE1", "Nome Cli")
TRCell():New(oSection1,"E1_EMISSAO", "", "Emissao","@!")
TRCell():New(oSection1,"E1_VENCTO", "", "Vencto","@!")
TRCell():New(oSection1,"E1_VALOR", "SE1", "Valor","@E 999,999,999.999")
TRCell():New(oSection1,"E1_BAIXA", "", "Dt. Baixa","@!")
Return(oReport)
//++
//! Função para criação das perguntas (se não existirem) !
//++
static function criaSX1(cPergClis)
PutSX1(cPergClis, "01","Cliente :", "","","mv_ch01","C",06,0,0,"G","","","","","MV_PAR01","","","","","","","","","","","")
PutSX1(cPergClis, "09","Data De", "","","mv_ch02","D",08,0,0,"G","","","","","MV_PAR02","","","","","","","","","","","")
PutSX1(cPergClis, "10","Data Ate ", "","","mv_ch03","D",08,0,0,"G","","","","","MV_PAR03","","","","","","","","","","","")
return
Estou desenvolvendo o meu primeiro relatório com TREPORT porém estou tendo algumas duvidas e gostaria da ajuda dos amigos do Forum para esclarece-la.
Tenho um relatório que usa algumas perguntas como parametros para desenvolver o relatorio porém não estou conseguindo pega rum parametro do SX1 que é do tipo data e coloca-lo na SQL e depois escrever,
É retornado o seguinte erro:
Existe um erro na formula digitada
argument #0 error, expect D->C, function dtos
segue fonte abaixo:
user function TST001
local oReport
local cPergClis := 'EXTREPCP' //Nome que será criado no sx1
local cAlias := getNextAlias()
criaSx1(cPergClis)
Pergunte(cPergClis, .F.)
oReport := reportDef(cAlias, cPergClis)
oReport:printDialog()
return
//++
//! Rotina para montagem dos dados do relatório. !
//++
Static Function ReportPrint(oReport,cAlias)
local oSecao1 := oReport:Section(1)
oSecao1:BeginQuery()
BeginSQL Alias cAlias
SELECT E1_NUM,E1_PARCELA,E1_TIPO,E1_CLIENTE,E1_NOMCLI,E1_EMISSAO,E1_VENCTO,E1_VALOR,E1_BAIXA
FROM %Table:SE1% SE1
WHERE E1_FILIAL = '0101'
If !Empty(MV_PAR01)
AND E1_CLIENTE = %Exp:MV_PAR01%
endIf
AND SE1.E1_VENCTO BETWEEN %Exp:dTOs(MV_PAR02)% AND %Exp:dTOs(MV_PAR03)%
AND SE1.D_E_L_E_T_ != '*'
AND SE1.E1_BAIXA = ' '
AND SE1.E1_TIPO = 'NF'
ORDER BY E1_NOMCLI,E1_NUM,E1_PARCELA
EndSQL
oSecao1:EndQuery()
oReport:SetMeter((cAlias)->(RecCount()))
oSecao1:Print()
return
//++
//! Função para criação da estrutura do relatório. !
//++
Static Function ReportDef(cAlias,cPergClis)
local cTitle := "Relatório de Contas a Receber por Período"
local cHelp := "Permite gerar relatório de Contas a Pagar por periodo."
local oReport
local oSection1
oReport := TReport():New('CRP',cTitle,cPergClis,{|oReport|ReportPrint(oReport,cAlias)},cHelp)
//Primeira seção
oSection1 := TRSection():New(oReport,"Contas a Pagar",{"SE1"})
TRCell():New(oSection1,"E1_NUM", "SE1", "Numero")
TRCell():New(oSection1,"E1_PARCELA", "SE1", "Parcela")
TRCell():New(oSection1,"E1_TIPO", "SE1", "Tipo")
TRCell():New(oSection1,"E1_CLIENTE", "SE1", "Cod. Cli")
TRCell():New(oSection1,"E1_NOMCLI", "SE1", "Nome Cli")
TRCell():New(oSection1,"E1_EMISSAO", "", "Emissao","@!")
TRCell():New(oSection1,"E1_VENCTO", "", "Vencto","@!")
TRCell():New(oSection1,"E1_VALOR", "SE1", "Valor","@E 999,999,999.999")
TRCell():New(oSection1,"E1_BAIXA", "", "Dt. Baixa","@!")
Return(oReport)
//++
//! Função para criação das perguntas (se não existirem) !
//++
static function criaSX1(cPergClis)
PutSX1(cPergClis, "01","Cliente :", "","","mv_ch01","C",06,0,0,"G","","","","","MV_PAR01","","","","","","","","","","","")
PutSX1(cPergClis, "09","Data De", "","","mv_ch02","D",08,0,0,"G","","","","","MV_PAR02","","","","","","","","","","","")
PutSX1(cPergClis, "10","Data Ate ", "","","mv_ch03","D",08,0,0,"G","","","","","MV_PAR03","","","","","","","","","","","")
return
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
11 anos 7 meses atrás #12279
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Respondido por lalberto no tópico Treport com SX1
cData1 := DtoS(MV_PAR02)
cData2 := DtoS(MV_PAR03)
BETWEEN %Exp:cData1% AND %Exp:cData2%
cData2 := DtoS(MV_PAR03)
BETWEEN %Exp:cData1% AND %Exp:cData2%
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Por favor Acessar ou Registrar para participar da conversa.
Tempo para a criação da página:0.094 segundos