{ =============================================================================== 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: 01-10-2001 Versión actual: 1.0.2 Fecha versión actual: 07-04-2002 =============================================================================== Modificaciones: Fecha Comentarios --------------------------------------------------------------------------- 07-04-2002 Se ha adaptado el frame para transacción única. 09-04-2002 Sustituir las constantes IDYES/IDNO por IDOK. =============================================================================== } unit RdxFramePedidosProveedor; {$I ..\COMPILE.INC} interface uses Consts, Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, RdxFrame, RdxDBFrame, IBCustomDataSet, Tipos, IBDataBase, DB; type TRdxFramePedidosProveedor = class(TRdxDBFrame) private FTablaPedidosProveedor : TIBDataSet; FTablaDetallesPedidos : TIBDataSet; protected FCodigoPedido : Variant; procedure SetTablaPedidosProveedor (Value : TIBDataSet); procedure SetTablaDetallesPedidos (Value : TIBDataSet); procedure SetCodigoPedido (Value : Variant); virtual; procedure SetContenido (NuevoFrame : TRdxFrame); override; function TratarCambios : integer; override; procedure BuscarPedido; virtual; procedure CambiarModo(ModoAnterior, Modo : TRdxModo); override; public property TablaPedidosProveedor: TIBDataSet read FTablaPedidosProveedor write SetTablaPedidosProveedor; property TablaDetallesPedidos: TIBDataSet read FTablaDetallesPedidos write SetTablaDetallesPedidos; property CodigoPedido : Variant read FCodigoPedido write SetCodigoPedido; constructor Create (AOwner : TComponent); override; published property BaseDatos; property Transaccion; end; implementation {$R *.DFM} uses IB, Mensajes, StrFunc, Literales {$IFDEF RDX_D6}, Variants{$ENDIF}; { TRdxFrameProveedores } constructor TRdxFramePedidosProveedor.Create(AOwner: TComponent); begin inherited Create(AOwner); FCodigoPedido := NULL; FTablaPedidosProveedor := NIL; FTablaDetallesPedidos := NIL; end; function TRdxFramePedidosProveedor.TratarCambios : integer; begin if (TablaPedidosProveedor.Modified = True) or ((TablaDetallesPedidos <> NIL) and (TablaDetallesPedidos.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 TRdxFramePedidosProveedor.SetCodigoPedido(Value: Variant); begin if not EsCadenaVacia (Value) then begin FCodigoPedido := Value; BuscarPedido; end end; procedure TRdxFramePedidosProveedor.SetContenido(NuevoFrame: TRdxFrame); begin if (FContenido <> NIL) then if (Contenido.Name = NuevoFrame.ClassName) then begin NuevoFrame.Free; exit; end; inherited; if (TablaPedidosProveedor <> NIL) then begin FCodigoPedido := TablaPedidosProveedor.FieldByName('CODIGO').Value; if Contenido is TRdxFramePedidosProveedor then (Contenido as TRdxFramePedidosProveedor).CodigoPedido := FCodigoPedido; end; end; procedure TRdxFramePedidosProveedor.CambiarModo(ModoAnterior, Modo : TRdxModo); begin inherited; if (FModo in [Normal, Seleccionar]) then begin TablaPedidosProveedor.Close; TablaPedidosProveedor.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 CodigoPedido (al activar el modo Añadir NO se pisa este valor con el código de pedido nuevo) } if (not TablaPedidosProveedor.Active) or (ModoAnterior = Anadir) then BuscarPedido; end; end; procedure TRdxFramePedidosProveedor.SetTablaPedidosProveedor(Value: TIBDataSet); begin if (FTablaPedidosProveedor <> Value) then FTablaPedidosProveedor := Value; end; procedure TRdxFramePedidosProveedor.SetTablaDetallesPedidos(Value: TIBDataSet); begin if (FTablaDetallesPedidos <> Value) then FTablaDetallesPedidos := Value; end; procedure TRdxFramePedidosProveedor.BuscarPedido; begin // end; end.