unit uViewSubCuenta;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, uViewBase, ExtCtrls, StdCtrls, Buttons, DB, uDADataTable,
  DBCtrls, Grids, DBGrids, uBizSubCuentas, uSubCuentasController, Mask, ComCtrls, uCustomView,
  JvComponent, JvFormAutoSize, cxControls, cxContainer, cxEdit, cxTextEdit,
  cxDBEdit, dxLayoutControl, uDAInterfaces, cxGraphics, cxDropDownEdit,
  cxImageComboBox, cxMaskEdit, cxCalendar, ImgList, PngImageList, ActnList;

type
  IViewSubCuenta = interface(IViewBase)
  ['{F44F8AEF-CB9C-44D5-93DA-53D6AB6A2D29}']
    function GetController : ISubCuentasController;
    procedure SetController (const Value : ISubCuentasController);
    property Controller : ISubCuentasController read GetController write SetController;

    function GetSubCuenta: IBizSubCuenta;
    procedure SetSubCuenta(const Value: IBizSubCuenta);
    property SubCuenta: IBizSubCuenta read GetSubCuenta write SetSubCuenta;
  end;
  
  TfrViewSubCuenta = class(TfrViewBase, IViewSubCuenta)
    DADataSource: TDADataSource;
    dxLayoutControlSubCuentaGroup_Root: TdxLayoutGroup;
    dxLayoutControlSubCuenta: TdxLayoutControl;
    dxLayoutControlSubCuentaGroup1: TdxLayoutGroup;
    dxLayoutControlSubCuentaItem3: TdxLayoutItem;
    eReferencia: TcxDBTextEdit;
    dxLayoutControlSubCuentaItem1: TdxLayoutItem;
    eDescripcion: TcxDBTextEdit;
    dxLayoutControlSubCuentaItem2: TdxLayoutItem;
    eCuenta: TcxDBTextEdit;
    dxLayoutControlSubCuentaItem4: TdxLayoutItem;
    BitBtn3: TBitBtn;
    dxLayoutControlSubCuentaGroup2: TdxLayoutGroup;
    png: TActionList;
    actCuenta: TAction;
    SmallImages: TPngImageList;
    procedure actCuentaExecute(Sender: TObject);
  protected
    FSubCuenta: IBizSubCuenta;
    FController : ISubCuentasController;
    function GetSubCuenta: IBizSubCuenta;
    procedure SetSubCuenta(const Value: IBizSubCuenta);
    function GetController : ISubCuentasController;
    procedure SetController (const Value : ISubCuentasController);

  public
    property Controller : ISubCuentasController read GetController write SetController;
    property SubCuenta: IBizSubCuenta read GetSubCuenta write SetSubCuenta;
  end;
  
implementation
{$R *.dfm}

{ TfrViewSubCuentas }

{
******************************* TfrViewSubCuentas ********************************
}

procedure TfrViewSubCuenta.actCuentaExecute(Sender: TObject);
begin
  inherited;
  Controller.ElegirCuenta(SubCuenta);
end;

function TfrViewSubCuenta.GetController: ISubCuentasController;
begin
  Result := FController;
end;

function TfrViewSubCuenta.GetSubCuenta: IBizSubCuenta;
begin
  Result := FSubCuenta;
end;

procedure TfrViewSubCuenta.SetController(const Value: ISubCuentasController);
begin
  FController := Value;
end;

procedure TfrViewSubCuenta.SetSubCuenta(const Value: IBizSubCuenta);
begin
  FSubCuenta := Value;
  if Assigned(FSubCuenta) then
    DADataSource.DataTable := FSubCuenta.DataTable
  else
    DADataSource.DataTable := NIL;
end;

end.

