This repository has been archived on 2024-12-02. You can view files and clone it, but cannot push or open issues or pull requests.
FactuGES/Clientes/ImprimirClientes.pas
2007-06-26 08:08:27 +00:00

315 lines
9.2 KiB
ObjectPascal

{
===============================================================================
Copyright (©) 2002. 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: 23-11-2002
Versión actual: 1.0.0
Fecha versión actual: 23-11-2002
===============================================================================
Modificaciones:
Fecha Comentarios
---------------------------------------------------------------------------
===============================================================================
}
unit ImprimirClientes;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
RDXFRAME, StdCtrls, RdxComboBox, RdxBotones, RdxCampos,
ExtCtrls, RdxBarras, RdxTitulos, InformesClientes,
Grids, DBGrids, RdxPaneles, RdxRadioButton;
type
TfrImprimirClientes = class(TRdxFrame)
eInformacion: TLabel;
Panel: TRdxPanel;
eCodigoIni: TLabel;
eCodigoFin: TLabel;
rbTodos: TRdxRadioButton;
rbCodigos: TRdxRadioButton;
NombreIni: TRdxEdit;
CodigoIni: TRdxEdit;
CodigoFin: TRdxEdit;
NombreFin: TRdxEdit;
brOperacion: TRdxBarraInferior;
bImprimir: TRdxBoton;
bCancelar: TRdxBoton;
bVistaPrevia: TRdxBoton;
pnlTitulo: TRdxPanelTituloOperacion;
rbCliente: TRdxRadioButton;
Label3: TLabel;
CodCli: TRdxEdit;
NomCli: TRdxEdit;
procedure bCancelarClick(Sender: TObject);
procedure rbTodosClick(Sender: TObject);
procedure rbCodigosClick(Sender: TObject);
procedure CodigoIniButtonClick(Sender: TObject);
procedure CodigoFinButtonClick(Sender: TObject);
procedure CodigoIniExit(Sender: TObject);
procedure CodigoFinExit(Sender: TObject);
procedure rbClienteClick(Sender: TObject);
procedure CodCliButtonClick(Sender: TObject);
procedure RdxFrameShow(Sender: TObject);
procedure CodCliExit(Sender: TObject);
procedure bVistaPreviaClick(Sender: TObject);
private
FCodigoClienteAux : Variant;
FCodCliente : Variant;
FCodClienteIni : Variant;
FCodClienteFin : Variant;
FInformeCliente : TdmInformesClientes;
procedure ActivarPorCliente;
procedure ActivarPorCodigos;
procedure DesactivarPorCliente;
procedure DesactivarPorCodigos;
function DarNombreCliente(Value : string) : string;
procedure SetCodCliente (Value : Variant);
procedure SetCodClienteIni (Value : Variant);
procedure SetCodClienteFin (Value : Variant);
protected
procedure FreeContenido; override;
public
constructor Create(AOwner : TComponent); override;
published
property CodCliente : Variant read FCodCliente write SetCodCliente;
property CodClienteIni : Variant read FCodClienteIni write SetCodClienteIni;
property CodClienteFin : Variant read FCodClienteFin write SetCodClienteFin;
end;
var
frImprimirClientes: TfrImprimirClientes;
implementation
{$R *.DFM}
uses
Variants, RdxFrameClientes, Entidades,
Clientes, TablaClientes, Mensajes, StrFunc;
resourcestring
msgNoExisteCodigo = 'No existe un cliente con el código %s.';
msgCodigoIniMenor = 'El código de cliente inicial debe ser menor que el código de cliente final';
msgCodigoIncorrecto = '%s no es un código correcto para un cliente. Cambie el codigo por otro e inténtelo de nuevo.';
msgFaltanCodigos = 'Falta indicar o completar el intervalo de códigos de cliente para el listado.';
constructor TfrImprimirClientes.Create(AOwner : TComponent);
begin
inherited Create(AOwner);
FCodCliente := NULL;
FCodClienteIni := NULL;
FCodClienteFin := NULL;
end;
procedure TfrImprimirClientes.bCancelarClick(Sender: TObject);
begin
CloseFrame;
end;
procedure TfrImprimirClientes.ActivarPorCodigos;
begin
CodigoIni.Enabled := True;
NombreIni.Enabled := True;
CodigoIni.VerBoton := True;
CodigoFin.Enabled := True;
NombreFin.Enabled := True;
CodigoFin.VerBoton := True;
CodigoIni.SetFocus;
end;
procedure TfrImprimirClientes.DesactivarPorCodigos;
begin
CodigoIni.Enabled := False;
CodigoIni.VerBoton := False;
CodigoFin.Enabled := False;
CodigoFin.VerBoton := False;
NombreIni.Enabled := False;
NombreFin.Enabled := False;
end;
procedure TfrImprimirClientes.rbTodosClick(Sender: TObject);
begin
DesactivarPorCliente;
DesactivarPorCodigos;
end;
procedure TfrImprimirClientes.rbCodigosClick(Sender: TObject);
begin
DesactivarPorCliente;
ActivarPorCodigos;
end;
procedure TfrImprimirClientes.CodigoIniButtonClick(Sender: TObject);
begin
ContenidoModal := TfrClientes.Create(Self);
CodClienteIni := FCodigoClienteAux;
end;
procedure TfrImprimirClientes.CodigoFinButtonClick(Sender: TObject);
begin
ContenidoModal := TfrClientes.Create(Self);
CodClienteFin := FCodigoClienteAux;
end;
procedure TfrImprimirClientes.CodigoIniExit(Sender: TObject);
begin
CodClienteIni := CodigoIni.Text;
end;
procedure TfrImprimirClientes.CodigoFinExit(Sender: TObject);
begin
CodClienteFin := CodigoFin.Text;
end;
procedure TfrImprimirClientes.FreeContenido;
begin
if (ContenidoModal is TRdxFrameClientes) then
FCodigoClienteAux := (ContenidoModal as TRdxFrameClientes).CodigoCliente;
inherited FreeContenido;
end;
function TfrImprimirClientes.DarNombreCliente(Value: string): string;
var
DatosCliente : TDatosCliente;
begin
Result := '';
DatosCliente := TDatosCliente.Create;
with DatosCliente do
begin
Codigo := Value;
try
if dmTablaClientes.DarDatosCliente(DatosCliente) then
Result := Nombre
else
raise Exception.CreateFmt(msgNoExisteCodigo, [Value]);
finally
DatosCliente.Free;
end;
end;
end;
procedure TfrImprimirClientes.SetCodCliente(Value: Variant);
begin
if EsCadenaVacia(Value) then
Exit;
FCodCliente := Value;
if (dmTablaClientes.ValidarCodigo(FCodCliente)) then begin
FCodCliente := dmTablaClientes.FormatearCodigo(FCodCliente);
if (not dmTablaClientes.ExisteCodigo(FCodCliente)) then begin
VerMensajeFmt(msgNoExisteCodigo, [FCodCliente]);
CodCli.SetFocus;
Exit;
end;
CodCli.Text := FCodCliente;
NomCli.Text := DarNombreCliente(FCodCliente);
end
else begin
VerMensajeFmt(msgCodigoIncorrecto, [FCodCliente]);
CodCli.SetFocus;
Exit;
end;
end;
procedure TfrImprimirClientes.rbClienteClick(Sender: TObject);
begin
ActivarPorCliente;
DesactivarPorCodigos;
end;
procedure TfrImprimirClientes.ActivarPorCliente;
begin
CodCli.Enabled := True;
CodCli.VerBoton := True;
NomCli.Enabled := True;
CodCli.SetFocus;
end;
procedure TfrImprimirClientes.DesactivarPorCliente;
begin
CodCli.Enabled := False;
CodCli.VerBoton := False;
NomCli.Enabled := False;
end;
procedure TfrImprimirClientes.CodCliButtonClick(Sender: TObject);
begin
ContenidoModal := TfrClientes.Create(Self);
CodCliente := FCodigoClienteAux;
end;
procedure TfrImprimirClientes.RdxFrameShow(Sender: TObject);
begin
CodigoIni.Text := dmTablaClientes.DarClienteMin;
CodigoFin.Text := dmTablaClientes.DarClienteMax;
end;
procedure TfrImprimirClientes.SetCodClienteFin(Value: Variant);
begin
if EsCadenaVacia(Value) then
Exit;
FCodClienteFin := Value;
if (dmTablaClientes.ValidarCodigo(FCodClienteFin)) then begin
FCodClienteFin := dmTablaClientes.FormatearCodigo(FCodClienteFin);
if (not dmTablaClientes.ExisteCodigo(FCodClienteFin)) then begin
VerMensajeFmt(msgNoExisteCodigo, [FCodClienteFin]);
CodigoFin.SetFocus;
Exit;
end;
CodigoFin.Text := FCodClienteFin;
NombreFin.Text := DarNombreCliente(FCodClienteFin);
end
else begin
VerMensajeFmt(msgCodigoIncorrecto, [FCodClienteFin]);
CodigoFin.SetFocus;
Exit;
end;
end;
procedure TfrImprimirClientes.SetCodClienteIni(Value: Variant);
begin
if EsCadenaVacia(Value) then
Exit;
FCodClienteIni := Value;
if (dmTablaClientes.ValidarCodigo(FCodClienteIni)) then begin
FCodClienteIni := dmTablaClientes.FormatearCodigo(FCodClienteIni);
if (not dmTablaClientes.ExisteCodigo(FCodClienteIni)) then begin
VerMensajeFmt(msgNoExisteCodigo, [FCodClienteIni]);
CodigoIni.SetFocus;
Exit;
end;
CodigoIni.Text := FCodClienteIni;
NombreIni.Text := DarNombreCliente(FCodClienteIni);
end
else begin
VerMensajeFmt(msgCodigoIncorrecto, [FCodClienteIni]);
CodigoIni.SetFocus;
Exit;
end;
end;
procedure TfrImprimirClientes.CodCliExit(Sender: TObject);
begin
CodCliente := CodCli.Text;
end;
procedure TfrImprimirClientes.bVistaPreviaClick(Sender: TObject);
begin
FInformeCliente := TdmInformesClientes.Create(Self);
FInformeCliente.Generar;
end;
end.