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

156 lines
4.6 KiB
ObjectPascal

{
===============================================================================
Copyright (©) 2005. 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: 08-06-2005
Versión actual: 1.0.0
Fecha versión actual: 08-06-2005
===============================================================================
Modificaciones:
Fecha Comentarios
---------------------------------------------------------------------------
===============================================================================
}
unit RdxFrameObras;
{$I ..\COMPILE.INC}
interface
uses
Windows, Classes,
RdxFrame, RdxDBFrame, IBCustomDataSet, DB, Entidades;
type
TRdxFrameObras = class(TRdxDBFrame)
private
FTablaObras : TIBDataSet;
protected
FCodigoObra : Variant;
procedure SetTablaObras (Value : TIBDataSet);
procedure SetCodigoObra (Value : Variant); virtual;
procedure SetContenido (NuevoFrame : TRdxFrame); override;
function TratarCambios : integer; override;
procedure BuscarObra; virtual; abstract;
procedure CambiarModo(ModoAnterior, Modo : TRdxModo); override;
function CambiarEntidad(EntidadAnterior, Entidad : TRdxEntidad): Boolean; override;
public
property TablaObras: TIBDataSet read FTablaObras write SetTablaObras;
property CodigoObra : Variant read FCodigoObra write SetCodigoObra;
constructor Create (AOwner : TComponent); override;
published
property BaseDatos;
property Transaccion;
end;
implementation
{$R *.DFM}
uses
Mensajes, StrFunc, Literales, Configuracion
{$IFDEF RDX_D6}, Variants{$ENDIF};
{ TRdxFrameClientes }
constructor TRdxFrameObras.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FCodigoObra := NULL;
FTablaObras := NIL;
end;
function TRdxFrameObras.TratarCambios : integer;
begin
if (TablaObras.State in dsEditModes) then
begin
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
end
else Result := IDOK;
end;
procedure TRdxFrameObras.SetCodigoObra(Value: Variant);
begin
if not EsCadenaVacia(Value) then
begin
FCodigoObra := Value;
BuscarObra;
end
end;
procedure TRdxFrameObras.SetContenido(NuevoFrame: TRdxFrame);
begin
if (FContenido <> NIL) then
if (Contenido.Name = NuevoFrame.ClassName) then
begin
NuevoFrame.Free;
exit;
end;
inherited;
if (TablaObras <> NIL) then
begin
FCodigoObra := TablaObras.FieldByName('CODIGOCONTRATO').Value;
if Contenido is TRdxFrameObras then
(Contenido as TRdxFrameObras).CodigoObra := FCodigoObra;
end;
end;
procedure TRdxFrameObras.CambiarModo(ModoAnterior, Modo : TRdxModo);
begin
inherited;
if (FModo in [Normal, Seleccionar]) then
begin
TablaObras.Close;
TablaObras.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 CodigoCliente (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 TablaObras.Active) or (ModoAnterior = Anadir) then
BuscarObra;
end;
end;
procedure TRdxFrameObras.SetTablaObras(Value: TIBDataSet);
begin
if (FTablaObras <> Value) then
FTablaObras := Value;
end;
function TRdxFrameObras.CambiarEntidad(EntidadAnterior,
Entidad: TRdxEntidad): Boolean;
begin
inherited CambiarEntidad(EntidadAnterior, Entidad);
ConfigurarFrame(Self, Self.Entidad);
end;
end.