{ =============================================================================== 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: 08-09-2002 Versión actual: 1.0.0 Fecha versión actual: 08-09-2002 =============================================================================== Modificaciones: Fecha Comentarios --------------------------------------------------------------------------- =============================================================================== } unit RdxFrameCartasCliente; interface uses Consts, Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, RdxFrame, RdxDBFrame, IBCustomDataSet, RdxTipos, IBDataBase, DB; type TRdxFrameCartasCliente = class(TRdxDBFrame) private FTablaCartas : TIBDataSet; protected FCodigoCarta : Variant; procedure SetTablaCartas (Value : TIBDataSet); procedure SetCodigoCarta (Value : Variant); virtual; procedure SetContenido (NuevoFrame : TRdxFrame); override; function TratarCambios : integer; override; procedure BuscarCarta; virtual; procedure CambiarModo(ModoAnterior, Modo : TRdxModo); override; public property TablaCartas: TIBDataSet read FTablaCartas write SetTablaCartas; property CodigoCarta : Variant read FCodigoCarta write SetCodigoCarta; constructor Create (AOwner : TComponent); override; published property BaseDatos; property Transaccion; end; implementation {$R *.DFM} uses IB, RdxMensajes, RdxFunciones; { TRdxFrameCartasCliente } constructor TRdxFrameCartasCliente.Create(AOwner: TComponent); begin inherited Create(AOwner); FCodigoCarta := NULL; FTablaCartas := NIL; end; function TRdxFrameCartasCliente.TratarCambios : integer; begin if (TablaCartas.Modified = True) 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 TRdxFrameCartasCliente.SetCodigoCarta(Value: Variant); begin if not EsCadenaVacia (Value) then begin FCodigoCarta := Value; BuscarCarta; end end; procedure TRdxFrameCartasCliente.SetContenido(NuevoFrame: TRdxFrame); begin if (FContenido <> NIL) then if (Contenido.Name = NuevoFrame.ClassName) then begin NuevoFrame.Free; exit; end; inherited; if (TablaCarta <> NIL) then begin FCodigoCarta := TablaCarta.FieldByName('CODIGO').Value; if Contenido is TRdxFrameCartasCliente then (Contenido as TRdxFrameCartasCliente).CodigoCarta := FCodigoCarta; end; end; procedure TRdxFrameCartasCliente.CambiarModo(ModoAnterior, Modo : TRdxModo); begin inherited; if (FModo in [Normal, Seleccionar]) then begin TablaCarta.Close; TablaCarta.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 presupuesto que tiene el frame en CodigoCarta (al activar el modo Añadir NO se pisa este valor con el código de presupuesto nuevo) } if (not TablaCarta.Active) or (ModoAnterior = Anadir) then BuscarCarta; end; end; procedure TRdxFrameCartasCliente.SetTablaCartas(Value: TIBDataSet); begin if (FTablaCartas <> Value) then FTablaCartas := Value; end; procedure TRdxFrameCartasCliente.BuscarCarta; begin // end; end.