User:Erivam

From Free Pascal wiki
Jump to navigationJump to search

IMPRESSÃO DE ETIQUETAS USANDO LAZREPORT

Por: Erivam Anselmo de Albuquerque (erivamalbuquerque@yahoo.com.br)

ALBUQUERQUE, Erivam Anselmo de.

Pré-requisitos: Lazarus v0.9.28 ou superior Componente: Zeos Access (http://wiki.freepascal.org/Zeos_tutorial/pt)

Banco de dados: MySQL 5.0



Resumo

O objetivo deste artigo é demonstrar os procedimentos para construir um formulário de relatório destinado a impressão de etiquetas ou formatos semelhantes utilizando os recursos do Lazarus.


Preparando o banco de dados

Criando uma tabela no banco de dados (Script)

CREATE TABLE `clientes` (
  `ID` int(10) unsigned zerofill NOT NULL default '0000000000',
  `NOME` char(30) default NULL,
  `ENDER` char(30) default NULL,
  `BAIRR` char(20) default NULL,
  `CEP` char(10) default NULL,
  `CIDAD` char(25) default NULL,
  `ESTAD` char(2) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ROW_FORMAT=FIXED;

Incluindo dados na tabela (Script)

INSERT INTO `clientes` VALUES (10,'JANEILA DE ANDRADE SILVA','C. ZBZGUA D SJ H D S KF HSDF I','TAQUARI','699000000','CARUARU','PE');
INSERT INTO `clientes` VALUES (12,'PINHEIRO DE LIMA','P.L LA I WI I WEI R UWUERIIWI','SÃO FRANCISCO','6990000000','RECIFE','PE');
INSERT INTO `clientes` VALUES (27,'CHAVES M N','R IKWUEU R IWE RU 150','BOSQUE','69909-380','JOÃO PESSOA','PB');
INSERT INTO `clientes` VALUES (29,'JOSÉ LIMA','RUA PPWEI   IWEIR WEO R, 100','CENTRO','69980-000','RIO DE JANEIRO','RJ');
INSERT INTO `clientes` VALUES (31,'LUIZA  B S.','AV KWE UR UW EUIR OWER','BOSQUE','69909-701','GARANHUNS','PE');
INSERT INTO `clientes` VALUES (37,'LIMA','RUA OWIUE UWE RU USH D , 455','CENTRO','69980-000','CRUZEIRO DO SUL','AC');
INSERT INTO `clientes` VALUES (41,'CARLOS C.','CJ JSDFS  UFR UWE URU R IORIUG','CJ ESPERANCA','69905-250','RIO BRANCO','AC');
INSERT INTO `clientes` VALUES (49,'AUGUSTO','O WEUIR IWOE R IWIUER UYWEIRUW','BOSQUE','69908-650','MACEIO','AL');


Criando um Projeto

No menu selecione Project -> New Project


FG1.JPG FG2.JPG


Inserir os componentes de conexão com o banco de dados


FG3.JPG


No inspetor de objetos configure os dados de conexão (Database, HostName User, Password, Protocol) com o seu banco de dados conforme exemplo: Se a confuração estviver correta já será possível ativar a conexão (Connected=True).


FG4.JPG



Configurar a propriedade Connection do ZQuery1 para Connection1.




Configure a propriedade SQL do componente ZQuery1 com a seguinte linha:

  select * from clientes order by NOME



Clicar com o botão direito sobre o componente ZQuery1 e selecionar no menu Edit Fields Add Fields e selecione os campos para o relatório, clique depois no botão Create:


FG8.JPG

O resultado é:


FG9.JPG


Na guia LazReport selecione e inclua no formulário o componente rfReport e um frDBDataset


FG11.JPG

Ligue a propriedade DataSet do componente frDBDatase1 com o ZQuery1.



Ligue o frReport1 ao frDBDataSet1 através da propriedade Dataset.

FG12.JPG

Clique duas vezes sobre o componente rfReport1 para abrir o modo Designe do relatório

FG13.JPG




Selecione no menu File --> Page options , coloque a quantidade de colunas que deseja e escolha também a ordem de listagem dos registros nas colunas (por linha ou por coluna). Outras configurações podem ser realizadas na guia Paper (mudar a orientação do formulário, etc..). Clicar em OK quando concluir.

FG14.JPG




Agora vamos inserir uma Band clicando no ícole semelhante a figura


F31.JPG


Depois clicar na parte superior do formulário

FG17.JPG


Selecione Master dada


FG18.JPG

FG19.JPG

Grave o arquivo com o nome etiquetas.lrf em uma pasta (para este exemplo a pasta é C:\TEMP)O resultado até aqui é o seguinte:


FG20.JPG

Depois no menu Tool vamos inserir os campos do no formulário de relatório


FG21.JPG

Depois no menu Tool vamos inserir os campos do no formulário de relatório selecione os campos e clique OK.

FG22.JPG O resultado será:


FG23.JPG


Se houver muitos campos, melhor seleciuonar um de cada vez, aqui temos que arrastar cada campo para seu lugar conforme o layout desejado.

FG24.JPG

Ou usando as teclas Ctrl+P.

F25.JPG

F26.JPG

Feche esta visualização e feche também o Designe do relatório. Depois do layout do relatório vamos construir a rotina que vai acionar a visualização do relatório através de um clique em um botão.

Adicionar um objeto botão no Form1 e clicar duas vezes sobre ele para digitar os comando no procedimento:

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  ZConnection1.Connected:=true;
  ZQuery1.Close;
  ZQuery1.SQL.Clear;
  ZQuery1.SQL.Add('SELECT * FROM clientes ORDER BY NOME');
  ZQuery1.Open;
  frReport1.LoadFromFile('C:\TEMP\Etiquetas.lrf');
  frReport1.ShowReport;
end;                                    

F27.JPG



procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  ZConnection1.Connected:=true;
  ZQuery1.Close;
  ZQuery1.SQL.Clear;
  ZQuery1.SQL.Add('SELECT * FROM clientes ORDER BY NOME');
  ZQuery1.Open;
  frReport1.LoadFromFile('C:\TEMP\Etiquetas.lrf');
  frReport1.ShowReport;

end;               
                  


A aplicação fica assim:


FG28.JPG

Clicar sobre o botão apenas uma vez para ver o relatório conforme o layout selecionado no código.



Outras possibilidades de layout:

FG29.JPG FG30.JPG