× Linguagem de Programação ADVPL

Perguntas depois de gerar o relatório gravar no formato PDF

Mais
11 anos 9 meses atrás #2702 por Edilaine
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

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 9 meses atrás #2703 por lalberto
edilaine boa noite baixe esta apostila e entendera o significado do % ok

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.

Mais
11 anos 9 meses atrás #2705 por alyson
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

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 9 meses atrás #3011 por Edilaine
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.

Mais
11 anos 9 meses atrás #3012 por alyson
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.

Mais
11 anos 9 meses atrás #3013 por Edilaine
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"

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.124 segundos
Joomla templates by a4joomla