This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
Miguelo_FactuGES/Clientes/ListadoClientes.pas

279 lines
8.5 KiB
ObjectPascal

{
===============================================================================
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.