Exemplos »»

  O exemplo abaixo demonstra como imprimir um cadastro utilizando a sintaxe do Delphi 7.0:

VisRel

1º Faça o download dos arquivos deste exemplo clicando aqui;

2º Abra o layout do relatório chamado "Exemplo.vrl";

3º Veja que foram inseridas apenas algumas linhas de programação na banda para fazer um loop de preenchimento das váriáveis (CTRL+F9). Assim é possível replica-la facilmente no seu programa a partir dos registros do cadastro;

VisRelEdit

4º Para integrar o layout acima com o programa Delphi abaixo, clique no menu "Editar - Copiar como - Delphi", e em seguida substitua todo o conteúdo abaixo em azul com o que estiver na área de tranferência (colar).

5º Em seguida basta compilar o programa e executá-lo. E o VisRel encarrega-se de fazer a quebra de página conforme o tamanho do papel selecionado pelo usuário.

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ShellApi;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure SalvarArquivo(P_Arquivo: String; P_Buffer: String);
  var
    P_FileHandle: Integer;
begin
  if P_Arquivo <> '' then
  Begin
    P_FileHandle := FileCreate(P_Arquivo);
    FileWrite(P_FileHandle,PChar(P_Buffer)^,Length(P_Buffer));
    FileClose(P_FileHandle);
  end;
end;

Procedure Relatorio();
  var
    Linhas: String;
    Arquivo: String;

    varCod: Integer;
    varNome: String;
begin
  Linhas := '';
  Arquivo := 'C:\Relatorio.dat';

  //* ================= Inicio do Relatório ===================== *//

// Comentários ou Comandos iniciais
  Linhas := Linhas + 'EW';    // Comando
  Linhas := Linhas + #13#10;

  Linhas := Linhas + 'F ';    // Comando
  Linhas := Linhas + '10';    // Tamanho da fonte 9(2)
  Linhas := Linhas + '0';    // Negrito
  Linhas := Linhas + '0';    // Itálico
  Linhas := Linhas + '0';    // Sublinhado
  Linhas := Linhas + '0';    // Riscado
  Linhas := Linhas + 'Arial';    // Nome da fonte
  Linhas := Linhas + #13#10;
  Linhas := Linhas + 'F ';    // Comando
  Linhas := Linhas + '14';    // Tamanho da fonte 9(2)
  Linhas := Linhas + '1';    // Negrito
  Linhas := Linhas + '0';    // Itálico
  Linhas := Linhas + '0';    // Sublinhado
  Linhas := Linhas + '0';    // Riscado
  Linhas := Linhas + 'Arial';    // Nome da fonte
  Linhas := Linhas + #13#10;
  Linhas := Linhas + 'L ';    // Comando
  Linhas := Linhas + '00';   // Cor da Linha 9(2)
  Linhas := Linhas + '99';   // Cor do fundo 9(2)
  Linhas := Linhas + '00064';   // Esquerda do item 9(5)
  Linhas := Linhas + '00576';   // Comprimento do item 9(5)
  Linhas := Linhas + '0100110000';   // Alinhamento do item 9(10)
  Linhas := Linhas + '01';   // Espessura da linha 9(2)
  Linhas := Linhas + #13#10;
  Linhas := Linhas + 'T ';    // Comando
  Linhas := Linhas + '02';   // Cor do texto 9(2)
  Linhas := Linhas + '99';   // Cor do fundo 9(2)
  Linhas := Linhas + '00066';   // Esquerda do item 9(5)
  Linhas := Linhas + '00572';   // Comprimento do item 9(5)
  Linhas := Linhas + '1010100010';   // Alinhamento do item 9(10)
  Linhas := Linhas + 'Empresa X';    // Texto
  Linhas := Linhas + #13#10;
  Linhas := Linhas + 'RH';    // Comando
  Linhas := Linhas + ' ' + '00042';  // Row Height
  Linhas := Linhas + #13#10;
  Linhas := Linhas + 'QL';    // Comando
  Linhas := Linhas + #13#10;

  Linhas := Linhas + 'F ';    // Comando
  Linhas := Linhas + '10';    // Tamanho da fonte 9(2)
  Linhas := Linhas + '0';    // Negrito
  Linhas := Linhas + '0';    // Itálico
  Linhas := Linhas + '0';    // Sublinhado
  Linhas := Linhas + '0';    // Riscado
  Linhas := Linhas + 'Arial';    // Nome da fonte
  Linhas := Linhas + #13#10;
  Linhas := Linhas + 'F ';    // Comando
  Linhas := Linhas + '10';    // Tamanho da fonte 9(2)
  Linhas := Linhas + '1';    // Negrito
  Linhas := Linhas + '0';    // Itálico
  Linhas := Linhas + '0';    // Sublinhado
  Linhas := Linhas + '0';    // Riscado
  Linhas := Linhas + 'Arial';    // Nome da fonte
  Linhas := Linhas + #13#10;
  Linhas := Linhas + 'L ';    // Comando
  Linhas := Linhas + '00';   // Cor da Linha 9(2)
  Linhas := Linhas + '99';   // Cor do fundo 9(2)
  Linhas := Linhas + '00064';   // Esquerda do item 9(5)
  Linhas := Linhas + '00576';   // Comprimento do item 9(5)
  Linhas := Linhas + '0101010000';   // Alinhamento do item 9(10)
  Linhas := Linhas + '01';   // Espessura da linha 9(2)
  Linhas := Linhas + #13#10;
  Linhas := Linhas + 'T ';    // Comando
  Linhas := Linhas + '00';   // Cor do texto 9(2)
  Linhas := Linhas + '99';   // Cor do fundo 9(2)
  Linhas := Linhas + '00066';   // Esquerda do item 9(5)
  Linhas := Linhas + '00572';   // Comprimento do item 9(5)
  Linhas := Linhas + '1010100010';   // Alinhamento do item 9(10)
  Linhas := Linhas + 'Cadastro de Fornecedores';    // Texto
  Linhas := Linhas + #13#10;
  Linhas := Linhas + 'RH';    // Comando
  Linhas := Linhas + ' ' + '00026';  // Row Height
  Linhas := Linhas + #13#10;
  Linhas := Linhas + 'QL';    // Comando
  Linhas := Linhas + #13#10;

  Linhas := Linhas + 'F ';    // Comando
  Linhas := Linhas + '10';    // Tamanho da fonte 9(2)
  Linhas := Linhas + '0';    // Negrito
  Linhas := Linhas + '0';    // Itálico
  Linhas := Linhas + '0';    // Sublinhado
  Linhas := Linhas + '0';    // Riscado
  Linhas := Linhas + 'Arial';    // Nome da fonte
  Linhas := Linhas + #13#10;
  Linhas := Linhas + 'L ';    // Comando
  Linhas := Linhas + '00';   // Cor da Linha 9(2)
  Linhas := Linhas + '99';   // Cor do fundo 9(2)
  Linhas := Linhas + '00064';   // Esquerda do item 9(5)
  Linhas := Linhas + '00088';   // Comprimento do item 9(5)
  Linhas := Linhas + '0101010000';   // Alinhamento do item 9(10)
  Linhas := Linhas + '01';   // Espessura da linha 9(2)
  Linhas := Linhas + #13#10;
  Linhas := Linhas + 'T ';    // Comando
  Linhas := Linhas + '00';   // Cor do texto 9(2)
  Linhas := Linhas + '99';   // Cor do fundo 9(2)
  Linhas := Linhas + '00066';   // Esquerda do item 9(5)
  Linhas := Linhas + '00084';   // Comprimento do item 9(5)
  Linhas := Linhas + '0000100010';   // Alinhamento do item 9(10)
  Linhas := Linhas + 'Código';    // Texto
  Linhas := Linhas + #13#10;
  Linhas := Linhas + 'L ';    // Comando
  Linhas := Linhas + '00';   // Cor da Linha 9(2)
  Linhas := Linhas + '99';   // Cor do fundo 9(2)
  Linhas := Linhas + '00152';   // Esquerda do item 9(5)
  Linhas := Linhas + '00488';   // Comprimento do item 9(5)
  Linhas := Linhas + '0101000000';   // Alinhamento do item 9(10)
  Linhas := Linhas + '01';   // Espessura da linha 9(2)
  Linhas := Linhas + #13#10;
  Linhas := Linhas + 'T ';    // Comando
  Linhas := Linhas + '00';   // Cor do texto 9(2)
  Linhas := Linhas + '99';   // Cor do fundo 9(2)
  Linhas := Linhas + '00154';   // Esquerda do item 9(5)
  Linhas := Linhas + '00484';   // Comprimento do item 9(5)
  Linhas := Linhas + '0000100010';   // Alinhamento do item 9(10)
  Linhas := Linhas + 'Nome';    // Texto
  Linhas := Linhas + #13#10;
  Linhas := Linhas + 'RH';    // Comando
  Linhas := Linhas + ' ' + '00018';  // Row Height
  Linhas := Linhas + #13#10;
  Linhas := Linhas + 'FC';    // Comando
  Linhas := Linhas + #13#10;


  //* Texto inserido como 'Banda - Comentário' CTRL+F9 *//
  for varCod := 1 to 500 do
  begin
    varNome := 'Fornecedor ' + IntToStr(varCod);


  Linhas := Linhas + 'T ';    // Comando
  Linhas := Linhas + '00';   // Cor do texto 9(2)
  Linhas := Linhas + '99';   // Cor do fundo 9(2)
  Linhas := Linhas + '00066';   // Esquerda do item 9(5)
  Linhas := Linhas + '00084';   // Comprimento do item 9(5)
  Linhas := Linhas + '0100100010';   // Alinhamento do item 9(10)
  Linhas := Linhas + IntToStr(varCod);    // Texto
  Linhas := Linhas + #13#10;
  Linhas := Linhas + 'T ';    // Comando
  Linhas := Linhas + '00';   // Cor do texto 9(2)
  Linhas := Linhas + '99';   // Cor do fundo 9(2)
  Linhas := Linhas + '00154';   // Esquerda do item 9(5)
  Linhas := Linhas + '00484';   // Comprimento do item 9(5)
  Linhas := Linhas + '0000100010';   // Alinhamento do item 9(10)
  Linhas := Linhas + varNome;    // Texto
  Linhas := Linhas + #13#10;
  Linhas := Linhas + 'RH';    // Comando
  Linhas := Linhas + ' ' + '00018';  // Row Height
  Linhas := Linhas + #13#10;
  Linhas := Linhas + 'QL';    // Comando
  Linhas := Linhas + #13#10;

  //* Texto inserido como 'Banda - Comentário' CTRL+F9 *//
  end;



  Linhas := Linhas + 'F ';    // Comando
  Linhas := Linhas + '10';    // Tamanho da fonte 9(2)
  Linhas := Linhas + '1';    // Negrito
  Linhas := Linhas + '0';    // Itálico
  Linhas := Linhas + '0';    // Sublinhado
  Linhas := Linhas + '0';    // Riscado
  Linhas := Linhas + 'Arial';    // Nome da fonte
  Linhas := Linhas + #13#10;
  Linhas := Linhas + 'T ';    // Comando
  Linhas := Linhas + '12';   // Cor do texto 9(2)
  Linhas := Linhas + '99';   // Cor do fundo 9(2)
  Linhas := Linhas + '00066';   // Esquerda do item 9(5)
  Linhas := Linhas + '00396';   // Comprimento do item 9(5)
  Linhas := Linhas + '0001100010';   // Alinhamento do item 9(10)
  Linhas := Linhas + 'Este é o rodapé!';    // Texto
  Linhas := Linhas + #13#10;
  Linhas := Linhas + 'F ';    // Comando
  Linhas := Linhas + '10';    // Tamanho da fonte 9(2)
  Linhas := Linhas + '0';    // Negrito
  Linhas := Linhas + '0';    // Itálico
  Linhas := Linhas + '0';    // Sublinhado
  Linhas := Linhas + '0';    // Riscado
  Linhas := Linhas + 'Arial';    // Nome da fonte
  Linhas := Linhas + #13#10;
  Linhas := Linhas + 'T ';    // Comando
  Linhas := Linhas + '09';   // Cor do texto 9(2)
  Linhas := Linhas + '99';   // Cor do fundo 9(2)
  Linhas := Linhas + '00466';   // Esquerda do item 9(5)
  Linhas := Linhas + '00172';   // Comprimento do item 9(5)
  Linhas := Linhas + '0101100010';   // Alinhamento do item 9(10)
  Linhas := Linhas + 'Página (%_pag_%) de (%_pgs_%)';    // Texto
  Linhas := Linhas + #13#10;
  Linhas := Linhas + 'RH';    // Comando
  Linhas := Linhas + ' ' + '00026';  // Row Height
  Linhas := Linhas + #13#10;
  Linhas := Linhas + 'RO';    // Comando
  Linhas := Linhas + #13#10;

                         
  //* ================== Fim do Relatório ======================= *//

  SalvarArquivo(Arquivo,Linhas);
 
  //* É necessário inserir ShellApi em Uses *//
  ShellExecute(0, 'open', 'VisRel.exe', PChar('/G ' + Arquivo + ' /T Título do relatório /SW 1234 /SE'), 'C:\', SW_SHOWNORMAL);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Relatorio;
end;

end.

No computador de seus clientes instale apenas a Run-Time do VisRel (RunTimeVisRel.exe).

Para evitar alguns dos problemas com permissão de acesso ao registro ou instalação de arquivos no Windows XP SP3 e mais recentes como Vista e Win7, foi criada uma nova opção de instalação na pasta "Instalar no cliente" do VisRelEdit com o nome de "Versão Compacta.zip", com os arquivos abaixo:

VisRel.exe
VisRel.exe.manifest
VisRelPDF.dll
MSMAPI32.ocx
MSWINSCK.ocx
RICHTX32.ocx
vbPDF417.dll
vbZip232.dll

Obs.: Basta copiar esses arquivos para a sua pasta de programas, ou para a pasta C:\Windows do usuário.

Veja mais detalhes das linhas de comando do VisRel clicando aqui.


Página Principal Página Principal Página Principal Página Principal Página Principal Comprar Comprar Comprar Comprar Comprar Comprar Contato Contato Contato Contato Contato Contato + Produtos + Produtos + Produtos + Produtos + Produtos + Produtos Download Download Download Download Download Download Sobre Sobre Sobre Sobre Sobre Sobre