Mostrando postagens com marcador Turbo Delphi. Mostrar todas as postagens
Mostrando postagens com marcador Turbo Delphi. Mostrar todas as postagens

Turbo Delphi Explorer - Instalar Componentes de Terceiros

A IDE do Turbo Delphi Explorer é uma versão free, com a limitação de não permitir a instalação de componentes de terceiros, além de não possuir um componente para gerar relatórios.

Então como gerar relatórios com a ferramenta Turbo Delphi Explorer na versão free se esta não permite instalação de componentes de terceiros ? Como acessar uma Base de Dados através do ZeosDBO ?
Respondo, vamos fazer em tempo de execução. Irei partir do pressuposto que se tenho um componente com os códigos fontes e fazendo uso dos mesmos em tempo de execução , não haverá problemas com a licença do Turbo Delphi Explorer. Será ???

Vou utilizar dois componentes de terceiros COM código fonte:
ZeosDBO versão 6.6.2 (compatível com Delphi 7) – para acessar dados no Firebird
FreeReport versão 2.32 (compatível com Delphi 7) – para gerar nosso relatório

Vou partir do presuposto que você já tem instalado o Turbo Delphi Explorer. Então vamos lá.
Com o Turbo Delphi Explorer aberto vá em Tools >> Options
A janela “Options” vai aparecer, faça o seguinte:
No lado esquerdo da janela de um duplo click na propriedade Environment Options, depois um duplo click em Delphi Options, selecione a propriedade Library – Win32, agora do lado direito em Library path click no botão ... para adicionar os paths dos nossos componentes, veja figura abaixo:



Muito bem, com os paths adicionados agora podemos referenciar nossos componentes em tempo de execução.

Vamos trabalhar com 02 Forms e 01 DataModule:

Name = Form1
–> Formulário Principal
Deverá ter uma chamada para o Form2, conforme abaixo:


procedure TForm1.mRelCidadeClick(Sender: TObject);
begin
Application.CreateForm(TForm2, Form2);
Form2.ShowModal;
end;


Name = DM
–> Data Module para acessar nossos dados
A clausula uses deverá ter o seguinte;


uses
SysUtils, Classes, Variants, ZConnection, ZDataset, ZStoredProcedure,
ZAbstractRODataset, ZAbstractDataset, ZDBCIntfs, DB;

Coloque um componente TDataSource e renomeie para DSCidade.
Nas declarações Private e Public faça o seguinte:


private
{ Private declarations }
FConexao: TZConnection;
FZQuery: TZQuery;
public
{ Public declarations }
property Conexao: TZConnection read FConexao write FConexao;
property ZQuery: TZQuery read FZQuery write FZQuery;
end;

No evento OnCreate do Data Modulo, faça o seguine:

procedure TDM.DataModuleCreate(Sender: TObject);
begin
// Criamos a conexão com o Banco de Dados
Conexao:=TZConnection.Create(Self);
Conexao.Database:='C:\Arquivos de programas\Prog\Dados\DB.FDB';
Conexao.Password:='password';
Conexao.Port:=3050;
Conexao.Protocol:='firebird-1.5';
Conexao.TransactIsolationLevel:=tiReadCommitted;
Conexao.User:='SYSDBA';
Conexao.Connected:=True;
// Criamos um objeto TQuery para consultarmos nossa Tabela
ZQuery:=TZQuery.Create(Self);
ZQuery.Connection:=FConexao;
end;


Name = Form2
–> Formulário para impressão do nosso Relatório
A clausula uses deverá ter o seguinte;


uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ZConnection, ZDataset, ZStoredProcedure, ZAbstractRODataset,
ZAbstractDataset, StdCtrls, ComCtrls, FR_DSet, FR_DBSet, FR_Class, FR_Desgn,
Grids, DBGrids, ExtCtrls;

Procedimento para Impressão, conforme abaixo:

procedure FrPrint(Title:string;FrmGrid:TForm);
var
fr: TfrReport;
ReportTitle,ColumnHeader: Tfrbandview;
MemoVT: Array of TfrMemoview;
TitleV ,dateV,pageV: TfrMemoview;
page: Tfrpage;
col: Integer;
Cont: Integer;
Left,Top,Width,Heigth: Integer;
TempLeft,TempWidth: Integer;

procedure PrintCabecalho(NrPag: Integer);
begin
left :=20;
top :=20;
width :=710;
heigth :=25;
fr.Pages.Add;
page := fr.Pages[NrPag];
ReportTitle := Tfrbandview.Create;
ReportTitle.BandType := btReportTitle;
ReportTitle.SetBounds(left,top,width,75);
page.Objects.Add(ReportTitle);
TitleV := TfrMemoview.Create;
Titlev.SetBounds(Left,top,width,30);
Titlev.Font.Name := 'Tahoma';
TitleV.Font.Size := 16;
TitleV.Memo.Add(title);
page.Objects.Add(TitleV);
dateV := TfrMemoview.Create;
dateV.SetBounds(Left,top + 40,width,30);
dateV.Font.Name := 'Tahoma';
dateV.Font.Size := 8;
dateV.Memo.Add('DATA:'+FormatDateTime('dd/mm/yyyy',Now));
page.Objects.Add(dateV);
Top:=115;
end;

procedure PrintRodape;
begin
pageV:=TfrMemoview.Create;
pageV.Font.Name:='Tahoma';
pagev.Font.Size:=10;
pagev.FrameWidth:=2;
pagev.FrameTyp:=24 ;
pageV.Memo.Add(' :: PÁGINA '+'[PAGE#]');
pagev.SetBounds(0,1025,750,20);
page.Objects.Add(pageV);
end;

begin
fr:=TfrReport.Create(FrmGrid);
fr.StoreInDFM := True;
DM.ZQuery.Open;
Cont:=0;
PrintCabecalho(Cont);
ColumnHeader:=Tfrbandview.Create;
ColumnHeader.BandType:=btColumnHeader;
ColumnHeader.SetBounds(left,top,width,900);
page.Objects.Add(ColumnHeader);
SetLength(MemoVT,5);
while not DM.ZQuery.Eof do
begin
col:=0;
// Campo Nome Cidade
TempLeft:=20;
MemoVt[col]:=TfrMemoview.Create;
MemoVt[col].Font.Name:='Tahoma';
MemoVt[col].Font.Size:=8;
MemoVt[col].Memo.Add(DM.ZQuery.FieldByName('CID_DESCRICAO').AsString);
MemoVt[col].FrameTyp:=0;
TempWidth:=300;
MemoVt[col].SetBounds(TempLeft,top,tempWidth,15);
Templeft:=TempLeft+tempwidth+10;
page.Objects.Add(MemoVt[col]);
// Campo UF
col:=1;
MemoVt[col]:=TfrMemoview.Create;
MemoVt[col].Font.Name:='Tahoma';
MemoVt[col].Font.Size:=8;
MemoVt[col].Memo.Add(DM.ZQuery.FieldByName('CID_UF').AsString);
MemoVt[col].FrameTyp:=0;
TempWidth:=50;
MemoVt[col].SetBounds(TempLeft,top,tempWidth,15);
Templeft:=TempLeft+tempwidth;
page.Objects.Add(MemoVt[col]);
//
Top:=Top+15;
DM.ZQuery.Next;
if (not DM.ZQuery.Eof) and (Top >= 1000) then
begin
Inc(Cont);
PrintRodape;
PrintCabecalho(Cont);
ColumnHeader:=Tfrbandview.Create;
ColumnHeader.BandType:=btColumnHeader;
ColumnHeader.SetBounds(left,top,width,900);
page.Objects.Add(ColumnHeader);
SetLength(MemoVT,5);
end;
end;
PrintRodape;
fr.ShowReport;
//fr.DesignReport;
fr.Free;
DM.ZQuery.Close;
end;


Coloque um Botão no formulário, chamando o procedimento de Impressão, conforme abaixo:

procedure TForm2.btImprimirClick(Sender: TObject);
begin
DM.ZQuery.Close;
DM.ZQuery.SQL.Clear;
DM.ZQuery.SQL.Add('SELECT * ');
DM.ZQuery.SQL.Add('FROM CIDADE');
DM.ZQuery.Open;
FrPrint('RELATÓRIO ::: TURBO DELPHI EXPLORER',Form2);
DM.ZQuery.Close;
end;

Relatório para Turbo Delphi Explorer

Achei essa dica na comunidade Turbo Delphi no Orkut, postada pelo Eduardo [ NewZeek ]:

Participe da comunidade Orkut Turbo Delphi Explorer


Primeiro descompacte a pasta FreeReport na pasta Lib do Delphi, declare a pasta FreeReport\Source à Library do Delphi.

Pronto, o delphi reconhece a pasta das units necessarias para a criaçao dos componentes.

Crie uma nova aplicaçao, e insira os componentes para acesso ao banco de dados, neste caso estou utilizando DBExpress com driver UIB e clientDataSet, para acesso ao Banco de dados Firebird.

Apos o acesso aos dados estarem corretamente ligados e funcionando, vamos a criaçao dos componentes do FreeReport para a criaçao do relatorio.

Lembrando que primeiro iremos criar uma funçao para criaçao dos componentes e em tempo de execuçao iremos criar o relatorio e salvar em arquivo, depois voltamos ao projeto e carregamos o relatorio do arquivo.

Iniciando:

Adicione as seguintes units a clausula uses:

FR_Desgn, FR_DSet, FR_DBSet, FR_Class;

Agora adicione as seguintes variaveis globais ao projeto:

frReport1: TfrReport;
frDBDataSet1: TfrDBDataSet;
frDesigner1: TfrDesigner;

ficara assim:

var
Form1: TForm1;
frReport1: TfrReport;
frDBDataSet1: TfrDBDataSet;
frDesigner1: TfrDesigner;

Pronto, agora iremos criar os componentes no evento oncreate do form, passando como proprietario o proprio form:

procedure TForm1.FormCreate(Sender: TObject);
begin
frReport1 := TfrReport.create(form1);//Crio o componente do relatorio
frDBDataSet1 := TfrDBDataSet.create(form1);//Crio o componente de acesso ao banco
with frDBDataSet1 do
begin
dataset := ClientDataSet1;//seto qual dataset sera utilizado
name := 'frDBDataSet1';//defino o nome do componente
end;
frReport1.Dataset := frDBDataSet1;//defino o dataset do relatorio
frDesigner1:= TfrDesigner.Create(form1);//crio o componente Design
end;

Pronto, todos os componentes serao criado assim que o form for criado e destruidos juntamente com seu proprietario, o form.

agora o evento do botao Design:
21/12/06
Eduardo
O botao design sera responsavel por abrir o modo design do relatorio e sera de suma importancia para a criaçao do mesmo.

procedure TForm1.Btn_designClick(Sender: TObject);
begin
frReport1.DesignReport;
end;

agora rode a aplicaçao e clique no botao, ira aparecer o modo design do relatorio.
Procure pelo icone "Insert DB fields", e insira os campos que desejar no relatorio, lembrando que serao listados os campos e disponiveis no clientdataset.

Crie o relatorio utilizando os componentes disponiveis no modo design e depois salve este relatorio: File > Save as...

Pronto, volte ao projeto e vamos criar o evento que ira carregar o arquivo do relatorio.


procedure TForm1.Button1Click(Sender: TObject);
begin
frReport1.LoadFromFile('C:\teste.frf');
frReport1.ShowReport;
end;

No caso, "C:\teste.frf" é o relatorio que criei.

Agora rode a aplicaçao e clique no botao para exibir o relatorio.

Turbo Delphi Explorer



Por que utilizar uma versão paga ou uma versão pirata do Delphi se você pode trabalhar com uma versão gratuita? Isso mesmo! Esse é o Turbo Delphi Explorer!
Ele tem duas limitações:

1 - Não aceita a instalação de componentes;
2 - Não possui um gerador de relatórios.

Para poder fazer o download é necessário cadastro na Code Gear.

download Turbo Delphi Explorer free

Outros produtos "Turbo"

BORLAND® TURBO DELPHI® EXPLORER [free]
BORLAND® TURBO DELPHI® PROFESSIONAL
BORLAND® TURBO DELPHI® FOR .NET EXPLORER [free]
BORLAND® TURBO DELPHI® FOR .NET PROFESSIONAL
BORLAND® TURBO C# EXPLORER [free]
BORLAND® TURBO C# PROFESSIONAL
BORLAND® TURBO C++ EXPLORER [free]
BORLAND® TURBO C++ PROFESSIONAL

Procurar neste site . . .