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/RdxFrameProveedores.pas
2007-06-21 15:47:20 +00:00

168 lines
5.3 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.4
Fecha versión actual: 09-04-2001
===============================================================================
Modificaciones:
Fecha Comentarios
---------------------------------------------------------------------------
01-10-2001 Añadir la tabla de sucursales de cliente.
07-04-2002 Se ha adaptado el frame para transacción única.
09-04-2002 Sustituir las constantes IDYES/IDNO por IDOK.
09-04-2002 En la función 'TratarCambios' cambiar .Modified por
.UpdatesPending en las tablas que usen caché.
===============================================================================
}
unit RdxFrameProveedores;
{$I ..\COMPILE.INC}
interface
uses
Consts, Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
RdxFrame, RdxDBFrame, IBCustomDataSet, IBDataBase, DB, Tipos, IBEvents;
type
TRdxFrameProveedores = class(TRdxDBFrame)
private
FTablaProveedores : TIBDataSet;
FTablaSucursales : TIBDataSet;
protected
FCodigoProveedor : Variant;
procedure SetTablaProveedores (Value : TIBDataSet);
procedure SetTablaSucursales (Value : TIBDataSet);
procedure SetCodigoProveedor (Value : Variant); virtual;
procedure SetContenido (NuevoFrame : TRdxFrame); override;
function TratarCambios : integer; override;
procedure BuscarProveedor; virtual;
procedure CambiarModo(ModoAnterior, Modo : TRdxModo); override;
public
property TablaProveedores: TIBDataSet read FTablaProveedores write SetTablaProveedores;
property TablaSucursales: TIBDataSet read FTablaSucursales write SetTablaSucursales;
property CodigoProveedor : Variant read FCodigoProveedor write SetCodigoProveedor;
constructor Create (AOwner : TComponent); override;
published
property BaseDatos;
property Transaccion;
end;
implementation
{$R *.DFM}
uses
IB, Mensajes, StrFunc, Literales
{$IFDEF RDX_D6}, Variants{$ENDIF};
{ TRdxFrameProveedores }
constructor TRdxFrameProveedores.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FCodigoProveedor := NULL;
FTablaProveedores := NIL;
FTablaSucursales := NIL;
end;
function TRdxFrameProveedores.TratarCambios : integer;
begin
if (TablaProveedores.Modified = True) or
((TablaSucursales <> NIL) and (TablaSucursales.UpdatesPending = True)) then
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
else Result := IDOK;
end;
procedure TRdxFrameProveedores.SetCodigoProveedor(Value: Variant);
begin
if (not EsCadenaVacia(Value)) then
begin
FCodigoProveedor := Value;
BuscarProveedor;
end
end;
procedure TRdxFrameProveedores.SetContenido(NuevoFrame: TRdxFrame);
begin
if (Contenido <> NIL) then
if (Contenido.Name = NuevoFrame.ClassName) then
begin
NuevoFrame.Free;
Exit;
end;
inherited;
if TablaProveedores <> NIL then
begin
FCodigoProveedor := TablaProveedores.FieldByName('CODIGO').Value;
if Contenido is TRdxFrameProveedores then
(Contenido as TRdxFrameProveedores).CodigoProveedor := FCodigoProveedor;
end;
end;
procedure TRdxFrameProveedores.CambiarModo(ModoAnterior, Modo : TRdxModo);
begin
inherited;
if (FModo in [Normal, Seleccionar]) then
begin
TablaProveedores.Close;
TablaProveedores.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 pedido que tiene el frame
en CodigoProveedor (al activar el modo Añadir NO se pisa este valor con
el código de pedido nuevo) }
if (not TablaProveedores.Active) or (ModoAnterior = Anadir) then
BuscarProveedor;
end;
end;
procedure TRdxFrameProveedores.SetTablaProveedores(Value: TIBDataSet);
begin
if (FTablaProveedores <> Value) then
FTablaProveedores := Value;
end;
procedure TRdxFrameProveedores.SetTablaSucursales(Value: TIBDataSet);
begin
if (FTablaSucursales <> Value) then
FTablaSucursales := Value;
end;
procedure TRdxFrameProveedores.BuscarProveedor;
begin
//
end;
end.