{"id":348,"date":"2022-01-07T18:27:27","date_gmt":"2022-01-07T21:27:27","guid":{"rendered":"https:\/\/gladiston.net.br\/?page_id=348"},"modified":"2023-06-21T17:18:19","modified_gmt":"2023-06-21T20:18:19","slug":"relatorios-com-lazreport","status":"publish","type":"page","link":"https:\/\/gladiston.net.br\/en\/programacao\/lazarus-ide\/relatorios-com-lazreport\/","title":{"rendered":"Reports with LazReport"},"content":{"rendered":"\n<p>H\u00e1 duas grandes op\u00e7\u00f5es de relat\u00f3rios: o&nbsp;<strong>LazReport<\/strong>&nbsp;e o&nbsp;<strong>Fortes-CE<\/strong>, vamos instalar o LazReport.<\/p>\n\n\n\n<p>O LazReport j\u00e1 acompanha a instala\u00e7\u00e3o do Lazarus, mas n\u00e3o \u00e9 previamente instalado. Compor relat\u00f3rios com ele \u00e9 similar ao FastReport do Delphi.<\/p>\n\n\n\n<p>Seu grande diferencial ao Fortes \u00e9 que ele tem sua interface pr\u00f3pria de constru\u00e7\u00e3o de relat\u00f3rio, isto \u00e9, voc\u00ea deposita um componente no formul\u00e1rio e este componente lhe d\u00e1 acesso a um editor de design de relat\u00f3rio que ser\u00e1 a unica ferramenta de trabalho, quase sem c\u00f3digo de programa\u00e7\u00e3o da sua parte, voc\u00ea apenas precisar\u00e1 dos datasources e o restante \u00e9 com o design e quase n\u00e3o carecendo de programa\u00e7\u00e3o por cima. Isso pode ser bom por um lado, mas por outro torna-o menos flex\u00edvel que o Fortes-CE onde usaremos os eventos OnBefore em cima de bandas e objetos visuais para personalizar as informa\u00e7\u00f5es.<\/p>\n\n\n\n<p>Por exemplo, imagine imprimir um Label ao lado do nome do cliente intitulado &#8216;Situa\u00e7\u00e3o&#8217; que fosse uma imagem ou texto que variasse conforme a situa\u00e7\u00e3o financeira, usando o Fortes, no label colocaria algum c\u00f3digo no evento OnBeforePrint, simples assim, j\u00e1 no LazReport voc\u00ea j\u00e1 tem a op\u00e7\u00e3o de criar uma variavel e coloc\u00e1-lo junto ao MemoView (componente que mostra texto similar ao TLabel) e antes do relat\u00f3rio ser preparado voc\u00ea altera essas variaveis ou n\u00e3o cria nenhuma vari\u00e1vel e faz esse ajuste fino em tempo de runtime. <\/p>\n\n\n\n<p>Dentro deste design de relat\u00f3rio, voc\u00ea tem os :<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Datasets: para conectar os campos de tabelas de bancos de dados aos componentes visuais<\/li>\n\n\n\n<li>Variaveis: que s\u00e3o basicamente valores que n\u00e3o tem rela\u00e7\u00e3o com banco de dados onde alguns j\u00e1 vem prontos como data\/hora atual, numero de p\u00e1gina e pode-se acrescentar suas pr\u00f3prias vari\u00e1veis que ser\u00e3o usadas durante o relat\u00f3rio.<\/li>\n<\/ol>\n\n\n\n<p>Programadores geralmente tentam resolver o relat\u00f3rio totalmente visual, alterando apenas suas propriedades. Mas \u00e9 possivel alterar os componentes em tempo de execu\u00e7\u00e3o, \u00e9 similar ao FastReport do Delphi(mas que tamb\u00e9m tem vers\u00e3o comercial para Lazarus):<\/p>\n\n\n\n<div class=\"wp-block-codemirror-blocks-code-block code-block\"><pre class=\"CodeMirror\" data-setting=\"{&quot;showPanel&quot;:true,&quot;languageLabel&quot;:false,&quot;fullScreenButton&quot;:true,&quot;copyButton&quot;:true,&quot;mode&quot;:&quot;pascal&quot;,&quot;mime&quot;:&quot;text\/x-pascal&quot;,&quot;theme&quot;:&quot;default&quot;,&quot;lineNumbers&quot;:true,&quot;styleActiveLine&quot;:true,&quot;lineWrapping&quot;:false,&quot;readOnly&quot;:true,&quot;fileName&quot;:&quot;&quot;,&quot;TrpContentRestriction&quot;:{&quot;restriction_type&quot;:&quot;exclude&quot;,&quot;selected_languages&quot;:[],&quot;panel_open&quot;:true},&quot;language&quot;:&quot;Pascal&quot;,&quot;maxHeight&quot;:&quot;400px&quot;,&quot;modeName&quot;:&quot;pascal&quot;}\">  \/\/ Componentes Visuais\n  if frx_Report.FindObject('LBL_VL_TOTAL')&lt;&gt;nil then\n  begin\n    TfrxMemoView(frx_Report.FindObject('LBL_VL_TOTAL')).Memo.Text:='Valor em REAIS';\n  end  \n  if frx_Report.FindObject('header_logo')&lt;&gt;nil then\n  begin\n    TfrxPictureView(frx_Report.FindObject('header_logo')).Hyperlink.Kind:=hkURL;\n    TfrxPictureView(frx_Report.FindObject('header_logo')).Hyperlink.Value:=link2site_nosso.text;\n    TfrxPictureView(frx_Report.FindObject('header_logo')).Picture.LoadFromFile(edtImg_Header.Text);\n  end;\n  \/\/ Variaives\n  frx_Report.Variables.Variables['NOME_LOCAL']:='Estado, Cidade, Cep, UF';\n  frx_Report.Variables.Variables['REQUERENTE']:='Jos\u00e9 da Silva';    <\/pre><\/div>\n\n\n\n<p>Para instalar o LazReport neste passo, v\u00e1 em&nbsp;<strong>Pacote-&gt;Instalar e desinstalar pacotes<\/strong>&nbsp;e marque para instala\u00e7\u00e3o os seguintes pacotes:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>lazreport<\/li>\n\n\n\n<li>lazfpreportdesign<\/li>\n\n\n\n<li>lclfpreport<\/li>\n\n\n\n<li>lr_codereport_pkg<\/li>\n<\/ol>\n\n\n\n<p>Depois de compilar e instalar os pacotes acima, prossiga com estes tamb\u00e9m:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>lazreportpdfexport: Fornece a possibilidade de exportar um relat\u00f3rio do lazreport para o formato pdf. (requer dependencia powerpdf)<\/li>\n\n\n\n<li>lrspreadsheetexport: Fornece a possibilidade de exportar um relat\u00f3rio do lazreport para o formato xls,xlsx,ods,&#8230;. (requer depend\u00eancia FPSpreadsheet j\u00e1 instalada)<\/li>\n\n\n\n<li>lazidefpreport<\/li>\n<\/ol>\n\n\n\n<p>Fique atento aos componentes marcados que exigem suas depend\u00eancias previamente instaladas. Podem existir outras refer\u00eancias de componente iniciando com as letras\u00a0<strong>lazIstoOuAquilo<\/strong>\u00a0que acrescentam mais recursos ao lazreport que talvez queira instalar, mas corre-se o risco de haver depend\u00eancias e voc\u00ea deve ficar atento a elas antes de prosseguir. Se instalar algo que bugou sua IDE volte ao t\u00f3pico \u201cA prova de balas\u201d para ter o seu sistema de volta.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>H\u00e1 duas grandes op\u00e7\u00f5es de relat\u00f3rios: o&nbsp;LazReport&nbsp;e o&nbsp;Fortes-CE, vamos instalar o LazReport. O LazReport j\u00e1 acompanha a instala\u00e7\u00e3o do Lazarus, mas n\u00e3o \u00e9 previamente instalado. Compor relat\u00f3rios com ele \u00e9 similar ao FastReport do Delphi. Seu grande diferencial ao Fortes \u00e9 que ele tem sua interface pr\u00f3pria de constru\u00e7\u00e3o de relat\u00f3rio, isto \u00e9, voc\u00ea deposita [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":159,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"templates\/template-full-width.php","meta":{"footnotes":""},"class_list":["post-348","page","type-page","status-publish","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/gladiston.net.br\/en\/wp-json\/wp\/v2\/pages\/348","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gladiston.net.br\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/gladiston.net.br\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/gladiston.net.br\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gladiston.net.br\/en\/wp-json\/wp\/v2\/comments?post=348"}],"version-history":[{"count":5,"href":"https:\/\/gladiston.net.br\/en\/wp-json\/wp\/v2\/pages\/348\/revisions"}],"predecessor-version":[{"id":2252,"href":"https:\/\/gladiston.net.br\/en\/wp-json\/wp\/v2\/pages\/348\/revisions\/2252"}],"up":[{"embeddable":true,"href":"https:\/\/gladiston.net.br\/en\/wp-json\/wp\/v2\/pages\/159"}],"wp:attachment":[{"href":"https:\/\/gladiston.net.br\/en\/wp-json\/wp\/v2\/media?parent=348"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}