This repository has been archived on 2024-11-29. You can view files and clone it, but cannot push or open issues or pull requests.
Tecsitel_FactuGES/Frames/RdxDBFrame.pas
2007-06-21 15:47:20 +00:00

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.