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

216 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: 13-05-2002
Versión actual: 1.0.0
Fecha versión actual: 13-05-2002
===============================================================================
Modificaciones:
Fecha Comentarios
---------------------------------------------------------------------------
===============================================================================
}
unit RdxFrameArticulosObraHistorica;
{$I ..\COMPILE.INC}
interface
uses
Consts, Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, IB, IBCustomDataSet, IBDataBase, DB, Mensajes, Tipos,
RdxFrame, RdxDBFrame;
type
TRdxFrameArticulosObraHistorica = class(TRdxDBFrame)
private
FTablaArticulosObraHistorica : TIBDataSet;
protected
FCodigoAlmacen : TTipoCodigoFecha;
FListaArticulos : TStringList;
FListaAlmacenesCodigo : TStringList;
procedure SetTablaArticulosObraHistorica (Value : TIBDataSet);
procedure SetCodigoAlmacen (Value : TTipoCodigoFecha); virtual;
procedure SetCodigoArticulo (Value : Variant);
procedure SetFCodigoArticulo (Value : Variant);
procedure SetListaArticulos (Value : TStringList);
function GetCodigoArticulo: Variant;
function GetFCodigoArticulo: Variant;
procedure SetContenido (NuevoFrame : TRdxFrame); override;
function TratarCambios : integer; override;
procedure BuscarAlmacen; virtual; abstract;
procedure BuscarArticulo; virtual; abstract;
procedure CambiarModo(ModoAnterior, Modo : TRdxModo); override;
public
property TablaArticulosObraHistorica: TIBDataSet read FTablaArticulosObraHistorica write SetTablaArticulosObraHistorica;
property CodigoAlmacen : TTipoCodigoFecha read FCodigoAlmacen write SetCodigoAlmacen;
property CodigoArticulo : Variant read GetCodigoArticulo write SetCodigoArticulo;
property FCodigoArticulo : Variant read GetFCodigoArticulo write SetFCodigoArticulo;
property ListaArticulos : TStringList read FListaArticulos write SetListaArticulos;
constructor Create (AOwner : TComponent); override;
destructor Destroy; override;
published
property BaseDatos;
property Transaccion;
end;
implementation
{$R *.DFM}
uses
Literales{$IFDEF RDX_D6},Variants{$ENDIF};
{ TRdxFrameArticulosObraHistorica }
constructor TRdxFrameArticulosObraHistorica.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FListaArticulos:= TStringList.Create;
FListaAlmacenesCodigo := TStringList.Create;
FCodigoAlmacen := NIL;
FTablaArticulosObraHistorica := NIL;
end;
destructor TRdxFrameArticulosObraHistorica.Destroy;
begin
FListaArticulos.Free;
FListaArticulos := NIL;
FListaAlmacenesCodigo.Free;
FListaAlmacenesCodigo := NIL;
inherited;
end;
function TRdxFrameArticulosObraHistorica.TratarCambios : integer;
begin
if (TablaArticulosObraHistorica.Modified = 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 TRdxFrameArticulosObraHistorica.SetContenido(NuevoFrame: TRdxFrame);
begin
if Contenido <> NIL then
if Contenido.Name = NuevoFrame.ClassName then
begin
NuevoFrame.Free;
exit;
end;
inherited;
if TablaArticulosObraHistorica <> NIL then
begin
if Contenido is TRdxFrameArticulosObraHistorica then begin
FCodigoAlmacen.Codigo := TablaArticulosObraHistorica.FieldByName('CODIGOOBRA').Value;
FCodigoAlmacen.Fecha := TablaArticulosObraHistorica.FieldByName('FECHACIERRE').Value;
FCodigoArticulo := TablaArticulosObraHistorica.FieldByName('CODIGOARTICULO').Value;
(Contenido as TRdxFrameArticulosObraHistorica).CodigoAlmacen := FCodigoAlmacen;
(Contenido as TRdxFrameArticulosObraHistorica).CodigoArticulo := FCodigoArticulo;
end;
end;
end;
procedure TRdxFrameArticulosObraHistorica.SetTablaArticulosObraHistorica(Value: TIBDataSet);
begin
if (FTablaArticulosObraHistorica <> Value) then
begin
FTablaArticulosObraHistorica := Value;
end;
end;
procedure TRdxFrameArticulosObraHistorica.CambiarModo(ModoAnterior, Modo : TRdxModo);
begin
inherited;
if (FModo in [Normal, Seleccionar]) then
begin
TablaArticulosObraHistorica.Close;
TablaArticulosObraHistorica.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 almacén que tiene el frame
en CodigoAlmacen (al activar el modo Añadir NO se pisa este valor con
el código de almacén nuevo), preguntamos si la tabla esta activa por si
se ha cerrado al realizar algun cambio en modificar y ejecutar TratarCambios}
if (not TablaArticulosObraHistorica.Active) or (ModoAnterior = Anadir) then
BuscarArticulo;
end;
end;
procedure TRdxFrameArticulosObraHistorica.SetCodigoAlmacen(Value: TTipoCodigoFecha);
begin
if (Value <> Nil) then
begin
FCodigoAlmacen := Value;
BuscarAlmacen;
end;
end;
function TRdxFrameArticulosObraHistorica.GetCodigoArticulo: Variant;
begin
Result := FCodigoArticulo;
end;
function TRdxFrameArticulosObraHistorica.GetFCodigoArticulo: Variant;
begin
if (FListaArticulos.Count = 0) then
Result := NULL
else
Result := FListaArticulos.Strings[FListaArticulos.Count-1];
end;
procedure TRdxFrameArticulosObraHistorica.SetCodigoArticulo(Value: Variant);
begin
if (not VarIsNull(Value)) then
begin
FCodigoArticulo := Value;
BuscarArticulo;
end;
end;
procedure TRdxFrameArticulosObraHistorica.SetFCodigoArticulo(Value: Variant);
begin
FListaArticulos.Clear;
if (not VarIsNull(Value)) then
FListaArticulos.Add(Value);
end;
procedure TRdxFrameArticulosObraHistorica.SetListaArticulos(Value: TStringList);
begin
if (Value = Nil) or (Value.Count = 0) then
exit;
FListaArticulos.Clear;
FListaArticulos.Assign(Value);
end;
end.