{ =============================================================================== 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 --------------------------------------------------------------------------- 07-04-2002 Se ha adaptado el frame para transacción única. 09-04-2002 Sustituir las constantes IDYES/IDNO por IDOK. =============================================================================== } unit RdxFrameAlbaranes; interface uses Consts, Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, RdxFrame, RdxDBFrame, IBCustomDataSet, Tipos, IBDataBase, DB; type TRdxFrameAlbaranes = class(TRdxDBFrame) private FTablaAlbaranes : TIBDataSet; FTablaDetallesAlbaranes : TIBDataSet; protected FCodigoAlbaran : Variant; procedure SetTablaAlbaranes (Value : TIBDataSet); procedure SetTablaDetallesAlbaranes (Value : TIBDataSet); procedure SetCodigoAlbaran (Value : Variant); virtual; procedure SetContenido (NuevoFrame : TRdxFrame); override; function TratarCambios : integer; override; procedure BuscarAlbaran; virtual; procedure CambiarModo(ModoAnterior, Modo : TRdxModo); override; public property TablaAlbaranes: TIBDataSet read FTablaAlbaranes write SetTablaAlbaranes; property TablaDetallesAlbaranes: TIBDataSet read FTablaDetallesAlbaranes write SetTablaDetallesAlbaranes; property CodigoAlbaran : Variant read FCodigoAlbaran write SetCodigoAlbaran; constructor Create (AOwner : TComponent); override; published property BaseDatos; property Transaccion; end; implementation {$R *.DFM} uses IB, Mensajes, StrFunc, Literales; { TRdxFrameAlbaranes } procedure TRdxFrameAlbaranes.BuscarAlbaran; begin // end; procedure TRdxFrameAlbaranes.CambiarModo(ModoAnterior, Modo: TRdxModo); begin inherited; if (FModo in [Normal, Seleccionar]) then begin TablaAlbaranes.Close; TablaAlbaranes.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 CodigoAlbaran (al activar el modo Añadir NO se pisa este valor con el código de albaran nuevo) } if (not TablaAlbaranes.Active) or (ModoAnterior = Anadir) then BuscarAlbaran; end; end; constructor TRdxFrameAlbaranes.Create(AOwner: TComponent); begin inherited Create(AOwner); FTablaAlbaranes := NIL; FTablaDetallesAlbaranes := NIL; end; procedure TRdxFrameAlbaranes.SetCodigoAlbaran(Value: Variant); begin if not EsCadenaVacia (Value) then begin FCodigoAlbaran := Value; BuscarAlbaran; end end; procedure TRdxFrameAlbaranes.SetContenido(NuevoFrame: TRdxFrame); begin if (FContenido <> NIL) then if (Contenido.Name = NuevoFrame.ClassName) then begin NuevoFrame.Free; exit; end; inherited; if (TablaAlbaranes <> NIL) then begin FCodigoAlbaran := TablaAlbaranes.FieldByName('CODIGO').AsString; if Contenido is TRdxFrameAlbaranes then (Contenido as TRdxFrameAlbaranes).CodigoAlbaran := FCodigoAlbaran; end; end; procedure TRdxFrameAlbaranes.SetTablaAlbaranes(Value: TIBDataSet); begin if (FTablaAlbaranes <> Value) then FTablaAlbaranes := Value; end; procedure TRdxFrameAlbaranes.SetTablaDetallesAlbaranes(Value: TIBDataSet); begin if (FTablaDetallesAlbaranes <> Value) then FTablaDetallesAlbaranes := Value; end; function TRdxFrameAlbaranes.TratarCambios: integer; begin if (TablaAlbaranes.Modified = True) or ((TablaDetallesAlbaranes <> NIL) and (TablaDetallesAlbaranes.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; end.