× Linguagem de Programação ADVPL

Perguntas Colocar traço abaixo de cada linha em um relatório

Mais
11 anos 2 meses atrás #16947 por thiagopr86
Boa Tarde meus amigos...
estou começando a aprender ADVPL e estou fazendo um relatório simples pelo TReport e gostaria de inserir um traço abaixo de cada linha do relatório, para melhor visualização.
Alguém poderia me dar uma ideia de como eu poderia criar esse traço?
Abaixo segue o código base que estou utilizando para criar meus relatórios.

user function EXPROD

local oReport
local cPerg := 'EXPRODUT'
local cAlias := getNextAlias()

criaSx1(cPerg)
Pergunte(cPerg, .F.)

oReport := reportDef(cAlias, cPerg)
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 B1_COD, B1_DESC, B1_PESO, B1_GRUPO, B2_QATU
FROM %Table:SB1% SB1

LEFT JOIN %Table:SB2% SB2
ON B2_COD = B1_COD

WHERE B1_COD BETWEEN %Exp:MV_PAR01% AND %Exp:MV_PAR02%


EndSQL
oSecao1:EndQuery()
oReport:SetMeter((cAlias)->(RecCount()))
oSecao1:Print()
return

//+
+
//! Função para criação da estrutura do relatório. !
//+
+
Static Function ReportDef(cAlias,cPerg)

local cTitle := "Relatório de Produtos"
local cHelp := "Permite gerar relatório de Produtos."
local oReport
local oSection1

oReport := TReport():New('EXPROD',cTitle,cPerg,{|oReport|ReportPrint(oReport,cAlias)},cHelp)

//Primeira seção
oSection1 := TRSection():New(oReport,"Produtos",{"SB1","SB2"})

TRCell():New(oSection1,"B1_COD", "SB1", "Codigo")
TRCell():New(oSection1,"B1_DESC", "SB1", "Descrição")
TRCell():New(oSection1,"B1_PESO", "SB1", "Peso")
TRCell():New(oSection1,"B1_GRUPO", "SB1", "Grupo")
TRCell():New(oSection1,"B2_QATU", "SB2", "Saldo")

Return(oReport)

//+
+
//! Função para criação das perguntas (se não existirem) !
//+
+
static function criaSX1(cPerg)

putSx1(cPerg, '01', 'Produto de?' , '', '', 'mv_ch1', 'C', 6, 0, 0, 'G', '', 'SB1', '', '', 'mv_par01')
putSx1(cPerg, '02', 'Produto até?' , '', '', 'mv_ch2', 'C', 6, 0, 0, 'G', '', 'SB1', '', '', 'mv_par02')

return

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 2 meses atrás #16961 por rodrigolparaujo
olá amigo,

experimente usar PrintLine() ( tdn.totvs.com/display/public/mp/ThinLine )

Exemplo:
oReport:Section(1):Init()
oReport:Section(1):Cell("Ao") :SetValue("Ao")
oReport:Section(1):Cell("Iap") :SetValue("Instituto Ambiental do Paraná - IAP")
oReport:Section(1):Cell("Ac") :SetValue("A/C.: Eng.ª XXXXXXX")
oReport:Section(1):Cell("Diretoria"):SetValue("Diretoria de Controle de Recursos Ambientais")
oReport:Section(1):Cell("Endereco") :SetValue("Rua Engenheiro Rebouças, 9999 - Rebouças")
oReport:Section(1):Cell("Cidade") :SetValue("Curitiba - PR")
oReport:Section(1):PrintLine()
oReport:Section(1):Finish()

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 2 meses atrás - 11 anos 2 meses atrás #16975 por thiagopr86
Não deu certo Rodrigo, mas como sei pouco advpl não sei se apliquei corretamente. Se puder me informar como eu poderia aplicar o ThinLine e PrintLine no código base que postei. Pois os testes que realizei nao surtiram efeito.
Ultima edição: 11 anos 2 meses atrás por thiagopr86.

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 2 meses atrás #16989 por RonaldoLopes
Tente Utilizar o FWMSPrinter, onde pode utilizar o objeto Line:
Documentação:
tdn.totvs.com/display/public/mp/FWMsPrinter

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 2 meses atrás #16993 por rodrigolparaujo
Olá amigo, segue um exemplo funcional, acabei esquecendo no exemplo anterior
Veja que utilizo o oReport:ThinLine()

veja imagem em anexo também, acabei de gerá-la.



#include "protheus.ch"
User function fZZReport() // u_fZZReport()
	Local aArea    := GetArea()
	Local oReport	
	oReport := ReportDef()
	oReport:PrintDialog()
	RestArea(aArea)	
Return
	
Static Function ReportDef()	
	Local oReport
	Local oSection
	Local oSection1
	Local oSection2
	
	oReport:= TReport():New("fZZReport","Log de divergencia Pedidos de Cliente",,{|oReport| PrintReport(oReport)},"Este relatorio ira imprimir a relacao de erros encontrados durante o processo de importação dos dados.")
	oReport:SetLandscape()    
	oReport:HideParamPage()	
	

	oSection:= TRSection():New(oReport,"Cliente",{},{})
	TRCell():New(oSection,"CNPJ" 	,,"CNPJ"	,"@!",30,/*lPixel*/,/*{|| code-block de impressao }*/)
	TRCell():New(oSection,"CODIGO" 	,,"Codigo"	,"@!",25,/*lPixel*/,/*{|| code-block de impressao }*/)
	TRCell():New(oSection,"LOJA" 	,,"Loja"	,"@!",15,/*lPixel*/,/*{|| code-block de impressao }*/)
	TRCell():New(oSection,"NOME" 	,,"Nome"	,"@!",50,/*lPixel*/,/*{|| code-block de impressao }*/)
	TRCell():New(oSection,"CIDADE" 	,,"Cidade"  ,"@!",50,/*lPixel*/,/*{|| code-block de impressao }*/)

	oSection:SetLineStyle()		
Return oReport
	
Static Function PrintReport(oReport)
	Local oSection := oReport:Section(1)
	Local aCliente := {}
	
	oSection:SetTotalInLine(.F.)
	
	aadd(aCliente,{"28154847000101","000001","01","NOME EMPRESA 1","SAO PAULO"})
	aadd(aCliente,{"28154847000102","000002","01","NOME EMPRESA 2","SAO PAULO"})
	aadd(aCliente,{"28154847000103","000003","01","NOME EMPRESA 3","SAO PAULO"})
	aadd(aCliente,{"28154847000104","000004","01","NOME EMPRESA 4","RIO DE JANEIRO"})
	
	oReport:SetMeter(Len(aCliente))
	
	oReport:IncMeter()		
	oSection:Init()
	For i:= 1 to len(aCliente)
		If oReport:Cancel()
			Exit
		EndIf
		
		oReport:IncMeter()		
		oSection:Cell("CNPJ"):SetValue(transform(aCliente[1,1], "@R 99.999.999/9999-99"))
		oSection:Cell("CODIGO"):SetValue(aCliente[1,2])
		oSection:Cell("LOJA"):SetValue(aCliente[1,3])
		oSection:Cell("NOME"):SetValue(aCliente[1,4])
		oSection:Cell("CIDADE"):SetValue(aCliente[1,5])
		oSection:PrintLine()		
		oReport:ThinLine()
	Next  
	oSection:Finish()

Return
Anexos:

Por favor Acessar ou Registrar para participar da conversa.

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