- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Colocar traço abaixo de cada linha em um relatório
×
Linguagem de Programação ADVPL
Perguntas Colocar traço abaixo de cada linha em um relatório
- thiagopr86
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 4
- Obrigados Recebidos: 0
11 anos 2 meses atrás #16947
por thiagopr86
Colocar traço abaixo de cada linha em um relatório foi criado 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
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.
- rodrigolparaujo
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 78
- Obrigados Recebidos: 0
11 anos 2 meses atrás #16961
por rodrigolparaujo
Respondido por rodrigolparaujo no tópico Colocar traço abaixo de cada linha em um relatório
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()
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.
- thiagopr86
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 4
- Obrigados Recebidos: 0
11 anos 2 meses atrás - 11 anos 2 meses atrás #16975
por thiagopr86
Respondido por thiagopr86 no tópico Colocar traço abaixo de cada linha em um relatório
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.
- RonaldoLopes
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 478
- Obrigados Recebidos: 2
11 anos 2 meses atrás #16989
por RonaldoLopes
Respondido por RonaldoLopes no tópico Colocar traço abaixo de cada linha em um relatório
Tente Utilizar o FWMSPrinter, onde pode utilizar o objeto Line:
Documentação:
tdn.totvs.com/display/public/mp/FWMsPrinter
Documentação:
tdn.totvs.com/display/public/mp/FWMsPrinter
Por favor Acessar ou Registrar para participar da conversa.
- rodrigolparaujo
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 78
- Obrigados Recebidos: 0
11 anos 2 meses atrás #16993
por rodrigolparaujo
Respondido por rodrigolparaujo no tópico Colocar traço abaixo de cada linha em um relatório
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.
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
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Colocar traço abaixo de cada linha em um relatório
Tempo para a criação da página:0.136 segundos