{ =============================================================================== 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: 05-12-2002 Versión actual: 1.0.2 Fecha versión actual: 28-05-2004 =============================================================================== Modificaciones: Fecha Comentarios --------------------------------------------------------------------------- 02-02-2004 Se ha eliminado el atributo SERIE (P8 MULTIEMPRESA) 28/05/2004 Se han adaptado los frames para que se autoconfiguren =============================================================================== } unit RdxFrameFacturasProveedor; {$I ..\COMPILE.INC} interface uses Windows, Classes, RdxFrame, RdxDBFrame, IBCustomDataSet, DB, Entidades; type TRdxFrameFacturasProveedor = class(TRdxDBFrame) private FTablaFacturasProveedor : TIBDataSet; FTablaDetallesFacturas : TIBDataSet; protected FListaFacturas : TStringList; procedure SetListaFacturas (Value : TStringList); procedure SetCodigoFactura (Value : Variant); procedure SetFCodigoFactura (Value : Variant); function GetCodigoFactura: Variant; function GetFCodigoFactura: Variant; procedure SetTablaFacturasProveedor (Value : TIBDataSet); procedure SetTablaDetallesFacturas (Value : TIBDataSet); procedure SetContenido (NuevoFrame : TRdxFrame); override; function TratarCambios : integer; override; procedure BuscarFactura; virtual; procedure CambiarModo(ModoAnterior, Modo : TRdxModo); override; function CambiarEntidad(EntidadAnterior, Entidad : TRdxEntidad): Boolean; override; public property TablaFacturasProveedor: TIBDataSet read FTablaFacturasProveedor write SetTablaFacturasProveedor; property TablaDetallesFacturas: TIBDataSet read FTablaDetallesFacturas write SetTablaDetallesFacturas; property ListaFacturas : TStringList read FListaFacturas write FListaFacturas; property CodigoFactura : Variant read GetCodigoFactura write SetCodigoFactura; property FCodigoFactura : Variant read GetFCodigoFactura write SetFCodigoFactura; constructor Create (AOwner : TComponent); override; destructor Destroy; override; published property BaseDatos; property Transaccion; end; implementation {$R *.DFM} uses IB, Mensajes, StrFunc, Literales, Configuracion {$IFDEF RDX_D6}, Variants{$ENDIF}; { TRdxFrameFacturasProveedor } constructor TRdxFrameFacturasProveedor.Create(AOwner: TComponent); begin inherited Create(AOwner); FListaFacturas := TStringList.Create; FTablaFacturasProveedor := NIL; FTablaDetallesFacturas := NIL; end; function TRdxFrameFacturasProveedor.TratarCambios : integer; begin if (TablaFacturasProveedor.State in dsEditModes) or ((TablaDetallesFacturas <> NIL) and (TablaDetallesFacturas.State in dsEditModes)) 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 TRdxFrameFacturasProveedor.SetCodigoFactura(Value: Variant); begin if not EsCadenaVacia(Value) then begin FCodigoFactura := Value; BuscarFactura; end end; procedure TRdxFrameFacturasProveedor.SetContenido(NuevoFrame: TRdxFrame); begin if (FContenido <> NIL) then if (Contenido.Name = NuevoFrame.ClassName) then begin NuevoFrame.Free; Exit; end; inherited; if (TablaFacturasProveedor <> NIL) then begin FCodigoFactura := TablaFacturasProveedor.FieldByName('CODIGO').Value; if Contenido is TRdxFrameFacturasProveedor then begin (Contenido as TRdxFrameFacturasProveedor).CodigoFactura := FCodigoFactura; end; end; end; procedure TRdxFrameFacturasProveedor.CambiarModo(ModoAnterior, Modo : TRdxModo); begin inherited; if (FModo in [Normal, Seleccionar]) then begin TablaFacturasProveedor.Close; TablaFacturasProveedor.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 Factura que tiene el frame en CodigoFactura (al activar el modo Añadir NO se pisa este valor con el código de Factura nuevo) } if (not TablaFacturasProveedor.Active) or (ModoAnterior = Anadir) then BuscarFactura; end; end; procedure TRdxFrameFacturasProveedor.SetTablaFacturasProveedor(Value: TIBDataSet); begin if (FTablaFacturasProveedor <> Value) then FTablaFacturasProveedor := Value; end; procedure TRdxFrameFacturasProveedor.SetTablaDetallesFacturas(Value: TIBDataSet); begin if (FTablaDetallesFacturas <> Value) then FTablaDetallesFacturas := Value; end; procedure TRdxFrameFacturasProveedor.BuscarFactura; begin // end; function TRdxFrameFacturasProveedor.GetCodigoFactura: Variant; begin Result := FCodigoFactura; end; function TRdxFrameFacturasProveedor.GetFCodigoFactura: Variant; begin if (ListaFacturas.Count = 0) then Result := NULL else Result := ListaFacturas.Strings[ListaFacturas.Count-1]; end; procedure TRdxFrameFacturasProveedor.SetFCodigoFactura(Value: Variant); begin FListaFacturas.Clear; if (not VarIsNull(Value)) then FListaFacturas.Add(Value); end; procedure TRdxFrameFacturasProveedor.SetListaFacturas(Value: TStringList); begin if (Value = NIL) or (Value.Count = 0) then exit; FListaFacturas.Clear; FListaFacturas.Assign(Value); end; destructor TRdxFrameFacturasProveedor.Destroy; begin FListaFacturas.Free; FListaFacturas := NIL; inherited; end; function TRdxFrameFacturasProveedor.CambiarEntidad(EntidadAnterior, Entidad: TRdxEntidad): Boolean; begin inherited CambiarEntidad(EntidadAnterior, Entidad); ConfigurarFrame(Self, Self.Entidad); end; end.