{ =============================================================================== Copyright (©) 2001. Rodax Software. =============================================================================== Los contenidos de este fichero son propiedad de Rodax Software titular del copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado, en su totalidad o en parte, con el permiso escrito de Rodax Software, o de acuerdo con los términos y condiciones establecidas en el acuerdo/contrato bajo el que se suministra. ----------------------------------------------------------------------------- Web: www.rodax-software.com =============================================================================== Fecha primera versión: 11-08-2002 Versión actual: 1.0.3 Fecha versión actual: 30-06-2004 =============================================================================== Modificaciones: Fecha Comentarios --------------------------------------------------------------------------- 09-03-2003 p253. En el listado de presupuesto de cliente añadir la columna de factura para ver si el presupuesto está facturado o no. 10-03-2003 p259. Informe con la lista de todos los presupuestos de cliente. 30-06-2004 p272. Adaptación a multiempresa. 30-06-2004 p274. Migración a FastReport. =============================================================================== } unit InfEstReportFacturasCliPro; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, InformeBase, IBDatabase, Db, FR_IBXDB, FR_Shape, FR_Class, FR_DSet, FR_DBSet, IBCustomDataSet, IBQuery, Tipos, RxMemDS, DBTables, MemTable; type TdmInfEstReportFacturasCliPro = class(TdmInformeBase) frdsTablaGeneral: TfrDBDataSet; TMemGeneral: TRxMemoryData; TMemResumen1: TRxMemoryData; frdsTablaResumen1: TfrDBDataSet; TMemResumen2: TRxMemoryData; frdsTablaResumen2: TfrDBDataSet; private FAno1: Variant; FAno2: Variant; FA1T1: Variant; FA2T1: Variant; FA3T1: Variant; FFichero: Variant; FEntidad: TRdxEntidad; protected procedure PrepararConsultas; override; procedure RellenarCabecera(Band: TfrBand); override; procedure RellenarBanda(Band: TfrBand); override; public function setDatosGeneral(const Datos: TRxMemoryData): Boolean; function setDatosResumen1(const Datos: TRxMemoryData): Boolean; function setDatosResumen2(const Datos: TRxMemoryData): Boolean; constructor Create(AOwner: TComponent); override; published property Ano1 : Variant read FAno1 write FAno1; property Ano2 : Variant read FAno2 write FAno2; property A1T1 : Variant read FA1T1 write FA1T1; property A2T1 : Variant read FA2T1 write FA2T1; property A3T1 : Variant read FA3T1 write FA3T1; property Fichero : Variant read FFichero write FFichero; property Entidad : TRdxEntidad read FEntidad write FEntidad; end; var dmInfEstReportFacturasCliPro: TdmInfEstReportFacturasCliPro; implementation {$R *.DFM} { TdmInformeListadoFacturasCli } uses RdxEmpresaActiva, Literales; constructor TdmInfEstReportFacturasCliPro.Create( AOwner: TComponent); begin inherited; FAno1 := NULL; FAno2 := NULL; FNombreInforme := 'ListadoInfEstFacturasCliPro.frf'; FEntidad := entInfEstFacCli; end; procedure TdmInfEstReportFacturasCliPro.PrepararConsultas; begin // end; procedure TdmInfEstReportFacturasCliPro.RellenarBanda(Band: TfrBand); var iCont : Integer; Objeto : TfrView; begin inherited; with Band do begin if Name = 'CabeceraGeneral' then begin for iCont := 0 to Objects.Count - 1 do begin Objeto := Objects[iCont]; if ((Objeto is TfrMemoView) and (Pos('Titulo1', Objeto.Name) > 0)) then begin with (Objeto as TfrMemoView) do begin Memo.Clear; Memo.Add('Valores del año ' + Ano1); end; end; if ((Objeto is TfrMemoView) and (Pos('Titulo2', Objeto.Name) > 0)) then begin with (Objeto as TfrMemoView) do begin Memo.Clear; if not VarIsNull(Ano2) then Memo.Add('Valores del año ' + Ano2); end end; if ((Objeto is TfrMemoView) and (Pos('Titulo3', Objeto.Name) > 0)) then begin with (Objeto as TfrMemoView) do begin Memo.Clear; if not VarIsNull(Ano2) then Memo.Add('Comparativa del año ' + Ano1 + ' respecto al año ' + Ano2); end end; end; end; //'CabeceraGeneral' if Name = 'PieGeneral' then begin for iCont := 0 to Objects.Count - 1 do begin Objeto := Objects[iCont]; if ((Objeto is TfrMemoView) and (Pos('A1T1', Objeto.Name) > 0)) then begin with (Objeto as TfrMemoView) do begin Memo.Clear; Memo.Add(A1T1); end end else if ((Objeto is TfrMemoView) and (Pos('A2T1', Objeto.Name) > 0)) then begin with (Objeto as TfrMemoView) do begin Memo.Clear; Memo.Add(A2T1); end end else if ((Objeto is TfrMemoView) and (Pos('A3T1', Objeto.Name) > 0)) then begin with (Objeto as TfrMemoView) do begin Memo.Clear; Memo.Add(A3T1); end end; if ((Objeto is TfrPictureView) and (Pos('Grafico', Objeto.Name) > 0)) then begin with (Objeto as TfrPictureView) do begin Picture.LoadFromFile(Fichero); end end; end; end; //'PieGeneral' if Name = 'CabeceraResumen1' then begin for iCont := 0 to Objects.Count - 1 do begin Objeto := Objects[iCont]; if ((Objeto is TfrMemoView) and (Pos('eTitResumen1', Objeto.Name) > 0)) then begin with (Objeto as TfrMemoView) do begin Memo.Clear; case Entidad of entInfEstFacCli: Memo.Add('Clientes con mayor capital facturado'); entInfEstFacPro: Memo.Add('Proveedores con mayor capital facturado'); end; end end end; end; //'CabeceraResumen1' if Name = 'CabeceraResumen2' then begin for iCont := 0 to Objects.Count - 1 do begin Objeto := Objects[iCont]; if ((Objeto is TfrMemoView) and (Pos('eTitResumen2', Objeto.Name) > 0)) then begin with (Objeto as TfrMemoView) do begin Memo.Clear; case Entidad of entInfEstFacCli: Memo.Add('Clientes con más descuento aplicado'); entInfEstFacPro: Memo.Add('Proveedores con más descuento aplicado'); end; end end end; end; //'CabeceraResumen2' end; end; procedure TdmInfEstReportFacturasCliPro.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 (Pos('NombreCliente', Objeto.Name) > 0)) then with (Objeto as TfrMemoView) do begin Memo.Clear; case Entidad of entInfEstFacCli: Memo.Add('INFORME ESTADÍSTICO DE FACTURAS DE CLIENTE'); entInfEstFacPro: Memo.Add('INFORME ESTADÍSTICO DE FACTURAS DE PROVEEDOR'); end; end; end; end; end; function TdmInfEstReportFacturasCliPro.setDatosGeneral(const Datos: TRxMemoryData): Boolean; begin TMemGeneral.LoadFromDataSet(Datos, -1, lmCopy); end; function TdmInfEstReportFacturasCliPro.setDatosResumen1(const Datos: TRxMemoryData): Boolean; begin TMemResumen1.LoadFromDataSet(Datos, -1, lmCopy); end; function TdmInfEstReportFacturasCliPro.setDatosResumen2( const Datos: TRxMemoryData): Boolean; begin TMemResumen2.LoadFromDataSet(Datos, -1, lmCopy); end; end.