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

159 lines
5.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.2
Fecha versión actual: 09-04-2002
===============================================================================
Modificaciones:
Fecha Comentarios
---------------------------------------------------------------------------
07-04-2002 Se ha adaptado el frame para transacción única.
09-04-2002 Sustituir las constantes IDYES/IDNO por IDOK.
===============================================================================
}
unit RdxFrameAlbaranes;
interface
uses
Consts, Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
RdxFrame, RdxDBFrame, IBCustomDataSet, Tipos, IBDataBase, DB;
type
TRdxFrameAlbaranes = class(TRdxDBFrame)
private
FTablaAlbaranes : TIBDataSet;
FTablaDetallesAlbaranes : TIBDataSet;
protected
FCodigoAlbaran : Variant;
procedure SetTablaAlbaranes (Value : TIBDataSet);
procedure SetTablaDetallesAlbaranes (Value : TIBDataSet);
procedure SetCodigoAlbaran (Value : Variant); virtual;
procedure SetContenido (NuevoFrame : TRdxFrame); override;
function TratarCambios : integer; override;
procedure BuscarAlbaran; virtual;
procedure CambiarModo(ModoAnterior, Modo : TRdxModo); override;
public
property TablaAlbaranes: TIBDataSet read FTablaAlbaranes write SetTablaAlbaranes;
property TablaDetallesAlbaranes: TIBDataSet read FTablaDetallesAlbaranes write SetTablaDetallesAlbaranes;
property CodigoAlbaran : Variant read FCodigoAlbaran write SetCodigoAlbaran;
constructor Create (AOwner : TComponent); override;
published
property BaseDatos;
property Transaccion;
end;
implementation
{$R *.DFM}
uses
IB, Mensajes, StrFunc, Literales;
{ TRdxFrameAlbaranes }
procedure TRdxFrameAlbaranes.BuscarAlbaran;
begin
//
end;
procedure TRdxFrameAlbaranes.CambiarModo(ModoAnterior, Modo: TRdxModo);
begin
inherited;
if (FModo in [Normal, Seleccionar]) then
begin
TablaAlbaranes.Close;
TablaAlbaranes.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 CodigoAlbaran (al activar el modo Añadir NO se pisa este valor con
el código de albaran nuevo) }
if (not TablaAlbaranes.Active) or (ModoAnterior = Anadir) then
BuscarAlbaran;
end;
end;
constructor TRdxFrameAlbaranes.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FTablaAlbaranes := NIL;
FTablaDetallesAlbaranes := NIL;
end;
procedure TRdxFrameAlbaranes.SetCodigoAlbaran(Value: Variant);
begin
if not EsCadenaVacia (Value) then
begin
FCodigoAlbaran := Value;
BuscarAlbaran;
end
end;
procedure TRdxFrameAlbaranes.SetContenido(NuevoFrame: TRdxFrame);
begin
if (FContenido <> NIL) then
if (Contenido.Name = NuevoFrame.ClassName) then
begin
NuevoFrame.Free;
exit;
end;
inherited;
if (TablaAlbaranes <> NIL) then
begin
FCodigoAlbaran := TablaAlbaranes.FieldByName('CODIGO').AsString;
if Contenido is TRdxFrameAlbaranes then
(Contenido as TRdxFrameAlbaranes).CodigoAlbaran := FCodigoAlbaran;
end;
end;
procedure TRdxFrameAlbaranes.SetTablaAlbaranes(Value: TIBDataSet);
begin
if (FTablaAlbaranes <> Value) then
FTablaAlbaranes := Value;
end;
procedure TRdxFrameAlbaranes.SetTablaDetallesAlbaranes(Value: TIBDataSet);
begin
if (FTablaDetallesAlbaranes <> Value) then
FTablaDetallesAlbaranes := Value;
end;
function TRdxFrameAlbaranes.TratarCambios: integer;
begin
if (TablaAlbaranes.Modified = True) or
((TablaDetallesAlbaranes <> NIL) and (TablaDetallesAlbaranes.Modified = True)) then
begin
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
end
else Result := IDOK;
end;
end.