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/Frames/RdxFrameAlmacenes.pas
2007-06-21 15:47:20 +00:00

150 lines
4.6 KiB
ObjectPascal

{
===============================================================================
Copyright (©) 2001. 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-10-2001
Versión actual: 1.0.2
Fecha versión actual: 09-04-2002
===============================================================================
Modificaciones:
Fecha Comentarios
---------------------------------------------------------------------------
07-04-2002 Se ha adaptado el frame para transaccion unica.
09-04-2002 Sustituir las constantes IDYES/IDNO por IDOK.
===============================================================================
}
unit RdxFrameAlmacenes;
{$I ..\COMPILE.INC}
interface
uses
Consts, Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, IB, IBCustomDataSet, IBDataBase, DB, Mensajes, Tipos,
RdxFrame, RdxDBFrame;
type
TRdxFrameAlmacenes = class(TRdxDBFrame)
private
FTablaAlmacenes : TIBDataSet;
protected
FCodigoAlmacen : Variant;
procedure SetTablaAlmacenes (Value : TIBDataSet);
procedure SetCodigoAlmacen (Value : Variant); virtual;
procedure SetContenido (NuevoFrame : TRdxFrame); override;
function TratarCambios : integer; override;
procedure BuscarAlmacen; virtual; abstract;
procedure CambiarModo(ModoAnterior, Modo : TRdxModo); override;
public
property TablaAlmacenes: TIBDataSet read FTablaAlmacenes write SetTablaAlmacenes;
property CodigoAlmacen : Variant read FCodigoAlmacen write SetCodigoAlmacen;
constructor Create (AOwner : TComponent); override;
published
property BaseDatos;
property Transaccion;
end;
implementation
{$R *.DFM}
uses
Literales{$IFDEF RDX_D6},Variants{$ENDIF};
{ TRdxFrameAlmacenes }
constructor TRdxFrameAlmacenes.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FTablaAlmacenes := NIL;
FCodigoAlmacen := NULL;
end;
function TRdxFrameAlmacenes.TratarCambios : integer;
begin
if (TablaAlmacenes.Modified = True) 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 TRdxFrameAlmacenes.SetContenido(NuevoFrame: TRdxFrame);
begin
if (Contenido <> NIL) then
if (Contenido.Name = NuevoFrame.ClassName) then
begin
NuevoFrame.Free;
exit;
end;
inherited;
if (TablaAlmacenes <> NIL) then
begin
FCodigoAlmacen := TablaAlmacenes.FieldByName('ALMACENES.CODIGO').Value;
if (Contenido is TRdxFrameAlmacenes) then
(Contenido as TRdxFrameAlmacenes).CodigoAlmacen := FCodigoAlmacen;
end;
end;
procedure TRdxFrameAlmacenes.SetTablaAlmacenes(Value: TIBDataSet);
begin
if (FTablaAlmacenes <> Value) then
begin
FTablaAlmacenes := Value;
end;
end;
procedure TRdxFrameAlmacenes.CambiarModo(ModoAnterior, Modo : TRdxModo);
begin
inherited;
if (FModo in [Normal, Seleccionar]) then
begin
TablaAlmacenes.Close;
TablaAlmacenes.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 almacén que tiene el frame
en CodigoAlmacen (al activar el modo Añadir NO se pisa este valor con
el código de almacén nuevo), preguntamos si la tabla esta activa por si
se ha cerrado al realizar algun cambio en modificar y ejecutar TratarCambios}
if (not TablaAlmacenes.Active) or (ModoAnterior = Anadir) then
BuscarAlmacen;
end;
end;
procedure TRdxFrameAlmacenes.SetCodigoAlmacen(Value: Variant);
begin
if (not VarIsNull(Value)) then
begin
FCodigoAlmacen := Value;
BuscarAlmacen;
end
end;
end.