{ =============================================================================== 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: 08-11-2002 Versión actual: 1.0.1 Fecha versión actual: 25-06-2004 =============================================================================== Modificaciones: Fecha Comentarios --------------------------------------------------------------------------- 25-06-2004 p272. Adaptación a multiempresa. 25-06-2004 p274. Actualización del informe a FastReport. =============================================================================== } unit InformeEstadoObraHistorica; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, InformeBase, FR_IBXDB, FR_Shape, FR_Class, Db, IBCustomDataSet, IBQuery, IBDatabase, FR_DSet, FR_DBSet, Tipos; type TdmInformeEstadoObraHistorica = class(TdmInformeBase) TablaEstado: TIBQuery; frdsTablaEstado: TfrDBDataSet; private FFamIni: string; FFamFin: string; FTipo: TTipoInforme; FDesIni: string; FDesFin: string; FFechaCierre: TDate; FCodigoObra: Integer; FNombreObra: string; procedure InformeGetParametersText(Memo : TStringList); protected procedure PrepararConsultas; override; public constructor Create(AOwner: TComponent); override; published property Tipo : TTipoInforme read FTipo write FTipo; property DescripcionIni : string read FDesIni write FDesIni; property DescripcionFin : string read FDesFin write FDesFin; property FamiliaIni : string read FFamIni write FFamIni; property FamiliaFin : string read FFamFin write FFamFin; property CodigoObra : Integer read FCodigoObra write FCodigoObra; property NombreObra : string read FNombreObra write FNombreObra; property FechaCierre : TDate read FFechaCierre write FFechaCierre; end; var dmInformeEstadoObraHistorica: TdmInformeEstadoObraHistorica; implementation {$R *.DFM} { TdmInformeEstadoAlmacen } uses RdxEmpresaActiva, Literales; constructor TdmInformeEstadoObraHistorica.Create(AOwner: TComponent); begin inherited; FNombreInforme := 'ListadoEstadoObraHistorica.frf'; OnGetParametersText := InformeGetParametersText; Tipo := tiTodo; end; procedure TdmInformeEstadoObraHistorica.InformeGetParametersText( Memo: TStringList); begin with Memo do begin Add('Obra: ' + IntToStr(CodigoObra) + ' - ' + NombreObra); case Tipo of tiTodo : Add(msgInfIntervaloTodosArt); tiPorDescripcion : Add(SysUtils.Format(msgInfIntervaloDesArt, [FDesIni, FDesFin])); tiPorFamilias : Add(SysUtils.Format(msgInfIntervaloFam, [FFamIni, FFamFin])); end; end; end; procedure TdmInformeEstadoObraHistorica.PrepararConsultas; begin TablaEstado.Database := FBaseDatos; TablaEstado.Transaction := FTransaccion; with TablaEstado.SQL do begin Clear; case Tipo of tiTodo : begin Add('select CODIGOARTICULO, FAMILIA, DESCRIPCION, '); Add('UNIDADESMEDIDA, EXISTENCIAS '); Add('from ESTADOOBRASHISTORICAS '); Add('where CODIGOOBRA = :CODIGOOBRA '); Add('and FECHACIERRE = :FECHACIERRE '); Add('and CODIGOEMPRESA = :CODIGOEMPRESA '); Add('order by CODIGOARTICULO '); end; tiPorDescripcion: begin Add('select CODIGOARTICULO, FAMILIA, DESCRIPCION, '); Add('UNIDADESMEDIDA, EXISTENCIAS '); Add('from ESTADOOBRASHISTORICAS '); Add('where CODIGOOBRA = :CODIGOOBRA '); Add('and FECHACIERRE = :FECHACIERRE '); Add('and CODIGOEMPRESA = :CODIGOEMPRESA '); Add('and DESCRIPCION between :DESCRIPCIONINI and :DESCRIPCIONFIN '); Add('order by CODIGOARTICULO '); TablaEstado.ParamByName('DESCRIPCIONINI').AsString := FDesIni; TablaEstado.ParamByName('DESCRIPCIONFIN').AsString := FDesFin; end; tiPorFamilias : begin Add('select CODIGOARTICULO, FAMILIA, DESCRIPCION, '); Add('UNIDADESMEDIDA, EXISTENCIAS '); Add('from ESTADOOBRASHISTORICAS '); Add('where CODIGOOBRA = :CODIGOOBRA '); Add('and FECHACIERRE = :FECHACIERRE '); Add('and CODIGOEMPRESA = :CODIGOEMPRESA '); Add('and FAMILIA between :FAMILIAINI and :FAMILIAFIN '); Add('order by CODIGOARTICULO '); TablaEstado.ParamByName('FAMILIAINI').AsString := FFamIni; TablaEstado.ParamByName('FAMILIAFIN').AsString := FFamFin; end; end; TablaEstado.ParambyName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo; TablaEstado.ParambyName('CODIGOOBRA').AsInteger := CodigoObra; TablaEstado.ParambyName('FECHACIERRE').AsDate := FechaCierre; end; end; end.