quick reports

6
ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO ESCUELA DE INGENIERIA ELECTRONICA Y TECNOLOGIA EN COMPUTACION Nombre: Tony Flores P. Fecha de entrega: 16 de Julio del 2003 Semestre: Cuarto Período Académico: Marzo - Septiembre 2003 QUICK REPORTS INTRODUCCIÓN El Quick Report es el encargado de crear reportes estándar que se realiza en Delphi. Características - Simple interfaz de usuario - Completo control de esquema de página: bordes, posición, orientación, tamaños, copias, márgenes, etc. - Ilimitado tamaño de objetos Memos, RTF, etc. - Instantáneo Preview - Multilíneas en etiquetas de texto - Reportes compuestos cancatenados en uno solo (Sistema de reportes en una sola hoja) - Fácil agrupación en ilimitados niveles - Se puede grabar el reporte en PDF, HTML, ASCII, etc. - Tiene un avanzado evaluador de expresiones - Permite usar zoom - Tiene 18 componentes para imprimir - El código tiene 17000 instrucciones y se enlaza automáticamente al .EXE Para crear un reporte 1. Ir a File/New/Report 2. Direccionar al formulario la unidad al modulo de datos, ejm: Implementation Uses UNIT2; 3. Seleccionar el origen de datos, ejm: Dataset:Datamodule2.TFacturas 4. Activar las bandas que se van a utilizar, ejm: HasTitle: true HasPageHeader: true HasDetail: true, etc. Algunas propiedades del Quick Report son: FONTS: Draft, Roman, etc. FRAMES: color, style, width, etc. PAGE: BottonMargin, columns, length, orientation, ruler, width, etc. PRINTER SETTING: copies, duplex, firtspage, lastpage, etc. QREPORT: QRSubdetail, QRBand, QRLAVEL, QRDBText, QRMemo, QRImage, etc. OBJETIVOS - Crear un reporte MasterDetail en Delphi - Imprimir el reporte y explicar el enlace DESARROLLO Luego de haber colocado todos los objetos en el QuickReport y en la forma se procedió a escribir los siguientes códigos: FORMA:

Upload: tony-fernando-flores

Post on 10-Oct-2014

127 views

Category:

Documents


3 download

TRANSCRIPT

ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO

ESCUELA DE INGENIERIA ELECTRONICA Y TECNOLOGIA EN COMPUTACION Nombre: Tony Flores P. Fecha de entrega: 16 de Julio del 2003 Semestre: Cuarto Período Académico: Marzo - Septiembre 2003

QUICK REPORTS INTRODUCCIÓN El Quick Report es el encargado de crear reportes estándar que se realiza en Delphi. Características

- Simple interfaz de usuario - Completo control de esquema de página: bordes, posición, orientación, tamaños, copias,

márgenes, etc. - Ilimitado tamaño de objetos Memos, RTF, etc. - Instantáneo Preview - Multilíneas en etiquetas de texto - Reportes compuestos cancatenados en uno solo (Sistema de reportes en una sola hoja) - Fácil agrupación en ilimitados niveles - Se puede grabar el reporte en PDF, HTML, ASCII, etc. - Tiene un avanzado evaluador de expresiones - Permite usar zoom - Tiene 18 componentes para imprimir - El código tiene 17000 instrucciones y se enlaza automáticamente al .EXE

Para crear un reporte

1. Ir a File/New/Report 2. Direccionar al formulario la unidad al modulo de datos, ejm:

Implementation Uses UNIT2; 3. Seleccionar el origen de datos, ejm:

Dataset:Datamodule2.TFacturas 4. Activar las bandas que se van a utilizar, ejm:

HasTitle: true HasPageHeader: true HasDetail: true, etc.

Algunas propiedades del Quick Report son: FONTS: Draft, Roman, etc. FRAMES: color, style, width, etc. PAGE: BottonMargin, columns, length, orientation, ruler, width, etc. PRINTER SETTING: copies, duplex, firtspage, lastpage, etc. QREPORT: QRSubdetail, QRBand, QRLAVEL, QRDBText, QRMemo, QRImage, etc. OBJETIVOS

- Crear un reporte MasterDetail en Delphi - Imprimir el reporte y explicar el enlace

DESARROLLO Luego de haber colocado todos los objetos en el QuickReport y en la forma se procedió a escribir los siguientes códigos: FORMA:

unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Mask, DBCtrls, Grids, DBGrids; type Tform1 = class(TForm) Panel1: TPanel; Timer1: TTimer; Panel2: TPanel; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; DBEdit1: TDBEdit; DBEdit2: TDBEdit; DBEdit3: TDBEdit; DBEdit4: TDBEdit; DBEdit5: TDBEdit; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; DBNavigator1: TDBNavigator; DBGrid1: TDBGrid; Button6: TButton; CheckBox1: TCheckBox; MaskEdit1: TMaskEdit; MaskEdit2: TMaskEdit; procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: Tform1; implementation uses unit3, Unit2; {$R *.DFM} procedure Tform1.Timer1Timer(Sender: TObject); begin panel1.caption:=timetostr(time); end; procedure Tform1.FormCreate(Sender: TObject); begin

panel2.caption:=formatdatetime('dddd,mmmm,d,yyyy',now); DataModule3.TFACTURAS.Open; DataModule3.TDESCRIPCION.Open; maskedit1.Visible:=false; maskedit2.Visible:=false; end; procedure Tform1.Button1Click(Sender: TObject); begin if Messagedlg('DESEA OTRA FACTURA?',mtConfirmation,[Mbyes,Mbno],1)=mryes then begin button1.Enabled:=false; button4.Enabled:=false; button5.Enabled:=false; button6.Enabled:=false; dbedit2.Visible:=false; dbedit5.Visible:=false; checkbox1.Enabled:=false; DataModule3.TFACTURAS.Insert; DBGrid1.Readonly:=true; maskedit1.Visible:=true; maskedit2.Visible:=true; dbnavigator1.enabled:=false; dbgrid1.Enabled:=false; end; end; procedure Tform1.FormClose(Sender: TObject; var Action: TCloseAction); begin DataModule3.TFACTURAS.Close; DataModule3.TDESCRIPCION.Close; end; procedure Tform1.Button2Click(Sender: TObject); begin TRY DataModule3.TFACTURAS.Fields[1].asstring:=UpperCase(DbEdit3.text); DataModule3.TFACTURAS.Fields[2].asstring:=maskedit1.text; DataModule3.TFacturas.Fields[3].asstring:=UpperCase(DbEdit4.text); DataModule3.TFACTURAS.Fields[4].asstring:=maskedit2.text; if Messagedlg('DESEA REGISTRAR LA FACTURA?',mtConfirmation,[Mbyes,Mbno],1)=mryes then begin if(DBEdit2.Text<>' ')then begin DataModule3.TFACTURAS.Post; DBGrid1.ReadOnly:=false; end else showmessage('INGRESE LOS DATOS'); end; EXCEPT if(DBEdit2.Text<>' ')then ShowMessage('FACTURA YA REGISTRADA'); END; button1.Enabled:=false; button4.Enabled:=false;

button5.Enabled:=false; button6.Enabled:=false; dbedit2.Visible:=false; dbedit5.Visible:=false; checkbox1.Enabled:=false; maskedit1.Visible:=true; maskedit2.Visible:=true; dbnavigator1.enabled:=false; dbgrid1.Enabled:=false; end; procedure Tform1.Button3Click(Sender: TObject); begin if Messagedlg('DESEA CANCELAR LA FACTURA?',mtConfirmation,[Mbyes,Mbno],1)=mryes then begin DataModule3.TFACTURAS.Cancel; DBGrid1.ReadOnly:=false; end; button1.Enabled:=true; button4.Enabled:=true; button5.Enabled:=true; button6.Enabled:=true; dbedit2.Visible:=true; dbedit5.Visible:=true; checkbox1.Enabled:=true; maskedit1.Visible:=false; maskedit2.Visible:=false; dbnavigator1.enabled:=true; dbgrid1.Enabled:=true; end; procedure Tform1.Button4Click(Sender: TObject); begin if Messagedlg('DESEA ELIMINAR LA FACTURA?',mtConfirmation,[Mbyes,Mbno],1)=mryes then begin DataModule3.TFACTURAS.Delete; DataModule3.TDESCRIPCION.First; while not DataModule3.TDESCRIPCION.eof do begin DataModule3.TDESCRIPCION.Delete; DataModule3.TDESCRIPCION.Next; end; end; end; procedure Tform1.Button5Click(Sender: TObject); begin Close; end; procedure Tform1.Button6Click(Sender: TObject); var nro:string; begin nro:=DBEdit1.text; DataModule3.TFACTURAS.Filter:='N_FACTURA='+nro+''; DataModule3.TFACTURAS.Filtered:=True; if checkbox1.checked then RepFactura.preview

else RepFactura.print; DataModule3.TFACTURAS.Filtered:=False; end; end. QUICK REPORT: unit Unit2; interface uses Windows, SysUtils, Messages, Classes, Graphics, Controls, StdCtrls, ExtCtrls, Forms, Quickrpt, QRCtrls, jpeg; type TRepFactura = class(TQuickRep) QRSubDetail1: TQRSubDetail; GroupFooterBand1: TQRBand; GroupHeaderBand1: TQRBand; QRDBText1: TQRDBText; QRDBText2: TQRDBText; QRDBText3: TQRDBText; QRDBText4: TQRDBText; QRDBText5: TQRDBText; QRLabel1: TQRLabel; QRLabel2: TQRLabel; QRLabel3: TQRLabel; QRLabel4: TQRLabel; QRDBText6: TQRDBText; QRDBText7: TQRDBText; QRDBText8: TQRDBText; QRDBText9: TQRDBText; QRLabel5: TQRLabel; QRLabel6: TQRLabel; QRLabel7: TQRLabel; QRLabel8: TQRLabel; QRLabel9: TQRLabel; QRShape1: TQRShape; QRShape2: TQRShape; QRShape3: TQRShape; QRShape4: TQRShape; QRShape5: TQRShape; QRShape6: TQRShape; QRShape7: TQRShape; QRExpr1: TQRExpr; QRLabel10: TQRLabel; QRLabel11: TQRLabel; QRExpr2: TQRExpr; QRExpr3: TQRExpr; QRLabel12: TQRLabel; QRImage1: TQRImage; QRLabel13: TQRLabel; QRShape8: TQRShape; QRShape9: TQRShape; QRShape10: TQRShape; QRLabel14: TQRLabel; QRLabel15: TQRLabel; QRLabel16: TQRLabel; QRImage2: TQRImage; QRLabel17: TQRLabel;

QRLabel18: TQRLabel; private public end; var RepFactura: TRepFactura; implementation uses unit3; {$R *.DFM} end. REPORTE

CONCLUSIONES

- Se debe crear reportes en las empresas ya que es muy importante tener resultados físicos y no solo mostrarlos por medio de la computadora.

- Que la creación de reportes con master details es un poco complicado cuando no se tiene los equipos en funcionamiento para realizar una práctica correcta en el laboratorio.

RECOMENDACIONES

- Se recomienda verificar todos los equipos del laboratorio antes de realizar una práctica para poder realizarlas de mejor manera y saber si estamos realizando la práctica de forma correcta.

- Se recomienda que todas las empresas manejen reportes tanto en forma virtual como en forma física.

BIBLIOGRAFÍA

- Menú de Ayuda del Borland Delphi 6 - www.clubdelphi.com