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/Frames/RdxFrameVendedores.pas
2007-06-26 08:08:27 +00:00

201 lines
6.1 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: 01-12-2002
Versión actual: 1.0.1
Fecha versión actual: 28-05-2004
===============================================================================
Modificaciones:
Fecha Comentarios
---------------------------------------------------------------------------
28/05/2004 Se han adaptado los frames para que se autoconfiguren
===============================================================================
}
unit RdxFrameVendedores;
{$I ..\COMPILE.INC}
interface
uses
Windows, Classes,
RdxFrame, RdxDBFrame, IBCustomDataSet, DB, Entidades;
type
TRdxFrameVendedores = class(TRdxDBFrame)
private
FTablaVendedores : TIBDataSet;
protected
FListaVendedores : TStringList;
procedure SetTablaVendedores (Value : TIBDataSet);
procedure SetListaVendedores (Value : TStringList);
procedure SetCodigoVendedor (Value : Variant);
procedure SetFCodigoVendedor (Value : Variant);
function GetCodigoVendedor: Variant;
function GetFCodigoVendedor: Variant;
procedure SetContenido (NuevoFrame : TRdxFrame); override;
function TratarCambios : integer; override;
procedure BuscarVendedor; virtual; abstract;
procedure CambiarModo(ModoAnterior, Modo : TRdxModo); override;
function CambiarEntidad(EntidadAnterior, Entidad : TRdxEntidad): Boolean; override;
public
property TablaVendedores: TIBDataSet read FTablaVendedores write SetTablaVendedores;
property ListaVendedores : TStringList read FListaVendedores write SetListaVendedores;
property CodigoVendedor : Variant read GetCodigoVendedor write SetCodigoVendedor;
property FCodigoVendedor : Variant read GetFCodigoVendedor write SetFCodigoVendedor;
constructor Create (AOwner : TComponent); override;
destructor Destroy; override;
published
property BaseDatos;
property Transaccion;
end;
implementation
{$R *.DFM}
uses
Mensajes, StrFunc, Literales, Configuracion
{$IFDEF RDX_D6}, Variants{$ENDIF};
{ TRdxFrameVendedores }
constructor TRdxFrameVendedores.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FListaVendedores := TStringList.Create;
FTablaVendedores := NIL;
end;
destructor TRdxFrameVendedores.Destroy;
begin
FListaVendedores.free;
FListaVendedores := NIL;
inherited;
end;
function TRdxFrameVendedores.TratarCambios : integer;
begin
if (TablaVendedores.State in dsEditModes) then
case VerMensajePregunta(msgGuardarCambios) of
IDCANCEL : Result := IDCANCEL;
IDYES : begin
if (RealizarOperacion)
then Result := IDOK
else Result := IDCANCEL;
end;
IDNO : begin
if (DescartarOperacion)
then Result := IDOK
else Result := IDCANCEL;
end;
end
else Result := IDOK;
end;
procedure TRdxFrameVendedores.SetContenido(NuevoFrame: TRdxFrame);
begin
if (Contenido <> NIL) then
if (Contenido.Name = NuevoFrame.ClassName) then
begin
NuevoFrame.Free;
exit;
end;
inherited;
if (TablaVendedores <> NIL) then
begin
FCodigoVendedor := TablaVendedores.FieldByName('CODIGO').Value;
if (Contenido is TRdxFrameVendedores) then
(Contenido as TRdxFrameVendedores).CodigoVendedor := FCodigoVendedor;
end;
end;
procedure TRdxFrameVendedores.SetTablaVendedores(Value: TIBDataSet);
begin
if (FTablaVendedores <> Value) then
begin
FTablaVendedores := Value;
end;
end;
procedure TRdxFrameVendedores.CambiarModo(ModoAnterior, Modo : TRdxModo);
begin
inherited;
if (FModo in [Normal, Seleccionar]) then
begin
TablaVendedores.Close;
TablaVendedores.Open;
end
else begin
{ Si estábamos en el modo Añadir y pasamos a cualquier otro modo SIEMPRE
es necesario buscar el codigo de que tiene el frame
en CodigoVendedor (al activar el modo Añadir NO se pisa este valor con
el código nuevo), preguntamos si la tabla esta activa por si
se ha cerrado al realizar algun cambio en modificar y ejecutar TratarCambios}
if (not TablaVendedores.Active) or (ModoAnterior = Anadir) then
BuscarVendedor;
end;
end;
function TRdxFrameVendedores.GetCodigoVendedor: Variant;
begin
Result := FCodigoVendedor;
end;
function TRdxFrameVendedores.GetFCodigoVendedor: Variant;
begin
if (ListaVendedores.Count = 0) then
Result := NULL
else
Result := ListaVendedores.Strings[ListaVendedores.Count-1];
end;
procedure TRdxFrameVendedores.SetCodigoVendedor(Value: Variant);
begin
if (not VarIsNull(Value)) then
begin
FCodigoVendedor := Value;
BuscarVendedor;
end
end;
procedure TRdxFrameVendedores.SetFCodigoVendedor(Value: Variant);
begin
FListaVendedores.Clear;
if (not VarIsNull(Value)) then
FListaVendedores.Add(Value);
end;
procedure TRdxFrameVendedores.SetListaVendedores(Value: TStringList);
begin
if (Value = Nil) or (Value.Count = 0) then
exit;
FListaVendedores.Clear;
FListaVendedores.Assign(Value);
end;
function TRdxFrameVendedores.CambiarEntidad(EntidadAnterior,
Entidad: TRdxEntidad): Boolean;
begin
inherited CambiarEntidad(EntidadAnterior, Entidad);
ConfigurarFrame(Self, Self.Entidad);
end;
end.