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

188 lines
6.3 KiB
ObjectPascal

{
===============================================================================
Copyright (©) 2003. 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: 02-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 RdxFrameContratos;
{$I ..\COMPILE.INC}
interface
uses
Windows, Classes,
RdxFrame, RdxDBFrame, IBCustomDataSet, DB, Entidades;
type
TRdxFrameContratos = class(TRdxDBFrame)
private
FTablaContratos : TIBDataSet;
FTablaDetallesContratos : TIBDataSet;
FTablaPropiedadesContratos : TIBDataSet;
FTablaInstaladoresContratos : TIBDataSet;
protected
FCodigoContrato : Variant;
procedure SetTablaContratos (Value : TIBDataSet);
procedure SetTablaDetallesContratos (Value : TIBDataSet);
procedure SetTablaPropiedadesContratos (Value : TIBDataSet);
procedure SetTablaInstaladoresContratos (Value : TIBDataSet);
procedure SetCodigoContrato (Value : Variant); virtual;
procedure SetContenido (NuevoFrame : TRdxFrame); override;
function TratarCambios : integer; override;
procedure BuscarContrato; virtual; abstract;
procedure CambiarModo(ModoAnterior, Modo : TRdxModo); override;
function CambiarEntidad(EntidadAnterior, Entidad : TRdxEntidad): Boolean; override;
public
property TablaContratos: TIBDataSet read FTablaContratos write SetTablaContratos;
property TablaDetallesContratos: TIBDataSet read FTablaDetallesContratos write SetTablaDetallesContratos;
property TablaPropiedadesContratos: TIBDataSet read FTablaPropiedadesContratos write SetTablaPropiedadesContratos;
property TablaInstaladoresContratos: TIBDataSet read FTablaInstaladoresContratos write SetTablaInstaladoresContratos;
property CodigoContrato : Variant read FCodigoContrato write SetCodigoContrato;
constructor Create (AOwner : TComponent); override;
published
property BaseDatos;
property Transaccion;
end;
implementation
{$R *.DFM}
uses
Mensajes, StrFunc, Literales, Configuracion
{$IFDEF RDX_D6}, Variants{$ENDIF};
{ TRdxFrameContratos }
constructor TRdxFrameContratos.Create (AOwner : TComponent);
begin
inherited Create(AOwner);
FCodigoContrato := NULL;
FTablaContratos := NIL;
FTablaDetallesContratos := NIL;
FTablaPropiedadesContratos := NIL;
FTablaInstaladoresContratos := NIL;
end;
function TRdxFrameContratos.TratarCambios : integer;
begin
if (TablaContratos.State in dsEditModes) or
((TablaDetallesContratos <> NIL) and (TablaDetallesContratos.State in dsEditModes)) or
((TablaPropiedadesContratos <> NIL) and (TablaPropiedadesContratos.State in dsEditModes)) or
((TablaInstaladoresContratos <> NIL) and (TablaInstaladoresContratos.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 TRdxFrameContratos.SetCodigoContrato(Value: Variant);
begin
if not EsCadenaVacia (Value) then
FCodigoContrato := Value;
BuscarContrato;
end;
procedure TRdxFrameContratos.SetContenido(NuevoFrame: TRdxFrame);
begin
if (FContenido <> NIL) then
if (Contenido.Name = NuevoFrame.ClassName) then
begin
NuevoFrame.Free;
exit;
end;
inherited;
if (TablaContratos <> NIL) then
begin
FCodigoContrato := TablaContratos.FieldByName('CODIGO').Value;
if Contenido is TRdxFrameContratos then
(Contenido as TRdxFrameContratos).CodigoContrato := FCodigoContrato;
end;
end;
procedure TRdxFrameContratos.CambiarModo(ModoAnterior, Modo : TRdxModo);
begin
inherited;
if (FModo in [Normal, Seleccionar]) then
begin
TablaContratos.Close;
TablaContratos.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 Contrato que tiene el frame
en CodigoContrato (al activar el modo Añadir NO se pisa este valor con
el código de Contrato nuevo) }
if (not TablaContratos.Active) or (ModoAnterior = Anadir) then
BuscarContrato;
end;
end;
procedure TRdxFrameContratos.SetTablaContratos(Value: TIBDataSet);
begin
if (FTablaContratos <> Value) then
FTablaContratos := Value;
end;
procedure TRdxFrameContratos.SetTablaDetallesContratos(Value: TIBDataSet);
begin
if (FTablaDetallesContratos <> Value) then
FTablaDetallesContratos := Value;
end;
procedure TRdxFrameContratos.SetTablaPropiedadesContratos(
Value: TIBDataSet);
begin
if (FTablaPropiedadesContratos <> Value) then
FTablaPropiedadesContratos := Value;
end;
procedure TRdxFrameContratos.SetTablaInstaladoresContratos(
Value: TIBDataSet);
begin
if (FTablaInstaladoresContratos <> Value) then
FTablaInstaladoresContratos := Value;
end;
function TRdxFrameContratos.CambiarEntidad(EntidadAnterior,
Entidad: TRdxEntidad): Boolean;
begin
inherited CambiarEntidad(EntidadAnterior, Entidad);
ConfigurarFrame(Self, Self.Entidad);
end;
end.