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/RdxFramePresupuestos.pas
2007-06-26 08:08:27 +00:00

173 lines
6.0 KiB
ObjectPascal

{
===============================================================================
Copyright (©) 2003. 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: 02-12-2002
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 RdxFramePresupuestos;
{$I ..\COMPILE.INC}
interface
uses
Windows, Classes,
RdxFrame, RdxDBFrame, IBCustomDataSet, DB, Entidades;
type
TRdxFramePresupuestos = class(TRdxDBFrame)
private
FTablaPresupuestos : TIBDataSet;
FTablaDetallesPresupuestos : TIBDataSet;
FTablaPropiedadesPresupuestos : TIBDataSet;
protected
FCodigoPresupuesto : Variant;
procedure SetTablaPresupuestos (Value : TIBDataSet);
procedure SetTablaDetallesPresupuestos (Value : TIBDataSet);
procedure SetTablaPropiedadesPresupuestos (Value : TIBDataSet);
procedure SetCodigoPresupuesto (Value : Variant); virtual;
procedure SetContenido (NuevoFrame : TRdxFrame); override;
function TratarCambios : integer; override;
procedure BuscarPresupuesto; virtual; abstract;
procedure CambiarModo(ModoAnterior, Modo : TRdxModo); override;
function CambiarEntidad(EntidadAnterior, Entidad : TRdxEntidad): Boolean; override;
public
property TablaPresupuestos: TIBDataSet read FTablaPresupuestos write SetTablaPresupuestos;
property TablaDetallesPresupuestos: TIBDataSet read FTablaDetallesPresupuestos write SetTablaDetallesPresupuestos;
property TablaPropiedadesPresupuestos: TIBDataSet read FTablaPropiedadesPresupuestos write SetTablaPropiedadesPresupuestos;
property CodigoPresupuesto : Variant read FCodigoPresupuesto write SetCodigoPresupuesto;
constructor Create (AOwner : TComponent); override;
published
property BaseDatos;
property Transaccion;
end;
implementation
{$R *.DFM}
uses
StrFunc, Mensajes, Literales, Configuracion
{$IFDEF RDX_D6}, Variants{$ENDIF};
{ TRdxFramePresupuestos }
constructor TRdxFramePresupuestos.Create (AOwner : TComponent);
begin
inherited Create(AOwner);
FCodigoPresupuesto := NULL;
FTablaPresupuestos := NIL;
FTablaDetallesPresupuestos := NIL;
FTablaPropiedadesPresupuestos := NIL;
end;
function TRdxFramePresupuestos.TratarCambios : integer;
begin
if (TablaPresupuestos.State in [dsEdit, dsInsert]) or
((TablaDetallesPresupuestos <> NIL) and (TablaDetallesPresupuestos.State in dsEditModes)) or
((TablaPropiedadesPresupuestos <> NIL) and (TablaPropiedadesPresupuestos.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 TRdxFramePresupuestos.SetCodigoPresupuesto(Value: Variant);
begin
if not EsCadenaVacia (Value) then
FCodigoPresupuesto := Value;
BuscarPresupuesto;
end;
procedure TRdxFramePresupuestos.SetContenido(NuevoFrame: TRdxFrame);
begin
if (FContenido <> NIL) then
if (Contenido.Name = NuevoFrame.ClassName) then
begin
NuevoFrame.Free;
exit;
end;
inherited;
if (TablaPresupuestos <> NIL) then
begin
FCodigoPresupuesto := TablaPresupuestos.FieldByName('CODIGO').Value;
if Contenido is TRdxFramePresupuestos then
(Contenido as TRdxFramePresupuestos).CodigoPresupuesto := FCodigoPresupuesto;
end;
end;
procedure TRdxFramePresupuestos.CambiarModo(ModoAnterior, Modo : TRdxModo);
begin
inherited;
if (FModo in [Normal, Seleccionar]) then
begin
TablaPresupuestos.Close;
TablaPresupuestos.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 presupuesto que tiene el frame
en CodigoPresupuesto (al activar el modo Añadir NO se pisa este valor con
el código de presupuesto nuevo) }
if (not TablaPresupuestos.Active) or (ModoAnterior = Anadir) then
BuscarPresupuesto;
end;
end;
procedure TRdxFramePresupuestos.SetTablaPresupuestos(Value: TIBDataSet);
begin
if (FTablaPresupuestos <> Value) then
FTablaPresupuestos := Value;
end;
procedure TRdxFramePresupuestos.SetTablaDetallesPresupuestos(Value: TIBDataSet);
begin
if (FTablaDetallesPresupuestos <> Value) then
FTablaDetallesPresupuestos := Value;
end;
procedure TRdxFramePresupuestos.SetTablaPropiedadesPresupuestos(
Value: TIBDataSet);
begin
if (FTablaPropiedadesPresupuestos <> Value) then
FTablaPropiedadesPresupuestos := Value;
end;
function TRdxFramePresupuestos.CambiarEntidad(EntidadAnterior, Entidad: TRdxEntidad): Boolean;
begin
inherited CambiarEntidad(EntidadAnterior, Entidad);
ConfigurarFrame(Self, Self.Entidad);
end;
end.