{ =============================================================================== 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: 03-11-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 RdxFrameProveedores; {$I ..\COMPILE.INC} interface uses Windows, Classes, RdxFrame, RdxDBFrame, IBCustomDataSet, DB, Entidades; type TRdxFrameProveedores = class(TRdxDBFrame) private FTablaProveedores : TIBDataSet; FTablaRepresentantes : TIBDataSet; protected FCodigoProveedor : Variant; procedure SetTablaProveedores (Value : TIBDataSet); procedure SetTablaRepresentantes (Value : TIBDataSet); procedure SetCodigoProveedor (Value : Variant); virtual; procedure SetContenido (NuevoFrame : TRdxFrame); override; function TratarCambios : integer; override; procedure BuscarProveedor; virtual; procedure CambiarModo(ModoAnterior, Modo : TRdxModo); override; function CambiarEntidad(EntidadAnterior, Entidad : TRdxEntidad): Boolean; override; public property TablaProveedores: TIBDataSet read FTablaProveedores write SetTablaProveedores; property TablaRepresentantes: TIBDataSet read FTablaRepresentantes write SetTablaRepresentantes; property CodigoProveedor : Variant read FCodigoProveedor write SetCodigoProveedor; constructor Create (AOwner : TComponent); override; published property BaseDatos; property Transaccion; end; implementation {$R *.DFM} uses StrFunc, Mensajes, Literales, Configuracion {$IFDEF RDX_D6}, Variants{$ENDIF}; { TRdxFrameProveedores } constructor TRdxFrameProveedores.Create(AOwner: TComponent); begin inherited Create(AOwner); FCodigoProveedor := NULL; FTablaProveedores := NIL; FTablaRepresentantes := NIL; end; function TRdxFrameProveedores.TratarCambios : integer; begin if (TablaProveedores.State in dsEditModes) or ((TablaRepresentantes <> NIL) and (TablaRepresentantes.State in dsEditModes)) then 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 else Result := IDOK; end; procedure TRdxFrameProveedores.SetCodigoProveedor(Value: Variant); begin if (not EsCadenaVacia(Value)) then begin FCodigoProveedor := Value; BuscarProveedor; end end; procedure TRdxFrameProveedores.SetContenido(NuevoFrame: TRdxFrame); begin if (Contenido <> NIL) then if (Contenido.Name = NuevoFrame.ClassName) then begin NuevoFrame.Free; Exit; end; inherited; if TablaProveedores <> NIL then begin FCodigoProveedor := TablaProveedores.FieldByName('CODIGO').Value; if Contenido is TRdxFrameProveedores then (Contenido as TRdxFrameProveedores).CodigoProveedor := FCodigoProveedor; end; end; procedure TRdxFrameProveedores.CambiarModo(ModoAnterior, Modo : TRdxModo); begin inherited; if (FModo in [Normal, Seleccionar]) then begin TablaProveedores.Close; TablaProveedores.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 pedido que tiene el frame en CodigoProveedor (al activar el modo Añadir NO se pisa este valor con el código de pedido nuevo) } if (not TablaProveedores.Active) or (ModoAnterior = Anadir) then BuscarProveedor; end; end; procedure TRdxFrameProveedores.SetTablaProveedores(Value: TIBDataSet); begin if (FTablaProveedores <> Value) then FTablaProveedores := Value; end; procedure TRdxFrameProveedores.BuscarProveedor; begin // end; procedure TRdxFrameProveedores.SetTablaRepresentantes(Value: TIBDataSet); begin if (FTablaRepresentantes <> Value) then FTablaRepresentantes := Value; end; function TRdxFrameProveedores.CambiarEntidad(EntidadAnterior, Entidad: TRdxEntidad): Boolean; begin inherited CambiarEntidad(EntidadAnterior, Entidad); ConfigurarFrame(Self, Self.Entidad); end; end.