git-svn-id: https://192.168.0.254/svn/Proyectos.Acana_FactuGES/trunk@4 3f40d355-893c-4141-8e64-b1d9be72e7e7
315 lines
9.2 KiB
ObjectPascal
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.
|