- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- depois de gerar o relatório gravar no formato PDF
×
Linguagem de Programação ADVPL
Perguntas depois de gerar o relatório gravar no formato PDF
- Edilaine
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 147
- Obrigados Recebidos: 0
12 anos 4 meses atrás #2702
por Edilaine
Respondido por Edilaine no tópico Re: depois de gerar o relatório gravar no formato PDF
Alyson , vc teria um modelo desse usando duas tabelas na query ( sc5 com sc6 ) por exemplo..
e o que significa os sinais de '%' na query.. ??
Grata
e o que significa os sinais de '%' na query.. ??
Grata
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
12 anos 4 meses atrás #2703
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 Re: depois de gerar o relatório gravar no formato PDF
edilaine boa noite baixe esta apostila e entendera o significado do % ok
masteradvpl.com.br/index.php/downloads/v...itaeleituradequeries
masteradvpl.com.br/index.php/downloads/v...itaeleituradequeries
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.
- alyson
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 118
- Obrigados Recebidos: 1
12 anos 4 meses atrás #2705
por alyson
Respondido por alyson no tópico Re: depois de gerar o relatório gravar no formato PDF
Tenho sim segue esse tem mais tabelas envolvidas tem que adaptar a sua necessidade, o que está dentro do '%variavel%' é uma variavel o que tiver, o que tiver %Exp:variavel% q vc faz comparação dentro do sql...
user function ExTRep
local oReport
local cPerg := 'EXTREP'
local cAlias := getNextAlias()
criaSx1(cPerg)
Pergunte(cPerg, .F.)
oReport := reportDef(cAlias, cPerg)
oReport:printDialog()
return
//+
+
//! Função para criação da estrutura do relatório. !
//+
+
Static Function ReportDef(cAlias,cPerg)
local cTitle := "Relatório de Pedidos de Venda"
local cHelp := "Permite gerar relatório de pedidos de venda por cliente."
Local aOrdem := {"Código do Cliente", "Nome do Cliente"}
local oReport
local oSection1
local oSection2
local oBreak1
oReport := TReport():New('EXTREP',cTitle,cPerg,{|oReport|ReportPrint(oReport,cAlias)},cHelp)
oReport:SetPortrait()
//Primeira seção
oSection1 := TRSection():New(oReport,"Clientes",{"SA1"},aOrdem)
TRCell():New(oSection1,"A1_COD", "SA1", "Codigo")
TRCell():New(oSection1,"A1_NOME", "SA1", "Nome")
TRCell():New(oSection1,"A1_MUN", "SA1", "Cidade")
TRCell():New(oSection1,"A1_EST", "SA1", "Estado")
//Segunda seção
oSection2:= TRSection():New(oSection1,"Pedidos",{"SC5","SC6","SB1"})
oSection2:SetLeftMargin(2)
TRCell():New(oSection2,"C5_FILIAL", "SC5", "Filial")
TRCell():New(oSection2,"C5_NUM", "SC5", "Pedido")
TRCell():New(oSection2,"C5_EMISSAO", "SC5", "Emissão")
TRCell():New(oSection2,"C6_PRODUTO", "SC6", "Produto")
TRCell():New(oSection2,"B1_DESC", "SB1", "Descrição")
TRCell():New(oSection2,"C6_UM", "SC6", "Un. Medida")
TRCell():New(oSection2,"C6_QTDVEN", "SC6", "Quantidade")
TRCell():New(oSection2,"C6_PRCVEN", "SC6", "Preço")
TRCell():New(oSection2,"C6_VALOR", "SC6", "Total")
//Totalizador por cliente
oBreak1 := TRBreak():New(oSection2,{|| (cAlias)->(A1_COD) },"Total:",.F.)
TRFunction():New(oSection2:Cell("C6_QTDVEN" ), "TOT1", "SUM", oBreak1,,,, .F., .F.)
TRFunction():New(oSection2:Cell("C6_VALOR" ), "TOT2", "SUM", oBreak1,,,, .F., .F.)
Return(oReport)
//+
+
//! Rotina para montagem dos dados do relatório. !
//+
+
Static Function ReportPrint(oReport,cAlias)
local oSection1b := oReport:Section(1)
local oSection2b := oReport:Section(1):Section(1)
local cOrdem
if oReport:Section(1):GetOrder() == 1
cOrdem := "A1_COD"
else
cOrdem := "A1_NOME"
endif
oSection1b:BeginQuery()
BeginSQL Alias cAlias
Column C5_EMISSAO as Date
SELECT A1_COD, A1_NOME, C5_FILIAL, C5_NUM, C5_EMISSAO,
C6_PRODUTO, B1_DESC, C6_QTDVEN, C6_PRCVEN, C6_VALOR, C6_UM,
A1_MUN, A1_EST
FROM %Table:SC5% SC5
INNER JOIN %Table:SC6% SC6
ON C6_FILIAL = C5_FILIAL
AND C6_NUM = C5_NUM
AND SC6.%NotDel%
INNER JOIN %Table:SB1% SB1
ON B1_FILIAL = %xFilial:SB1%
AND B1_COD = C6_PRODUTO
AND SB1.%NotDel%
INNER JOIN %Table:SA1% SA1
ON A1_FILIAL = %xFilial:SA1%
AND A1_COD = C5_CLIENTE
AND A1_LOJA = C5_LOJACLI
AND SA1.%NotDel%
WHERE C5_FILIAL BETWEEN %Exp:MV_PAR01% AND %Exp:MV_PAR02%
AND C5_EMISSAO BETWEEN %Exp:MV_PAR05% AND %Exp:MV_PAR06%
AND C6_PRODUTO BETWEEN %Exp:MV_PAR03% AND %Exp:MV_PAR04%
ORDER BY %Exp:cOrdem%
EndSQL
oSection1b:EndQuery()
oSection2b:SetParentQuery()
oReport:SetMeter((cAlias)->(RecCount()))
oSection2b:SetParentFilter({|cParam| (cAlias)->A1_COD == cParam}, {|| (cAlias)->A1_COD})
oSection1b:Print()
return
//+
+
//! Função para criação das perguntas (se não existirem) !
//+
+
static function criaSX1(cPerg)
putSx1(cPerg, '01', 'Filial de?' , '', '', 'mv_ch1', 'C', TAMSX3("C5_FILIAL")[1], 0, 0, 'G', '', 'XM0', '', '', 'mv_par01')
putSx1(cPerg, '02', 'Filial até?' , '', '', 'mv_ch2', 'C', TAMSX3("C5_FILIAL")[1], 0, 0, 'G', '', 'XM0', '', '', 'mv_par02')
putSx1(cPerg, '03', 'Produto de?' , '', '', 'mv_ch3', 'C', TAMSX3("B1_COD")[1] , 0, 0, 'G', '', 'SB1', '', '', 'mv_par03')
putSx1(cPerg, '04', 'Produto até?' , '', '', 'mv_ch4', 'C', TAMSX3("B1_COD")[1] , 0, 0, 'G', '', 'SB1', '', '', 'mv_par04')
putSx1(cPerg, '05', 'Data de?' , '', '', 'mv_ch5', 'D', 8 , 0, 0, 'G', '', '' , '', '', 'mv_par05')
putSx1(cPerg, '06', 'Data até?' , '', '', 'mv_ch6', 'D', 8 , 0, 0, 'G', '', '' , '', '', 'mv_par06')
return
user function ExTRep
local oReport
local cPerg := 'EXTREP'
local cAlias := getNextAlias()
criaSx1(cPerg)
Pergunte(cPerg, .F.)
oReport := reportDef(cAlias, cPerg)
oReport:printDialog()
return
//+
+
//! Função para criação da estrutura do relatório. !
//+
+
Static Function ReportDef(cAlias,cPerg)
local cTitle := "Relatório de Pedidos de Venda"
local cHelp := "Permite gerar relatório de pedidos de venda por cliente."
Local aOrdem := {"Código do Cliente", "Nome do Cliente"}
local oReport
local oSection1
local oSection2
local oBreak1
oReport := TReport():New('EXTREP',cTitle,cPerg,{|oReport|ReportPrint(oReport,cAlias)},cHelp)
oReport:SetPortrait()
//Primeira seção
oSection1 := TRSection():New(oReport,"Clientes",{"SA1"},aOrdem)
TRCell():New(oSection1,"A1_COD", "SA1", "Codigo")
TRCell():New(oSection1,"A1_NOME", "SA1", "Nome")
TRCell():New(oSection1,"A1_MUN", "SA1", "Cidade")
TRCell():New(oSection1,"A1_EST", "SA1", "Estado")
//Segunda seção
oSection2:= TRSection():New(oSection1,"Pedidos",{"SC5","SC6","SB1"})
oSection2:SetLeftMargin(2)
TRCell():New(oSection2,"C5_FILIAL", "SC5", "Filial")
TRCell():New(oSection2,"C5_NUM", "SC5", "Pedido")
TRCell():New(oSection2,"C5_EMISSAO", "SC5", "Emissão")
TRCell():New(oSection2,"C6_PRODUTO", "SC6", "Produto")
TRCell():New(oSection2,"B1_DESC", "SB1", "Descrição")
TRCell():New(oSection2,"C6_UM", "SC6", "Un. Medida")
TRCell():New(oSection2,"C6_QTDVEN", "SC6", "Quantidade")
TRCell():New(oSection2,"C6_PRCVEN", "SC6", "Preço")
TRCell():New(oSection2,"C6_VALOR", "SC6", "Total")
//Totalizador por cliente
oBreak1 := TRBreak():New(oSection2,{|| (cAlias)->(A1_COD) },"Total:",.F.)
TRFunction():New(oSection2:Cell("C6_QTDVEN" ), "TOT1", "SUM", oBreak1,,,, .F., .F.)
TRFunction():New(oSection2:Cell("C6_VALOR" ), "TOT2", "SUM", oBreak1,,,, .F., .F.)
Return(oReport)
//+
+
//! Rotina para montagem dos dados do relatório. !
//+
+
Static Function ReportPrint(oReport,cAlias)
local oSection1b := oReport:Section(1)
local oSection2b := oReport:Section(1):Section(1)
local cOrdem
if oReport:Section(1):GetOrder() == 1
cOrdem := "A1_COD"
else
cOrdem := "A1_NOME"
endif
oSection1b:BeginQuery()
BeginSQL Alias cAlias
Column C5_EMISSAO as Date
SELECT A1_COD, A1_NOME, C5_FILIAL, C5_NUM, C5_EMISSAO,
C6_PRODUTO, B1_DESC, C6_QTDVEN, C6_PRCVEN, C6_VALOR, C6_UM,
A1_MUN, A1_EST
FROM %Table:SC5% SC5
INNER JOIN %Table:SC6% SC6
ON C6_FILIAL = C5_FILIAL
AND C6_NUM = C5_NUM
AND SC6.%NotDel%
INNER JOIN %Table:SB1% SB1
ON B1_FILIAL = %xFilial:SB1%
AND B1_COD = C6_PRODUTO
AND SB1.%NotDel%
INNER JOIN %Table:SA1% SA1
ON A1_FILIAL = %xFilial:SA1%
AND A1_COD = C5_CLIENTE
AND A1_LOJA = C5_LOJACLI
AND SA1.%NotDel%
WHERE C5_FILIAL BETWEEN %Exp:MV_PAR01% AND %Exp:MV_PAR02%
AND C5_EMISSAO BETWEEN %Exp:MV_PAR05% AND %Exp:MV_PAR06%
AND C6_PRODUTO BETWEEN %Exp:MV_PAR03% AND %Exp:MV_PAR04%
ORDER BY %Exp:cOrdem%
EndSQL
oSection1b:EndQuery()
oSection2b:SetParentQuery()
oReport:SetMeter((cAlias)->(RecCount()))
oSection2b:SetParentFilter({|cParam| (cAlias)->A1_COD == cParam}, {|| (cAlias)->A1_COD})
oSection1b:Print()
return
//+
+
//! Função para criação das perguntas (se não existirem) !
//+
+
static function criaSX1(cPerg)
putSx1(cPerg, '01', 'Filial de?' , '', '', 'mv_ch1', 'C', TAMSX3("C5_FILIAL")[1], 0, 0, 'G', '', 'XM0', '', '', 'mv_par01')
putSx1(cPerg, '02', 'Filial até?' , '', '', 'mv_ch2', 'C', TAMSX3("C5_FILIAL")[1], 0, 0, 'G', '', 'XM0', '', '', 'mv_par02')
putSx1(cPerg, '03', 'Produto de?' , '', '', 'mv_ch3', 'C', TAMSX3("B1_COD")[1] , 0, 0, 'G', '', 'SB1', '', '', 'mv_par03')
putSx1(cPerg, '04', 'Produto até?' , '', '', 'mv_ch4', 'C', TAMSX3("B1_COD")[1] , 0, 0, 'G', '', 'SB1', '', '', 'mv_par04')
putSx1(cPerg, '05', 'Data de?' , '', '', 'mv_ch5', 'D', 8 , 0, 0, 'G', '', '' , '', '', 'mv_par05')
putSx1(cPerg, '06', 'Data até?' , '', '', 'mv_ch6', 'D', 8 , 0, 0, 'G', '', '' , '', '', 'mv_par06')
return
Por favor Acessar ou Registrar para participar da conversa.
- Edilaine
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 147
- Obrigados Recebidos: 0
12 anos 4 meses atrás #3011
por Edilaine
Respondido por Edilaine no tópico Re: depois de gerar o relatório gravar no formato PDF
Muito obrigada, estou "brincando" com os 02 fontes.. agora tenho uma duvida.. nesse fonte que me passou é possivel aumentar e mudar o tipo de fonte?
Por favor Acessar ou Registrar para participar da conversa.
- alyson
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 118
- Obrigados Recebidos: 1
12 anos 4 meses atrás #3012
por alyson
Respondido por alyson no tópico Re: depois de gerar o relatório gravar no formato PDF
tem sim não to com a documentação aki mas é um paramentro que vc passa no cabeçalho ou na impressão amanha na empresa eu pego e ti mando blz...
Por favor Acessar ou Registrar para participar da conversa.
- Edilaine
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 147
- Obrigados Recebidos: 0
12 anos 4 meses atrás #3013
por Edilaine
Respondido por Edilaine no tópico Re: depois de gerar o relatório gravar no formato PDF
oK Alyson. obrigada.
descobri que no inicio do fonte vc pode definir tb.
mas ai as entre linhas fica uma em cima da outra
oReport := TReport():New('RTEL010',cTitle,cPerg,{|oReport|ReportPrint(oReport,cAlias)},cHelp)
oreport:nfontbody:=8
oreport:cfontbody:="Arial"
descobri que no inicio do fonte vc pode definir tb.
mas ai as entre linhas fica uma em cima da outra
oReport := TReport():New('RTEL010',cTitle,cPerg,{|oReport|ReportPrint(oReport,cAlias)},cHelp)
oreport:nfontbody:=8
oreport:cfontbody:="Arial"
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- depois de gerar o relatório gravar no formato PDF
Tempo para a criação da página:0.116 segundos