{ =============================================================================== 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.