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:
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:
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):
var Form1: TForm1;
implementation
uses Unit2;
{$R *.DFM}
Adicone tambem: um TEdit (Edit1) e um TButton (Button1) no onClick do Button coloque:
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 ferramentas
Comentários
Postar um comentário