{ =============================================================================== 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 --------------------------------------------------------------------------- 08-03-2003 Se han puesto componentes con calendario. 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. Actualización del informe a FastReport. =============================================================================== } unit ListadoPresupuestosCli; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ListadoBase, ExtCtrls, StdCtrls, RdxTitulos, RdxPaneles, cxControls, Tipos, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxCalendar, RdxCampos, RdxRadioButton, cxButtonEdit; type TfrListadoPresupuestosCli = class(TfrListadoBase) Label1: TLabel; FechaIni: TcxDateEdit; Label2: TLabel; FechaFin: TcxDateEdit; Bevel1: TBevel; rbCodigo: TRdxRadioButton; eCodigoIni: TLabel; NombreCliente: TRdxEdit; rbTodos: TRdxRadioButton; eInfoCriterios: TLabel; CodCli: TcxButtonEdit; procedure FechaIniPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); procedure FechaFinPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); procedure rbTodosClick(Sender: TObject); procedure rbCodigoClick(Sender: TObject); procedure CodCliPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure CodCliPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); procedure RdxFrameShow(Sender: TObject); private FFechaIni: Variant; FFechaFin: Variant; FCodigoCliente: Variant; procedure ActivarCliente; procedure DesactivarCliente; procedure SetCodigoCliente(const Value: Variant); procedure RefrescarInforme; override; protected procedure FreeContenido; override; procedure VerModal; override; public property CodigoCliente : Variant read FCodigoCliente write SetCodigoCliente; constructor Create (AOwner : TComponent); override; end; var frListadoPresupuestosCli: TfrListadoPresupuestosCli; implementation {$R *.DFM} { TfrListadoFacturasCli } uses Configuracion, Literales, InformeListadoPresupuestosCli, DateFunc, TablaClientes, Clientes, StrFunc; constructor TfrListadoPresupuestosCli.Create(AOwner: TComponent); begin inherited; ConfigurarFrame(Self, Self.Entidad); FFechaIni := DarDiaInicioMesDat; FFechaFin := DarDiaFinalMesDat; FechaIni.Date := FFechaIni; FechaFin.Date := FFechaFin; FCodigoCliente := NULL; FInforme := TdmInformeListadoPresupuestosCli.Create(Self); FInforme.Preview := FVistaPrevia.Preview; RefrescarInforme; end; procedure TfrListadoPresupuestosCli.FechaIniPropertiesValidate( Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); begin if (StrToDate(DisplayValue) > FechaFin.Date) then begin ErrorText := msgFechaIniMayor; Error := True; Exit; end; FFechaIni := StrToDate(DisplayValue); RefrescarInforme; end; procedure TfrListadoPresupuestosCli.FechaFinPropertiesValidate( Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); begin if (StrToDate(DisplayValue) < FechaIni.Date) then begin ErrorText := msgFechaIniMayor; Error := True; Exit; end; FFechaFin := StrToDate(DisplayValue); RefrescarInforme; end; procedure TfrListadoPresupuestosCli.RefrescarInforme; begin with (FInforme as TdmInformeListadoPresupuestosCli) do begin FechaIni := FFechaIni; FechaFin := FFechaFin; if rbTodos.Checked then Tipo := tiTodo else begin Tipo := tiPorCliente; if FCodigoCliente = Null then Exit; CodigoCliente := FCodigoCliente; NombreCliente := Self.NombreCliente.Text; end; Previsualizar; end; end; procedure TfrListadoPresupuestosCli.ActivarCliente; begin CodCli.Enabled := True; CodCli.SetFocus; NombreCliente.Enabled := True; end; procedure TfrListadoPresupuestosCli.DesactivarCliente; begin CodCli.Enabled := False; NombreCliente.Enabled := False; end; procedure TfrListadoPresupuestosCli.SetCodigoCliente(const Value: Variant); var DatosCliente : TDatosCliente; begin if Value = Null then Exit; if FCodigoCliente <> Value then begin FCodigoCliente := Value; DatosCliente := TDatosCliente.Create; try DatosCliente.Codigo := FCodigoCliente; dmTablaClientes.DarDatosCliente(DatosCliente); CodCli.Text := FCodigoCliente; NombreCliente.Text := DatosCliente.Nombre; finally DatosCliente.Free; end; RefrescarInforme; end; end; procedure TfrListadoPresupuestosCli.rbTodosClick(Sender: TObject); begin DesactivarCliente; RefrescarInforme; end; procedure TfrListadoPresupuestosCli.rbCodigoClick(Sender: TObject); begin ActivarCliente; RefrescarInforme; end; procedure TfrListadoPresupuestosCli.CodCliPropertiesButtonClick( Sender: TObject; AButtonIndex: Integer); begin ModoModal := Seleccionar; ContenidoModal := TfrClientes.Create(Self); end; procedure TfrListadoPresupuestosCli.CodCliPropertiesValidate( Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); begin if EsCadenaVacia (DisplayValue) then begin Error := True; ErrorText := msgCliFaltaCodigo; Exit; end; if (dmTablaClientes.ValidarCodigo(DisplayValue)) then begin DisplayValue := dmTablaClientes.FormatearCodigo(DisplayValue); if (not dmTablaClientes.ExisteCodigo(DisplayValue)) then begin Error := True; ErrorText := Format(msgCliCodCliNoExiste, [DisplayValue]); Exit; end; end else begin Error := True; ErrorText := Format(msgCliCodCliIncorrecto, [DisplayValue]); Exit; end; CodigoCliente := DisplayValue; end; procedure TfrListadoPresupuestosCli.VerModal; begin if (ContenidoModal is TfrClientes) then (ContenidoModal as TfrClientes).CodigoCliente := FCodigoCliente; inherited; end; procedure TfrListadoPresupuestosCli.FreeContenido; begin if (ContenidoModal is TfrClientes) then CodigoCliente := (ContenidoModal as TfrClientes).CodigoCliente; inherited; end; procedure TfrListadoPresupuestosCli.RdxFrameShow(Sender: TObject); begin DesactivarCliente; FechaIni.SetFocus; end; end.