git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES/trunk@4 b68bf8ae-e977-074f-a058-3cfd71dd8f45
285 lines
7.0 KiB
ObjectPascal
285 lines
7.0 KiB
ObjectPascal
{
|
|
===============================================================================
|
|
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.1
|
|
Fecha versión actual: 07-04-2002
|
|
===============================================================================
|
|
Modificaciones:
|
|
|
|
Fecha Comentarios
|
|
---------------------------------------------------------------------------
|
|
07-04-2002 Se ha adaptado el frame para transacción única.
|
|
===============================================================================
|
|
}
|
|
|
|
unit RdxDBFrame;
|
|
|
|
interface
|
|
|
|
uses
|
|
Consts, Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
RdxFrame, IBCustomDataSet, Tipos, IBDatabase, IBEvents;
|
|
|
|
type
|
|
TRdxDBFrame = class(TRdxFrame)
|
|
private
|
|
FBaseDatos : TIBDataBase;
|
|
FTransaccion : TIBTransaction;
|
|
procedure SetBaseDatos (Value : TIBDataBase);
|
|
procedure SetTransaccion (Value : TIBTransaction);
|
|
protected
|
|
procedure SetModo (Value : TRdxModo); override;
|
|
procedure ActivarModo; virtual;
|
|
function TratarCambios : integer; virtual;
|
|
procedure ActivarModoAnadir; virtual;
|
|
procedure ActivarModoModificar; virtual;
|
|
procedure ActivarModoConsultar; virtual;
|
|
procedure ActivarModoEliminar; virtual;
|
|
procedure ActivarModoTraslado; virtual;
|
|
procedure ActivarModoEntrada; virtual;
|
|
procedure ActivarModoEntradaPedido; virtual;
|
|
procedure ActivarModoSalida; virtual;
|
|
procedure ActivarModoSalidaDevolucion; virtual;
|
|
function ComprobarDatos : Boolean; virtual;
|
|
function RealizarOperacion : Boolean; virtual;
|
|
function DescartarOperacion : Boolean; virtual;
|
|
function AnadirDatos : Boolean; virtual; abstract;
|
|
function ModificarDatos : Boolean; virtual;
|
|
function EliminarDatos : Boolean; virtual;
|
|
function CancelarAnadir : Boolean; virtual;
|
|
function CancelarModificar : Boolean; virtual;
|
|
function CancelarEliminar : Boolean; virtual;
|
|
public
|
|
property BaseDatos : TIBDataBase read FBaseDatos write SetBaseDatos;
|
|
property Transaccion : TIBTransaction read FTransaccion write SetTransaccion;
|
|
procedure Rollback;
|
|
procedure Commit;
|
|
constructor Create (AOwner : TComponent); override;
|
|
destructor Destroy; override;
|
|
function CloseFrame : boolean; override;
|
|
published
|
|
property OnShow;
|
|
end;
|
|
|
|
implementation
|
|
{$R *.DFM}
|
|
|
|
uses
|
|
IB, DB, Mensajes;
|
|
|
|
{ TRdxDBFrame }
|
|
|
|
constructor TRdxDBFrame.Create(AOwner: TComponent);
|
|
begin
|
|
inherited Create(AOwner);
|
|
FTransaccion := NIL;
|
|
FBaseDatos := NIL;
|
|
end;
|
|
|
|
procedure TRdxDBFrame.Commit;
|
|
begin
|
|
if FTransaccion = NIL then
|
|
Exit;
|
|
if FTransaccion.InTransaction then
|
|
FTransaccion.CommitRetaining;
|
|
end;
|
|
|
|
procedure TRdxDBFrame.Rollback;
|
|
begin
|
|
if FTransaccion = NIL then
|
|
exit;
|
|
if FTransaccion.InTransaction then
|
|
FTransaccion.RollbackRetaining;
|
|
end;
|
|
|
|
procedure TRdxDBFrame.SetTransaccion(Value: TIBTransaction);
|
|
begin
|
|
if (Value = NIL) then
|
|
Exit;
|
|
|
|
if (FTransaccion <> Value) then
|
|
FTransaccion := Value;
|
|
end;
|
|
|
|
procedure TRdxDBFrame.SetBaseDatos(Value: TIBDataBase);
|
|
begin
|
|
if (FBaseDatos <> Value) then
|
|
FBaseDatos := Value;
|
|
end;
|
|
|
|
procedure TRdxDBFrame.SetModo(Value: TRdxModo);
|
|
begin
|
|
if Modo = Value then
|
|
exit;
|
|
if TratarCambios = IDCANCEL then
|
|
exit;
|
|
inherited;
|
|
ActivarModo;
|
|
end;
|
|
|
|
function TRdxDBFrame.DescartarOperacion: Boolean;
|
|
begin
|
|
case Modo of
|
|
Anadir : Result := CancelarAnadir;
|
|
Modificar : Result := CancelarModificar;
|
|
Eliminar : Result := CancelarEliminar;
|
|
end;
|
|
end;
|
|
|
|
function TRdxDBFrame.RealizarOperacion: Boolean;
|
|
begin
|
|
case Modo of
|
|
Anadir : begin
|
|
if ComprobarDatos then
|
|
Result := AnadirDatos
|
|
else
|
|
Result := False;
|
|
end;
|
|
Modificar : begin
|
|
if ComprobarDatos then
|
|
Result := ModificarDatos
|
|
else
|
|
Result := False;
|
|
end;
|
|
Eliminar : begin
|
|
if ComprobarDatos then
|
|
Result := EliminarDatos
|
|
else
|
|
Result := False;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
function TRdxDBFrame.CloseFrame : boolean;
|
|
begin
|
|
{ Sólo tratamos los cambios en aquellos frames que sean visibles.
|
|
Cuando no son visibles no se pregunta porque lo que se quiere
|
|
es cerrarlo sin mostrar nada por pantalla (por ejemplo, cuando
|
|
se quiere facturar un pedido que no se puede). }
|
|
if Visible then
|
|
begin
|
|
if TratarCambios = IDCANCEL then
|
|
begin
|
|
Result := False;
|
|
Exit;
|
|
end;
|
|
end;
|
|
Result := inherited CloseFrame;
|
|
end;
|
|
|
|
function TRdxDBFrame.TratarCambios: integer;
|
|
begin
|
|
{ Esta función vacía sirve para evitar que los frames hijos que no tengan
|
|
cambios en las tablas (grids por ejemplo) estén obligados a
|
|
redefinir esta función aunque luego no les sirva de nada. }
|
|
Result := IDOK;
|
|
end;
|
|
|
|
procedure TRdxDBFrame.ActivarModo;
|
|
begin
|
|
case Modo of
|
|
Anadir : ActivarModoAnadir;
|
|
Modificar : ActivarModoModificar;
|
|
Consultar : ActivarModoConsultar;
|
|
Eliminar : ActivarModoEliminar;
|
|
Traslado : ActivarModoTraslado;
|
|
Entrada : ActivarModoEntrada;
|
|
EntradaPedido : ActivarModoEntradaPedido;
|
|
Salida : ActivarModoSalida;
|
|
SalidaDevolucion : ActivarModoSalidaDevolucion;
|
|
end;
|
|
end;
|
|
|
|
procedure TRdxDBFrame.ActivarModoAnadir;
|
|
begin
|
|
//
|
|
end;
|
|
|
|
procedure TRdxDBFrame.ActivarModoConsultar;
|
|
begin
|
|
//
|
|
end;
|
|
|
|
procedure TRdxDBFrame.ActivarModoEliminar;
|
|
begin
|
|
//
|
|
end;
|
|
|
|
procedure TRdxDBFrame.ActivarModoModificar;
|
|
begin
|
|
//
|
|
end;
|
|
|
|
function TRdxDBFrame.CancelarAnadir: Boolean;
|
|
begin
|
|
//
|
|
end;
|
|
|
|
function TRdxDBFrame.CancelarEliminar: Boolean;
|
|
begin
|
|
//
|
|
end;
|
|
|
|
function TRdxDBFrame.CancelarModificar: Boolean;
|
|
begin
|
|
//
|
|
end;
|
|
|
|
function TRdxDBFrame.EliminarDatos: Boolean;
|
|
begin
|
|
//
|
|
end;
|
|
|
|
function TRdxDBFrame.ModificarDatos: Boolean;
|
|
begin
|
|
//
|
|
end;
|
|
|
|
procedure TRdxDBFrame.ActivarModoTraslado;
|
|
begin
|
|
//
|
|
end;
|
|
|
|
procedure TRdxDBFrame.ActivarModoEntrada;
|
|
begin
|
|
//
|
|
end;
|
|
|
|
procedure TRdxDBFrame.ActivarModoEntradaPedido;
|
|
begin
|
|
//
|
|
end;
|
|
|
|
procedure TRdxDBFrame.ActivarModoSalida;
|
|
begin
|
|
//
|
|
end;
|
|
|
|
procedure TRdxDBFrame.ActivarModoSalidaDevolucion;
|
|
begin
|
|
//
|
|
end;
|
|
|
|
function TRdxDBFrame.ComprobarDatos: Boolean;
|
|
begin
|
|
//
|
|
end;
|
|
|
|
destructor TRdxDBFrame.Destroy;
|
|
begin
|
|
inherited;
|
|
end;
|
|
|
|
end.
|
|
|