{
===============================================================================
  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 transaccion unica.
===============================================================================
}

unit RdxFrameProvincias;

{$I ..\COMPILE.INC}

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  IBDatabase, IBCustomDataSet, Tipos, DB, RdxFrame, RdxDBFrame;

type
  TRdxFrameProvincias = class(TRdxDBFrame)
  private
    FTablaProvincias : TIBDataSet;
  protected
    FCodigoProvincia : Variant;
    procedure SetTablaProvincias (Value : TIBDataSet);
    procedure SetCodigoProvincia (Value : Variant); virtual;
    procedure SetContenido (NuevoFrame : TRdxFrame); override;
    procedure BuscarProvincia; virtual;
    procedure CambiarModo(ModoAnterior, Modo : TRdxModo); override;
  public
    property TablaProvincias: TIBDataSet read FTablaProvincias write SetTablaProvincias;
    property CodigoProvincia : Variant read FCodigoProvincia write SetCodigoProvincia;
    constructor Create (AOwner : TComponent); override;
  published
    property BaseDatos;
    property Transaccion;
  end;

implementation

{$R *.DFM}
uses
  IB, Mensajes
  {$IFDEF RDX_D6}, Variants{$ENDIF};

{ TfrProvincias }

constructor TRdxFrameProvincias.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FCodigoProvincia := NULL;
  FTablaProvincias := NIL;
end;

procedure TRdxFrameProvincias.SetCodigoProvincia(Value: Variant);
begin
  if (not VarIsNull(FCodigoProvincia)) and (FCodigoProvincia = Value) then
    exit;

  if (not VarIsNull(Value)) then
  begin
    if TratarCambios = IDCANCEL then
      exit;
    FCodigoProvincia := Value;
    BuscarProvincia;
  end
end;

procedure TRdxFrameProvincias.SetContenido(NuevoFrame: TRdxFrame);
begin
  if Contenido <> NIL then
    if Contenido.Name = NuevoFrame.ClassName then
    begin
      NuevoFrame.Free;
      exit;
    end;
  inherited;
  if TablaProvincias <> NIL then
  begin
    FCodigoProvincia := TablaProvincias.FieldByName('CODIGO').Value;
    if Contenido is TRdxFrameProvincias then
      (Contenido as TRdxFrameProvincias).CodigoProvincia := FCodigoProvincia;
  end;
end;

procedure TRdxFrameProvincias.CambiarModo(ModoAnterior, Modo : TRdxModo);
begin
  inherited;
  if not (FModo in [Normal, Seleccionar]) then
    BuscarProvincia
  else begin
    TablaProvincias.Close;
    TablaProvincias.Open;
  end;
end;

procedure TRdxFrameProvincias.SetTablaProvincias(Value: TIBDataSet);
begin
  if (FTablaProvincias <> Value) then
    FTablaProvincias := Value;
end;

procedure TRdxFrameProvincias.BuscarProvincia;
begin
//
end;

end.
