{ =============================================================================== 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: 09-04-2002 =============================================================================== Modificaciones: Fecha Comentarios --------------------------------------------------------------------------- 09-04-2002 Se ha adaptado el frame para transaccion unica. =============================================================================== } unit RdxFrameHistoricoMovimientos; {$I ..\COMPILE.INC} interface uses Consts, Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, IB, IBCustomDataSet, IBDataBase, DB, Mensajes, Tipos, RdxFrame, RdxDBFrame; type TRdxFrameHistoricoMovimientos = class(TRdxDBFrame) private FTablaMovimientos : TIBDataSet; protected FCodigoAlmacen : Variant; FCodigoMovimiento : Variant; FListaAlmacenesCodigo : TStringList; FListaCodigosAlmacen : TStringList; procedure SetTablaMovimientos (Value : TIBDataSet); procedure SetCodigoAlmacen (Value : Variant); virtual; procedure SetCodigoMovimiento (Value : Variant); virtual; procedure SetContenido (NuevoFrame : TRdxFrame); override; function TratarCambios : integer; override; procedure BuscarAlmacen; virtual; abstract; procedure BuscarMovimiento; virtual; abstract; procedure CambiarModo(ModoAnterior, Modo : TRdxModo); override; public property TablaMovimientos: TIBDataSet read FTablaMovimientos write SetTablaMovimientos; property CodigoAlmacen : Variant read FCodigoAlmacen write SetCodigoAlmacen; property CodigoMovimiento : Variant read FCodigoMovimiento write SetCodigoMovimiento; constructor Create (AOwner : TComponent); override; destructor Destroy; override; published property BaseDatos; property Transaccion; end; implementation {$R *.DFM} uses Literales{$IFDEF RDX_D6},Variants{$ENDIF}; { TRdxFrameHistoricoMovimientos } constructor TRdxFrameHistoricoMovimientos.Create(AOwner: TComponent); begin inherited Create(AOwner); FTablaMovimientos := NIL; FListaAlmacenesCodigo := TStringList.Create; FListaCodigosAlmacen := TStringList.Create; end; destructor TRdxFrameHistoricoMovimientos.Destroy; begin FListaAlmacenesCodigo.Free; FListaCodigosAlmacen.Free; inherited; end; function TRdxFrameHistoricoMovimientos.TratarCambios : integer; begin if (TablaMovimientos.Modified = True) 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 TRdxFrameHistoricoMovimientos.SetCodigoAlmacen(Value: Variant); begin if (not VarIsNull(Value)) then begin FCodigoAlmacen := Value; BuscarAlmacen; end; end; procedure TRdxFrameHistoricoMovimientos.SetContenido(NuevoFrame: TRdxFrame); begin if (Contenido <> NIL) then if (Contenido.Name = NuevoFrame.ClassName) then begin NuevoFrame.Free; exit; end; inherited; if (TablaMovimientos <> NIL) then begin FCodigoMovimiento := TablaMovimientos.FieldByName('CODIGO').AsString; if (Contenido is TRdxFrameHistoricoMovimientos) then begin (Contenido as TRdxFrameHistoricoMovimientos).CodigoAlmacen := FCodigoAlmacen; (Contenido as TRdxFrameHistoricoMovimientos).CodigoMovimiento := FCodigoMovimiento; end; end; end; procedure TRdxFrameHistoricoMovimientos.SetTablaMovimientos(Value: TIBDataSet); begin if (FTablaMovimientos <> Value) then begin FTablaMovimientos := Value; end; end; procedure TRdxFrameHistoricoMovimientos.CambiarModo(ModoAnterior, Modo : TRdxModo); begin inherited; if (FModo in [Normal, Seleccionar]) then begin TablaMovimientos.Close; TablaMovimientos.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 articulo que tiene el frame en CodigoArticulo (al activar el modo Añadir NO se pisa este valor con el código de articulo nuevo), preguntamos si la tabla esta activa por si se ha cerrado al realizar algun cambio en modificar y ejecutar TratarCambios} if (not TablaMovimientos.Active) or (ModoAnterior = Anadir) then // BuscarArticulo; end; end; procedure TRdxFrameHistoricoMovimientos.SetCodigoMovimiento(Value: Variant); begin if (not VarIsNull(Value)) then begin FCodigoMovimiento := Value; BuscarMovimiento; end; end; end.