This repository has been archived on 2024-12-02. You can view files and clone it, but cannot push or open issues or pull requests.
FactuGES/Frames/RdxFrameDetallesLibro.pas
2007-06-26 08:08:27 +00:00

191 lines
6.1 KiB
ObjectPascal

{
===============================================================================
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: 26-01-2003
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 RdxFrameDetallesLibro;
{$I ..\COMPILE.INC}
interface
uses
Windows, Classes,
RdxFrame, RdxDBFrame, IBCustomDataSet, DB, Entidades;
type
TRdxFrameDetallesLibro = class(TRdxDBFrame)
private
FTipoLibro : Variant;
FNumEntrada : Variant;
FTablaDetallesLibro: TIBDataSet;
procedure SetTablaDetallesLibro(Value: TIBDataSet);
protected //Pueden ser overrideados por el hijo
procedure SetNumEntrada (Value : Variant); virtual;
procedure SetTipoLibro (Value : Variant); virtual;
procedure SetContenido (NuevoFrame : TRdxFrame); override;
function TratarCambios : integer; override;
procedure BuscarLibro; virtual;
procedure BuscarNumEntrada; virtual;
procedure CambiarModo(ModoAnterior, Modo : TRdxModo); override;
function CambiarEntidad(EntidadAnterior, Entidad : TRdxEntidad): Boolean; override;
public
property TablaDetallesLibro: TIBDataSet read FTablaDetallesLibro write SetTablaDetallesLibro;
property TipoLibro : Variant read FTipoLibro write SetTipoLibro;
property NumEntrada : Variant read FNumEntrada write SetNumEntrada;
constructor Create (AOwner : TComponent); override;
published
end;
implementation
{$R *.DFM}
uses
Mensajes, StrFunc, Literales, Configuracion
{$IFDEF RDX_D6}, Variants{$ENDIF};
{ TRdxFrameDetallesLibro }
////////////////////////////////////////////////////////////////////////////////
// PRIVATE
////////////////////////////////////////////////////////////////////////////////
procedure TRdxFrameDetallesLibro.SetNumEntrada(Value: Variant);
begin
if (not esCadenaVacia(Value)) then
begin
FNumEntrada := Value;
BuscarNumEntrada;
end;
end;
procedure TRdxFrameDetallesLibro.SetTablaDetallesLibro(Value: TIBDataSet);
begin
if (FTablaDetallesLibro <> Value) then
FTablaDetallesLibro := Value;
end;
////////////////////////////////////////////////////////////////////////////////
// PROTECTED
////////////////////////////////////////////////////////////////////////////////
procedure TRdxFrameDetallesLibro.SetTipoLibro(Value: Variant);
begin
if not EsCadenaVacia(Value) then
begin
FTipoLibro := Value;
BuscarLibro;
end
end;
procedure TRdxFrameDetallesLibro.SetContenido(NuevoFrame: TRdxFrame);
begin
if (FContenido <> NIL) then
if (Contenido.Name = NuevoFrame.ClassName) then
begin
NuevoFrame.Free;
exit;
end;
inherited;
if (TablaDetallesLibro <> NIL) then
begin
if Contenido is TRdxFrameDetallesLibro then begin
FTipoLibro := TablaDetallesLibro.FieldByName('TIPOLIBRO').Value;
FNumEntrada := TablaDetallesLibro.FieldByName('NUMENTRADA').Value;
(Contenido as TRdxFrameDetallesLibro).TipoLibro := FTipoLibro;
(Contenido as TRdxFrameDetallesLibro).NumEntrada := FNumEntrada;
end;
end;
end;
function TRdxFrameDetallesLibro.TratarCambios : integer;
begin
if (TablaDetallesLibro.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 TRdxFrameDetallesLibro.BuscarLibro;
begin
//
end;
procedure TRdxFrameDetallesLibro.BuscarNumEntrada;
begin
//
end;
procedure TRdxFrameDetallesLibro.CambiarModo(ModoAnterior, Modo : TRdxModo);
begin
inherited;
if (FModo in [Normal, Seleccionar]) then
begin
TablaDetallesLibro.Close;
TablaDetallesLibro.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 pago que tiene el frame
en CodigoPago (al activar el modo Añadir NO se pisa este valor con
el código de pago nuevo), preguntamos si la tabla esta activa por si
se ha cerrado al realizar algun cambio en modificar y ejecutar TratarCambios}
if (not TablaDetallesLibro.Active) or (ModoAnterior = Anadir) then
BuscarNumEntrada;
end;
end;
////////////////////////////////////////////////////////////////////////////////
// PUBLIC
////////////////////////////////////////////////////////////////////////////////
constructor TRdxFrameDetallesLibro.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FTipoLibro := NULL;
FNumEntrada := NULL;
FTablaDetallesLibro := NIL;
end;
function TRdxFrameDetallesLibro.CambiarEntidad(EntidadAnterior,
Entidad: TRdxEntidad): Boolean;
begin
inherited CambiarEntidad(EntidadAnterior, Entidad);
ConfigurarFrame(Self, Self.Entidad);
end;
end.