{ =============================================================================== 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: 26-01-2003 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 RdxFrameDetallesLibro; {$I ..\COMPILE.INC} interface uses Windows, Classes, RdxFrame, RdxDBFrame, IBCustomDataSet, DB, Entidades; type TRdxFrameDetallesLibro = class(TRdxDBFrame) private FTipoLibro : Variant; FNumEntrada : Variant; FTablaDetallesLibro: TIBDataSet; procedure SetTablaDetallesLibro(Value: TIBDataSet); protected //Pueden ser overrideados por el hijo procedure SetNumEntrada (Value : Variant); virtual; procedure SetTipoLibro (Value : Variant); virtual; procedure SetContenido (NuevoFrame : TRdxFrame); override; function TratarCambios : integer; override; procedure BuscarLibro; virtual; procedure BuscarNumEntrada; virtual; procedure CambiarModo(ModoAnterior, Modo : TRdxModo); override; function CambiarEntidad(EntidadAnterior, Entidad : TRdxEntidad): Boolean; override; public property TablaDetallesLibro: TIBDataSet read FTablaDetallesLibro write SetTablaDetallesLibro; property TipoLibro : Variant read FTipoLibro write SetTipoLibro; property NumEntrada : Variant read FNumEntrada write SetNumEntrada; constructor Create (AOwner : TComponent); override; published end; implementation {$R *.DFM} uses Mensajes, StrFunc, Literales, Configuracion {$IFDEF RDX_D6}, Variants{$ENDIF}; { TRdxFrameDetallesLibro } //////////////////////////////////////////////////////////////////////////////// // PRIVATE //////////////////////////////////////////////////////////////////////////////// procedure TRdxFrameDetallesLibro.SetNumEntrada(Value: Variant); begin if (not esCadenaVacia(Value)) then begin FNumEntrada := Value; BuscarNumEntrada; end; end; procedure TRdxFrameDetallesLibro.SetTablaDetallesLibro(Value: TIBDataSet); begin if (FTablaDetallesLibro <> Value) then FTablaDetallesLibro := Value; end; //////////////////////////////////////////////////////////////////////////////// // PROTECTED //////////////////////////////////////////////////////////////////////////////// procedure TRdxFrameDetallesLibro.SetTipoLibro(Value: Variant); begin if not EsCadenaVacia(Value) then begin FTipoLibro := Value; BuscarLibro; end end; procedure TRdxFrameDetallesLibro.SetContenido(NuevoFrame: TRdxFrame); begin if (FContenido <> NIL) then if (Contenido.Name = NuevoFrame.ClassName) then begin NuevoFrame.Free; exit; end; inherited; if (TablaDetallesLibro <> NIL) then begin if Contenido is TRdxFrameDetallesLibro then begin FTipoLibro := TablaDetallesLibro.FieldByName('TIPOLIBRO').Value; FNumEntrada := TablaDetallesLibro.FieldByName('NUMENTRADA').Value; (Contenido as TRdxFrameDetallesLibro).TipoLibro := FTipoLibro; (Contenido as TRdxFrameDetallesLibro).NumEntrada := FNumEntrada; end; end; end; function TRdxFrameDetallesLibro.TratarCambios : integer; begin if (TablaDetallesLibro.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 TRdxFrameDetallesLibro.BuscarLibro; begin // end; procedure TRdxFrameDetallesLibro.BuscarNumEntrada; begin // end; procedure TRdxFrameDetallesLibro.CambiarModo(ModoAnterior, Modo : TRdxModo); begin inherited; if (FModo in [Normal, Seleccionar]) then begin TablaDetallesLibro.Close; TablaDetallesLibro.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 pago que tiene el frame en CodigoPago (al activar el modo Añadir NO se pisa este valor con el código de pago nuevo), preguntamos si la tabla esta activa por si se ha cerrado al realizar algun cambio en modificar y ejecutar TratarCambios} if (not TablaDetallesLibro.Active) or (ModoAnterior = Anadir) then BuscarNumEntrada; end; end; //////////////////////////////////////////////////////////////////////////////// // PUBLIC //////////////////////////////////////////////////////////////////////////////// constructor TRdxFrameDetallesLibro.Create(AOwner: TComponent); begin inherited Create(AOwner); FTipoLibro := NULL; FNumEntrada := NULL; FTablaDetallesLibro := NIL; end; function TRdxFrameDetallesLibro.CambiarEntidad(EntidadAnterior, Entidad: TRdxEntidad): Boolean; begin inherited CambiarEntidad(EntidadAnterior, Entidad); ConfigurarFrame(Self, Self.Entidad); end; end.