unit uEditorListaObras;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, cxGraphics, cxControls, cxContainer, cxEdit, cxTextEdit,
  cxMaskEdit, cxDropDownEdit, cxLookupEdit, cxDBLookupEdit,
  cxDBLookupComboBox, DB, uDADataTable, uCustomView, uViewBase,
  uViewBarraSeleccion, uBizObras, ExtCtrls, StdCtrls,
  Grids, DBGrids, uIEditorListaObras, uDAInterfaces;

type
  TfEditorListaObras = class(TForm, IEditorListaObras)
    DADataSource: TDADataSource;
    Label1: TLabel;
    Label5: TLabel;
    Bevel1: TBevel;
    cxObras: TcxLookupComboBox;
    pnlSeleccion: TPanel;
    bSeleccionar: TButton;
    bCancelar: TButton;
  private
    FObras: IBizObra;
    function GetObras: IBizObra;
    procedure SetObras(const Value: IBizObra);
    procedure localizarObra;
    function GetObraSeleccionado: IBizObra;
  public
    property Obras: IBizObra read GetObras write SetObras;
    property ObraSeleccionado: IBizObra read GetObraSeleccionado;
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  end;

implementation
{$R *.dfm}

uses uDataModuleObras, schObrasClient_Intf;

{ TfListaObras }

constructor TfEditorListaObras.Create(AOwner: TComponent);
begin
  inherited;
end;

destructor TfEditorListaObras.Destroy;
begin
  FObras := Nil;
  inherited;
end;

function TfEditorListaObras.GetObras: IBizObra;
begin
  Result := FObras;
end;

function TfEditorListaObras.GetObraSeleccionado: IBizObra;
begin
  localizarObra;
  Result := FObras;
end;

procedure TfEditorListaObras.localizarObra;
begin
  FObras.First;
  FObras.Locate(fld_OBRASNOMBRE, cxObras.Text);
end;

procedure TfEditorListaObras.SetObras(const Value: IBizObra);
begin
  FObras := Value;
  if Assigned(FObras) then
  begin
    DADataSource.DataTable := FObras.DataTable;
    FObras.DataTable.Active := True;
    cxObras.ItemIndex := 0;
  end
  else
    DADataSource.DataTable := Nil;
end;

end.
