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), ou então copie o arquivo C:\Windows\VisRel.exe para a sua pasta de programas.

IMPORTANTE: Se você tem clientes com Windows 95 ou 98 e se optar por copiar o VisRel.exe, copie também o arquivo Msvbvm60.dll (sempre deste link) para a sua pasta de programas! Nunca copie o arquivo Msvbvm60.dll da pasta system de um computador para outro, ou para a sua pasta de programas, pois cada versão ou service pack do Windows tem sua própria DLL (exceto o Windows 9x).

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