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

229 lines
6.8 KiB
ObjectPascal
Raw Permalink Normal View History

{
===============================================================================
Copyright (<EFBFBD>) 2001. Rodax Software.
===============================================================================
Los contenidos de este fichero son propiedad de Rodax Software titular del
copyright. Este fichero s<EFBFBD>lo podr<EFBFBD> ser copiado, distribuido y utilizado,
en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
acuerdo con los t<EFBFBD>rminos y condiciones establecidas en el acuerdo/contrato
bajo el que se suministra.
-----------------------------------------------------------------------------
Web: www.rodax-software.com
===============================================================================
Fecha primera versi<EFBFBD>n: 12-10-2002
Versi<EFBFBD>n actual: 1.0.1
Fecha versi<EFBFBD>n actual: 01-05-2004
===============================================================================
Modificaciones:
Fecha Comentarios
---------------------------------------------------------------------------
19-11-2003 p268. Cambiar funcion ImprimirListadoCli, ExportarListadoCli,
bImprimirClick y bExportarClick para validar intervalo y en
lugar por codigo se realice por nombre alfabetico.
01-05-2004 p274. Actualizaci<EFBFBD>n del informe a FastReport.
===============================================================================
}
unit ListarClientes;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ListadoBase, ExtCtrls, StdCtrls, RdxTitulos, RdxPaneles, TablaClientes,
cxControls, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxButtonEdit,
RdxRadioButton;
type
TfrListarClientes = class(TfrListadoBase)
ClienteIni: TcxButtonEdit;
ClienteFin: TcxButtonEdit;
rbTodos: TRdxRadioButton;
rbArticulos: TRdxRadioButton;
Label1: TLabel;
procedure ClienteIniPropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure ClienteFinPropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure ClienteIniPropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption;
var Error: Boolean);
procedure ClienteFinPropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption;
var Error: Boolean);
procedure rbTodosClick(Sender: TObject);
procedure rbArticulosClick(Sender: TObject);
procedure RdxFrameShow(Sender: TObject);
private
FClienteIni : TDatosCliente;
FClienteFin : TDatosCliente;
FCodigoClienteAux : Variant;
procedure ActivarIntervalo;
procedure DesactivarIntervalo;
procedure RefrescarInforme; override;
protected
procedure FreeContenido; override;
public
constructor Create(AOwner : TComponent); override;
destructor Destroy; override;
end;
var
frListarClientes: TfrListarClientes;
implementation
{$R *.DFM}
{ TfrListarClientes }
uses
RdxFrameClientes, Configuracion, InformeListadoClientes, Clientes,
Literales;
constructor TfrListarClientes.Create(AOwner: TComponent);
var
NombreAux : String;
begin
inherited Create(AOwner);
ConfigurarFrame(Self, Self.Entidad);
FClienteIni := TDatosCliente.Create;
FClienteFin := TDatosCliente.Create;
FCodigoClienteAux := NULL;
FClienteIni.Codigo := dmTablaClientes.DarClienteMin;
dmTablaClientes.DarDatosCliente(FClienteIni);
ClienteIni.EditingText := FClienteIni.Nombre;
FClienteFin.Codigo := dmTablaClientes.DarClienteMax;
dmTablaClientes.DarDatosCliente(FClienteFin);
ClienteFin.EditingText := FClienteFin.Nombre;
FInforme := TdmInformeListadoClientes.Create(Self);
FInforme.Preview := FVistaPrevia.Preview;
RefrescarInforme;
end;
destructor TfrListarClientes.Destroy;
begin
FreeAndNil(FClienteIni);
FreeAndNil(FClienteFin);
// El informe se destruye en el padre
inherited;
end;
procedure TfrListarClientes.ClienteIniPropertiesButtonClick(
Sender: TObject; AButtonIndex: Integer);
begin
ContenidoModal := TfrClientes.Create(Self);
if not VarIsNull(FCodigoClienteAux) then
begin
FClienteIni.Codigo := FCodigoClienteAux;
dmTablaClientes.DarDatosCliente(FClienteIni);
ClienteIni.EditingText := FClienteIni.Nombre;
PostMessage(ClienteIni.Handle, WM_KEYDOWN, VK_RETURN, 0);
end;
end;
procedure TfrListarClientes.ClienteFinPropertiesButtonClick(
Sender: TObject; AButtonIndex: Integer);
begin
ContenidoModal := TfrClientes.Create(Self);
if not VarIsNull(FCodigoClienteAux) then
begin
FClienteFin.Codigo := FCodigoClienteAux;
dmTablaClientes.DarDatosCliente(FClienteFin);
ClienteFin.EditingText := FClienteFin.Nombre;
PostMessage(ClienteFin.Handle, WM_KEYDOWN, VK_RETURN, 0);
end;
end;
procedure TfrListarClientes.FreeContenido;
begin
if (ContenidoModal is TRdxFrameClientes) then
FCodigoClienteAux := (ContenidoModal as TRdxFrameClientes).CodigoCliente;
inherited;
end;
procedure TfrListarClientes.ClienteIniPropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
begin
if AnsiCompareText(DisplayValue, ClienteFin.Text) > 0 then
begin
ErrorText := msgInfClienteIniMayor;
Error := True;
Exit;
end;
FClienteIni.Nombre := DisplayValue;
FClienteIni.Codigo := '';
RefrescarInforme;
end;
procedure TfrListarClientes.ClienteFinPropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
begin
if AnsiCompareText(DisplayValue, ClienteIni.Text) < 0 then
begin
ErrorText := msgInfClienteIniMayor;
Error := True;
Exit;
end;
FClienteFin.Nombre := DisplayValue;
FClienteFin.Codigo := '';
RefrescarInforme;
end;
procedure TfrListarClientes.ActivarIntervalo;
begin
ClienteIni.Enabled := True;
ClienteIni.SetFocus;
ClienteFin.Enabled := True;
end;
procedure TfrListarClientes.DesactivarIntervalo;
begin
ClienteIni.Enabled := False;
ClienteFin.Enabled := False;
end;
procedure TfrListarClientes.rbTodosClick(Sender: TObject);
begin
DesactivarIntervalo;
RefrescarInforme;
end;
procedure TfrListarClientes.rbArticulosClick(Sender: TObject);
begin
ActivarIntervalo;
RefrescarInforme;
end;
procedure TfrListarClientes.RefrescarInforme;
begin
with (FInforme as TdmInformeListadoClientes)do
begin
if rbTodos.Checked then
begin
NombreIni := NULL;
NombreFin := NULL;
end
else begin
NombreIni := FClienteIni.Nombre;
NombreFin := FClienteFin.Nombre;
end;
Previsualizar;
end;
end;
procedure TfrListarClientes.RdxFrameShow(Sender: TObject);
begin
DesactivarIntervalo;
rbTodos.SetFocus;
end;
end.