Gerador de Relatórios para Protheus
O nosso programa foi vendido para uma empresa e por isso não podemos mais disponibilizar ou comercializar. Agradecemos a todos que o instalaram e gostaram de usá-lo.
O nosso programa foi vendido para uma empresa e por isso não podemos mais disponibilizar ou comercializar. Agradecemos a todos que o instalaram e gostaram de usá-lo.
A utilização da função tReport para o desenvolvimento de relatórios é um dos mais completos componentes para tal finalidade.
Muitos amigos que estão começando a desenvolver em ADVPL sempre me perguntam como fazer um relatório simples, porém muito eficiente. Hoje irei publicar um exemplo de relatório enviado pelo amigo Robson Gonçalves.
O exemplo abaixo, demonstro a criação de um relatório em tReport utilizando 2 seções. Tentei deixar o mais comentado possível, mas qualquer dúvida, comente!!!!
Para mim o tReport é um dos componentes mais completos para impressão, já que ele permite imprimir em diversos formatos tais como, PDF, Planilha, Open Office, HTML e ainda permite enviar a impressão para disco, impressora e e-mail.
Outro dia me perguntaram se era possível gerar um arquivo PDF no Protheus, mas sem que abri-se uma tela, procura daqui, procura dali, encontrei a função FWMSPrinter, é o mesmo componente utilizado na geração da Danfe. Para mais detalhes consulte http://tdn.totvs.com/display/public/mp/FWMsPrinter Abaixo tem um bom exemplo funcional para mostrar o seu funcionamento
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#INCLUDE "RPTDEF.CH" #INCLUDE "FWPrintSetup.ch" #INCLUDE "protheus.ch" User Function fPrintPDF() Local lAdjustToLegacy := .F. Local lDisableSetup := .T. Local oPrinter Local cLocal := "c:\siga\" Local cCodINt25 := "34190184239878442204400130920002152710000053475" Local cCodEAN := "123456789012" Local cFilePrint := "" oPrinter := FWMSPrinter():New('orcamento_000000.PD_', IMP_PDF, lAdjustToLegacy,cLocal, lDisableSetup, , , , , , .F., ) oPrinter:FWMSBAR("INT25" /*cTypeBar*/,1/*nRow*/ ,1/*nCol*/, cCodINt25/*cCode*/,oPrinter/*oPrint*/,.T./*lCheck*/,/*Color*/,.T./*lHorz*/,0.02/*nWidth*/,0.8/*nHeigth*/,.T./*lBanner*/,"Arial"/*cFont*/,NIL/*cMode*/,.F./*lPrint*/,2/*nPFWidth*/,2/*nPFHeigth*/,.F./*lCmtr2Pix*/) oPrinter:FWMSBAR("EAN13" /*cTypeBar*/,5/*nRow*/ ,1/*nCol*/ ,cCodEAN /*cCode*/,oPrinter/*oPrint*/,/*lCheck*/,/*Color*/,/*lHorz*/, /*nWidth*/,/*nHeigth*/,/*lBanner*/,/*cFont*/,/*cMode*/,.F./*lPrint*/,/*nPFWidth*/,/*nPFHeigth*/,/*lCmtr2Pix*/) oPrinter:Box( 130, 10, 500, 700, "-4") oPrinter:Say(210,10,"Teste para Code128C") cFilePrint := cLocal+"orcamento_000000.PD_" File2Printer( cFilePrint, "PDF" ) oPrinter:cPathPDF:= cLocal oPrinter:Preview() Return |
A função MSCBPrinter, permite realizar as configurações da impressora, que darão ao programador a habilidade de determinar as características de impressão, definidas pelos parâmetros abaixo: Sintaxe: MSCBPrinter Configura Impressora ( [ cModelPrt ] [ cPorta ] [ nDensidade ] [ nTamanho ] [ lSrv ] [ nPorta ] [ cServer ] [ cEnv ]…
Leia mais
No exemplo abaixo, um simples exemplo que como gerar etiquetas, neste exemplo uso o componente TmsPrinter().
A propriedade para criar uma linha abaixo de cada registro é ThinLine() Use oReport:ThinLine()