Dicas Lazarus: Criar base de dados firebird em tempo de execução

Neste vídeo mostro como criar uma base de dados (base.fdb) em tempo de execução.
Além da base de dados, vamos criar duas tabelas, clientes e produtos utilizando uma query.
Componente necessário ZEOSLIB.
Funciona em Lazarus, CodeTyphon e Delphi.


Curso Programação: Conectando PostgreSQL em um servidor Linux

O cenário é:
Temos um servidor PostgreSQL instalado em um sistema operacional Linux e precisamos configurar programas desenvolvido em Lazarus, Codetyphon ou Delphi em estações Windows.
Neste vídeo mostro exatamente como proceder para configurar as nossas aplicações.
Vamos usar o ZEOSLIB para fazer esta conexão.


Aprenda a programar impressoras térmicas de etiquetas PPLB

Para quem precisa imprimir em impressoras térmicas de etiquetas que utilizam a linguagem PPLB (Zebra, Argox, Elgin, etc), segue algumas dicas.

Vamos ver o lay-out da impressão de uma linha com 3 colunas:

N
D20
S3
A810,160,2,1,1,1,N,”Torta de Frango”
A810,140,2,3,1,1,N,”000132″
A810,115,2,3,1,1,N,”R$       3,90″
B570,020,0,2,3,5,65,N,”000132″

A540,160,2,1,1,1,N,”Sabonete Liquido”
A540,140,2,3,1,1,N,”001021″
A540,115,2,3,1,1,N,”R$       2,20″
B310,020,0,2,3,5,65,N,”01021″

A260,160,2,1,1,1,N,”Adaptador de Tomada”
A260,140,2,3,1,1,N,”006352″
A260,115,2,3,1,1,N,”R$       1,80″
B030,020,0,2,3,5,65,N,”006352″
P1

Vamos comentar para facilitar a interpretação:


N = Limpeza do Buffer
D20 = Densidade 20
S3 = Velocidade de impressão pol/segundos

Ap1,p2,p2,p3,p4,p5,p6,p7,”Dados” (veja tabela abaixo – Texto)
A810,160,2,1,1,1,N,”Torta de Frango”
A810,140,2,3,1,1,N,”000132″
A810,115,2,3,1,1,N,”R$       3,90″ 

Bp1,p2,p2,p3,p4,p5,p6,p7,”Dados” (veja tabela abaixo – Barras)
B570,020,0,2,3,5,65,N,”000132″

P1 = determina a quantidade de cópias, 1 até 65.535

A – Campo de texto
Ap1,p2,p3,p4,p5,p6,p7,”Dados”
p1 – posição eixo X em pontos
p2 – posição eixo Y em pontos
p3 – rotação (0=normal,1=90graus,2=180graus,3=270graus)
p4 – tipo de fonte (1 a 5) consultar manual das fontes disponíveis
p5 – multiplicador horizontal das fontes
p6 – multiplicador vertical das fontes
p7 – N=imagem normal, ou R= imagem em reverso
“Dados” – dados a serem impressos

B – Código de barras
Bp1,p2,p3,p4,p5,p6,p7,p8,”Dados”
p1 – posição eixo X em pontos
p2 – posição eixo Y em pontos
p3 – rotação (0=normal,1=90graus,2=180graus,3=270graus)
p4 – tipo de código de barra consultar manual das fontes disponíveis
p5 – largura da barra estreita
p6 – largura da barra larga
p7 – altura do código de barras em pontos
p8 – impressão da linha de interpretação (B= sim, N= não)

“Dados” – dados a serem impressos
Agora que você já entendeu, vamos ver como vai ficar em Lazarus ou Delphi:

procedure TFormEtqL42.BtnImprimeETQ;
var
F : TextFile;
i : integer;
begin
   IF cPortaBARRAS = ” then
      begin
        ShowMessage(‘Verifique a configuração da porta da impressora de etiqueta’);
        Exit;
      end;
   AssignFile(F,cPortaBARRAS);
   Rewrite(F);
   i := 0;
   TabGlobal.DETQ001.Last;
   TabGlobal.DETQ001.First;
   while not TabGlobal.DETQ001.eof do
      begin
         Writeln(F,’N’);
         Writeln(F,’D20′);
         Writeln(F,’S3′);
         // Etiqueta 1
         Writeln(F,’A810,160,2,1,1,1,N,”‘+TabGlobal.DETQ001.DESCRICAO.Conteudo+'”‘);
         Writeln(F,’A810,140,2,3,1,1,N,”‘+TabGlobal.DETQ001.CODPRO.Conteudo+'”‘);
         Writeln(F,’A810,115,2,3,1,1,N,”‘+TabGlobal.DETQ001.VALOR.Conteudo+'”‘);
         Writeln(F,’B570,020,0,2,3,5,65,N,”‘+TabGlobal.DETQ001.BARRAS.Conteudo+'”‘);
         // Etiqueta 2
         TabGlobal.DETQ001.Next;
         Writeln(F,’A540,160,2,1,1,1,N,”‘+TabGlobal.DETQ001.DESCRICAO.Conteudo+'”‘);
         Writeln(F,’A540,140,2,3,1,1,N,”‘+TabGlobal.DETQ001.CODPRO.Conteudo+'”‘);
         Writeln(F,’A540,115,2,3,1,1,N,”‘+TabGlobal.DETQ001.VALOR.Conteudo+'”‘);
         Writeln(F,’B310,020,0,2,3,5,65,N,”‘+TabGlobal.DETQ001.BARRAS.Conteudo+'”‘);
         // Etiqueta 3
         TabGlobal.DETQ001.Next;
         Writeln(F,’A260,160,2,1,1,1,N,”‘+TabGlobal.DETQ001.DESCRICAO.Conteudo+'”‘);
         Writeln(F,’A260,140,2,3,1,1,N,”‘+TabGlobal.DETQ001.CODPRO.Conteudo+'”‘);
         Writeln(F,’A260,115,2,3,1,1,N,”‘+TabGlobal.DETQ001.VALOR.Conteudo+'”‘);
         Writeln(F,’B030,020,0,2,3,5,65,N,”‘+TabGlobal.DETQ001.BARRAS.Conteudo+'”‘);
         TabGlobal.DETQ001.Next;
         Writeln(F,’P1′);
      end;
   CloseFile(F);
end;

Se gostou, compartilhe e ajude a divulgar meu trabalho. Obrigado!

* Créditos para parte do texto dos comandos para ArgoxBrasil

Lazarus: Aprenda validar CNPJ, CPF e alinhar strings

Nesta vídeo aula vamos trabalhar com funções para validação de CPF e CNPJ. Além disso também vamos trabalhar com funções de alinhamento de texto.

Apenas Numeros
http://www.mediafire.com/download/5lil24bbkl1tyx9/ApenasNumeros.txt

Alinhamento
http://www.mediafire.com/download/55edvh15ee774hw/Alinhamento.txt
CNPJ CPF
http://www.mediafire.com/download/q5kexov72oywsyn/Cpf_Cnpj.TXT

Assista o vídeo: