285 lines
7.0 KiB
ObjectPascal
285 lines
7.0 KiB
ObjectPascal
|
|
{
|
|||
|
|
===============================================================================
|
|||
|
|
Copyright (<EFBFBD>) 2001. Rodax Software.
|
|||
|
|
===============================================================================
|
|||
|
|
Los contenidos de este fichero son propiedad de Rodax Software titular del
|
|||
|
|
copyright. Este fichero s<EFBFBD>lo podr<EFBFBD> ser copiado, distribuido y utilizado,
|
|||
|
|
en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
|
|||
|
|
acuerdo con los t<EFBFBD>rminos y condiciones establecidas en el acuerdo/contrato
|
|||
|
|
bajo el que se suministra.
|
|||
|
|
-----------------------------------------------------------------------------
|
|||
|
|
Web: www.rodax-software.com
|
|||
|
|
===============================================================================
|
|||
|
|
Fecha primera versi<EFBFBD>n: 01-10-2001
|
|||
|
|
Versi<EFBFBD>n actual: 1.0.1
|
|||
|
|
Fecha versi<EFBFBD>n actual: 07-04-2002
|
|||
|
|
===============================================================================
|
|||
|
|
Modificaciones:
|
|||
|
|
|
|||
|
|
Fecha Comentarios
|
|||
|
|
---------------------------------------------------------------------------
|
|||
|
|
07-04-2002 Se ha adaptado el frame para transacci<EFBFBD>n <EFBFBD>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<EFBFBD>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<EFBFBD>n vac<EFBFBD>a sirve para evitar que los frames hijos que no tengan
|
|||
|
|
cambios en las tablas (grids por ejemplo) est<EFBFBD>n obligados a
|
|||
|
|
redefinir esta funci<EFBFBD>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.
|
|||
|
|
|