{ =============================================================================== Copyright (©) 2003. 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: 04-03-2003 Versión actual: 1.0.1 Fecha versión actual: 13-08-2003 =============================================================================== Modificaciones: Fecha Comentarios --------------------------------------------------------------------------- 13-08-2003 Se ha cambiado el intervalo a intervalo de nombre en vez de intervalo de códigos de cliente. =============================================================================== } unit ListadoClientes; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, RdxFrame, RdxBotones, RdxPaneles, RdxBarras, cxControls, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, AdvPanel, ExtCtrls, RdxTitulos, cxDropDownEdit, VistaPrevia, InformeListadoClientes, TablaClientes, Entidades, cxCalendar; type TfrListadoClientes = class(TRdxFrame) pnlTitulo: TRdxPanelTituloOperacion; pnlCuerpo: TPanel; pnlProveedor: TAdvPanel; eCodigoCliente: TLabel; Label2: TLabel; pnlVistaPrevia: TPanel; Label1: TLabel; NombreCliIni: TcxButtonEdit; NombreCliFin: TcxButtonEdit; Label3: TLabel; FechaIni: TcxDateEdit; eFechaFin: TLabel; FechaFin: TcxDateEdit; procedure CodigoCliIniPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure CodigoCliFinPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure NombreCliIniPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); procedure NombreCliFinPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); 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); private FVistaPrevia : TfrVistaPrevia; FInforme : TdmInformeListadoClientes; FClienteIni : TDatosCliente; FClienteFin : TDatosCliente; FCodigoClienteAux : Variant; procedure RecogerParametrosInforme; protected procedure VerModal; override; procedure FreeContenido; override; function CloseFrame : Boolean; override; function CambiarEntidad(EntidadAnterior, Entidad : TRdxEntidad): Boolean; override; public constructor Create(AOwner : TComponent); override; destructor Destroy; override; end; var frListadoClientes: TfrListadoClientes; implementation {$R *.dfm} { TfrListadoClientes } uses Literales, Mensajes, StrFunc, DateUtils, InformeBase, cxDateUtils, Clientes, RdxFrameClientes, configuracion, TablaTrimestres; constructor TfrListadoClientes.Create(AOwner: TComponent); var NombreAux : String; begin inherited Create(AOwner); Entidad := entListadoClientes; FClienteIni := TDatosCliente.Create; FClienteFin := TDatosCliente.Create; NombreAux := dmTablaClientes.DarNombreCliMin; FClienteIni.Codigo := ''; FClienteIni.Nombre := NombreAux; FClienteIni.ObtenerDatos; NombreCliIni.EditingText := FClienteIni.Nombre; NombreAux := dmTablaClientes.DarNombreCliMax; FClienteFin.Codigo := ''; FClienteFin.Nombre := NombreAux; FClienteFin.ObtenerDatos; NombreCliFin.EditingText := FClienteFin.Nombre; FVistaPrevia := TfrVistaPrevia.Create(Self); FVistaPrevia.Parent := pnlVistaPrevia; FInforme := TdmInformeListadoClientes.Create(Self); FInforme.Preview := FVistaPrevia.Preview; FechaIni.Date := dmTablaTrimestres.darFechaIniTrimestre(dmTablaTrimestres.darTrimestreActual); FechaFin.Date := dmTablaTrimestres.darFechaFinTrimestre(dmTablaTrimestres.darTrimestreActual); FInforme.FechaAltaIni := FechaIni.Date; FInforme.FechaAltaFin := FechaFin.Date; RecogerParametrosInforme; end; destructor TfrListadoClientes.Destroy; begin FInforme.Free; FClienteIni.Free; FClienteFin.Free; inherited; end; procedure TfrListadoClientes.RecogerParametrosInforme; begin if not Assigned(FInforme) then Exit; with FInforme do begin NombreIni := FClienteIni.Nombre; NombreFin := FClienteFin.Nombre; Previsualizar; end; end; procedure TfrListadoClientes.CodigoCliIniPropertiesButtonClick( Sender: TObject; AButtonIndex: Integer); begin ContenidoModal := TfrClientes.Create(Self); if FCodigoClienteAux <> Null then begin FClienteIni.Codigo := FCodigoClienteAux; FClienteIni.ObtenerDatos; NombreCliIni.EditingText := FClienteIni.Nombre; PostMessage(NombreCliIni.Handle,WM_KEYDOWN,VK_RETURN,0); end; end; function TfrListadoClientes.CloseFrame: Boolean; begin FInforme.Preview := NIL; (FVistaPrevia as TRdxFrame).CloseFrame; Result := inherited CloseFrame; end; procedure TfrListadoClientes.FreeContenido; begin if (ContenidoModal is TRdxFrameClientes) then FCodigoClienteAux := (ContenidoModal as TRdxFrameClientes).CodigoCliente; inherited; end; procedure TfrListadoClientes.VerModal; begin if (ContenidoModal is TRdxFrameClientes) then (ContenidoModal as TRdxFrameClientes).CodigoCliente := FCodigoClienteAux; inherited; end; procedure TfrListadoClientes.CodigoCliFinPropertiesButtonClick( Sender: TObject; AButtonIndex: Integer); begin ContenidoModal := TfrClientes.Create(Self); if FCodigoClienteAux <> Null then begin FClienteFin.Codigo := FCodigoClienteAux; FClienteFin.ObtenerDatos; NombreCliFin.EditingText := FClienteFin.Nombre; PostMessage(NombreCliFin.Handle,WM_KEYDOWN,VK_RETURN,0); end; end; procedure TfrListadoClientes.NombreCliIniPropertiesValidate( Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); begin if AnsiCompareText(DisplayValue, NombreCliFin.Text) > 0 then begin ErrorText := msgCliIniMayor; Error := True; Exit; end; FClienteIni.Nombre := DisplayValue; FClienteIni.Codigo := ''; RecogerParametrosInforme; end; procedure TfrListadoClientes.NombreCliFinPropertiesValidate( Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); begin if AnsiCompareText(DisplayValue, NombreCliIni.Text) < 0 then begin ErrorText := msgCliIniMayor; Error := True; Exit; end; FClienteFin.Nombre := DisplayValue; FClienteFin.Codigo := ''; RecogerParametrosInforme; end; function TfrListadoClientes.CambiarEntidad(EntidadAnterior, Entidad: TRdxEntidad): Boolean; begin inherited CambiarEntidad(EntidadAnterior, Entidad); ConfigurarFrame(Self, Self.Entidad); end; procedure TfrListadoClientes.FechaIniPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); var ADate : TDateTime; begin try if DisplayValue > FechaFin.Date then begin ErrorText := msgFechasMal; Error := True; Exit; end; TextToDateEx(DisplayValue, ADate); FInforme.FechaAltaIni := ADate; FInforme.Previsualizar; except Error := True; ErrorText := msgFechaNoValida; end; end; procedure TfrListadoClientes.FechaFinPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); var ADate : TDateTime; begin try if DisplayValue < FechaIni.Date then begin ErrorText := msgFechasMal; Error := True; Exit; end; TextToDateEx(DisplayValue, ADate); FInforme.FechaAltaFin := ADate; FInforme.Previsualizar except Error := True; ErrorText := msgFechaNoValida; end; end; end.