Relatorios em Delphi

Relatorios em Delphi


Para se fazer relatórios com delphi há possibilidade de usar o componente integrado a sua API chamado quick report. Onde o mesmo possibilita varias coisas somente arrastando e soltando em cima da folha de relatório. O quick report se manteve ativo ate o delphi 7

Vamos usar basicamente duas tabelas pincipais do DBDEMOS (ORDERS e ITEMS) e outras relacionadas (CUSTORMER, EMPLOYEE, PARTS ).

Abra o Delphi, adicione dois(2) Forms (Form1 e Form2).

1º Passo: No Form2 adicione:

  • TQuickRep (QuickRep1);

  • TQRBand - opção BandType = rbTitle (QRBand1);

  • TQRGroup (QRGroup1)

  • e outro TQRBand - opção BandType = rbDetail (QRBand2).


2º Passo: Adicione Duas TQuery's (vamos chamar de QryOrders e QryItems) e na opção DataBaseName escolha DBDEMOS e adicione um DataSource (DsOrders) na opção. DataSet coloque a QryOrders

No QuickRep1 na opção DataSet coloque a QryOrders.

- Na QryOrders:

  Citar

Select O.ORDERNO, O.SALEDATE, O.CUSTNO, C.COMPANY, O.EMPNO,E.LASTNAME||' '||E.FIRSTNAME NAME, O.ITEMSTOTAL

from ORDERS O, CUSTOMER C, EMPLOYEE E

Where E.EMPNO = O.EMPNO and

C.CUSTNO = O.CUSTNO and

O.ORDERNO = :OrderNo


No Params: no parametro OrderNo na opção Data Type escolha a opção Integer;

- Na QryItems:

  Citar

Select I.PARTNO, P.DESCRIPTION, I.QTY, P.LISTPRICE, I.QTY * P.LISTPRICE as TOTALFrom ITEMS I, PARTS P

Where P.PARTNO = I.PARTNO and I.ORDERNO = :ORDERNO


No Params: faça igual a qryOrders;

Na Opção DataSource coloque o DsOrders.

3º Passo:

- Adcicione Sete (7) QRDBText dentro do QRBand - rbTitle, na opção DataSet coloque QryOrders, e na opção DataFields coloque em cada QRDBText um campo da tabela.

- No QRGroup adicione cinco (5) QRLabel's um para cada campo da QryITEMS, coloque um do lado do outro, e nos Catipions coloque: Part, Description, Qty, ListPrice e Total, respectivamente.

- Agora no QRBand rbDetail adicione cinco QRDBText, um para cada campo da QryITEMS, na opção DataSet coloque QryItems e no DataField os respectivos campos e organize de acordo com os QRLabels (observe os espaços necessários entre cada Campo, OK!).

4º Agora no Form1:

Adicione a Unit2 no uses (Unit2 refere-se ao Form2 onde foi criado o relatorio):

  Citar

var  Form1: TForm1;

implementation

uses Unit2;

{$R *.DFM}


Adicone tambem: um TEdit (Edit1) e um TButton (Button1) no onClick do Button coloque:

  Citar

procedure TForm1.Button1Click(Sender: TObject);begin

Form2 := TForm2.Create(Self);

Form2.QryOrders.Close;

Form2.QryOrders.ParamByName('ORDERNO').AsInteger := StrToInt(Edit1.text);

Form2.QryOrders.Open;

Form2.QryItems.Close;

Form2.QryItems.Open;

Form2.QuickRep1.Preview;

end;


Pra testar você pode usar alguns valores como 1003...1104... ect...

Bom é só isso! o restante vai de sua criatividade, explore os recursos do quickreport, coloque linhas, grades essas coisas.

Autor: Thyago Henrique Pacher

Nosso pessoal é especializado em produção de sistemas para nuvem de acordo com o que for necessário para sua empresa e altamente configurável. Entre em contato conosco e podera ter seu sistema até hoje mesmo com máximo de garantia de dados salvos na nuvem e podendo recupera-los a hora que quiser. Temos em nosso portfólio o desenvolvimento de bons e grandes sistemas cujo são voltados para condominios ficando em GestCCon Sistema Concierge, JedisaMunck site para muncks, Site para advogados Ronald Arruda, empresas de consignação de créditos, sites institucionais, sites para cursos online com integração a plataformas famosas tais como moodle.
Utilizamos no nosso dia a dia as melhores ferramentasimagem autor

Comentários

Postagens mais visitadas deste blog

Api para correspondente bancário - Analise Info