unit InformeLibro; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, InformeBase, FR_IBXDB, FR_Shape, FR_DSet, FR_DBSet, FR_Class, DB, IBCustomDataSet, IBQuery, RdxEmpresaActiva; type TdmInformeLibro = class(TdmInformeBase) TablaCab: TfrDBDataSet; TablaDet: TfrDBDataSet; TablaLibros: TIBQuery; TablaDetallesLibros: TIBQuery; private FTipoLibro : Variant; FFechaInicio : TDateTime; FFechaFin : TDateTime; protected procedure RellenarCabecera(Band: TfrBand); override; procedure PrepararConsultas; override; public constructor Create(AOwner: TComponent); override; published property TipoLibro : variant read FTipoLibro write FTipoLibro; property FechaInicio : TDateTime read FFechaInicio write FFechaInicio; property FechaFin : TDateTime read FFechaFin write FFechaFin; end; var dmInformeLibro: TdmInformeLibro; implementation {$R *.dfm} uses StrFunc, BaseDatos, TablaEmpresas; { TdmInformeBase1 } constructor TdmInformeLibro.Create(AOwner: TComponent); begin inherited; FNombreInforme := 'InformeLibro.frf'; end; procedure TdmInformeLibro.PrepararConsultas; begin inherited; with TablaLibros do begin Database := FBaseDatos; Transaction := FTransaccion; SQL.Clear; SQL.Add('select * from LIBROS '); SQL.Add('where CODIGOEMPRESA = :CODIGOEMPRESA'); SQL.Add('and TIPO = :TIPO'); ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo; ParamByName('TIPO').AsString := FTipoLibro; Prepare; end; with TablaDetallesLibros do begin Database := FBaseDatos; Transaction := FTransaccion; SQL.Clear; SQL.Add('select * from DETALLESLIBROS '); SQL.Add('where CODIGOEMPRESA = :CODIGOEMPRESA '); SQL.Add('and TIPOLIBRO = :TIPOLIBRO '); SQL.Add('and FECHAENTRADA between :FECHAINI and :FECHAFIN '); ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo; ParamByName('TIPOLIBRO').AsString := FTipoLibro; ParamByName('FECHAINI').AsDate := FFechaInicio; ParamByName('FECHAFIN').AsDate := FFechaFin; Prepare; end; end; procedure TdmInformeLibro.RellenarCabecera(Band: TfrBand); var iCont : Integer; Objeto : TfrView; begin inherited; with Band do begin for iCont := 0 to Objects.Count - 1 do begin Objeto := Objects[iCont]; if ((Objeto is TfrMemoView) and (Objeto.Name = 'CabParametros')) then begin with (Objeto as TfrMemoView) do begin Memo.Clear; Memo.Add('Empresa: ' + EmpresaActiva.NombreComercial); Memo.Add('Rango de fechas: ' + DateToStr(FechaInicio) + ' - ' + DateToStr(FechaFin)); end; end; end; end; { inherited; with Band do begin for iCont := 0 to Objects.Count - 1 do begin Objeto := Objects[iCont]; if ((Objeto is TfrMemoView) and (Objeto.Name = 'FechaInicio')) then begin with (Objeto as TfrMemoView) do begin begin Font.Name := 'Tahoma'; Font.Size := 10; Alignment := frtaLeft; Memo.Clear; Memo.Add(FechaInicio); end end; end; if ((Objeto is TfrMemoView) and (Objeto.Name = 'FechaFin')) then begin with (Objeto as TfrMemoView) do begin begin Font.Name := 'Tahoma'; Font.Size := 10; Alignment := frtaLeft; Memo.Clear; Memo.Add(FechaFin); end end; end; end; end; } end; end.