unit uViewIdiomasArticulo; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewBase, uViewDetallesGenerico, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ActnList, ImgList, PngImageList, uDADataTable, ComCtrls, ToolWin, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, cxDBLookupComboBox, cxSpinEdit, uBizContactos, uProveedoresController, uDAInterfaces, uBizArticulos, uArticulosController, uBizIdiomas, uIdiomasController, cxTextEdit, cxCurrencyEdit; type IViewIdiomasArticulo = interface(IViewBase) ['{D6182295-EE09-4951-810D-50A054E9319F}'] function GetArticulo: IBizArticulo; procedure SetArticulo(const Value: IBizArticulo); property Articulo: IBizArticulo read GetArticulo write SetArticulo; function GetController : IArticulosController; procedure SetController (const Value : IArticulosController); property Controller : IArticulosController read GetController write SetController; end; TfrViewIdiomasArticulo = class(TfrViewDetallesGenerico, IViewIdiomasArticulo) dsIdiomas: TDADataSource; cxGridViewDESCRIPCION: TcxGridDBColumn; cxGridViewID_IDIOMA: TcxGridDBColumn; cxGridViewID_ARTICULO: TcxGridDBColumn; procedure cxGridViewPROVEEDORPropertiesEditValueChanged(Sender: TObject); procedure CustomViewShow(Sender: TObject); procedure actAnadirUpdate(Sender: TObject); protected FArticulo: IBizArticulo; FController: IArticulosController; FIdiomasController : IIdiomasController; FIdiomas : IBizIdioma; function GetArticulo: IBizArticulo; procedure SetArticulo(const Value: IBizArticulo); function GetController : IArticulosController; procedure SetController (const Value : IArticulosController); procedure AnadirInterno; override; public property Articulo: IBizArticulo read GetArticulo write SetArticulo; property Controller : IArticulosController read GetController write SetController; constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; implementation {$R *.dfm} uses schArticulosClient_Intf; procedure TfrViewIdiomasArticulo.actAnadirUpdate(Sender: TObject); begin inherited; (Sender as TAction).Enabled := (dsDetalles.DataTable.RecordCount = 0); end; procedure TfrViewIdiomasArticulo.AnadirInterno; begin dsDetalles.DataTable.Append; dsDetalles.DataTable.FieldByName(fld_Articulos_IdiomasID_IDIOMA).AsInteger := CTE_ID_IDIOMA_DEFAULT; end; constructor TfrViewIdiomasArticulo.Create(AOwner: TComponent); begin inherited; FIdiomasController := TIdiomasController.Create; FIdiomas := Nil; { FProvController := TProveedoresController.Create; FProveedores := (FProvController.BuscarTodos as IBizProveedor); dsProveedores.DataTable := FProveedores.DataTable; if not dsProveedores.DataTable.Active then dsProveedores.DataTable.Active := True;} end; procedure TfrViewIdiomasArticulo.CustomViewShow(Sender: TObject); begin inherited; FIdiomas := FIdiomasController.BuscarTodosMenosDefault; if Assigned(FIdiomas) then FIdiomas.DataTable.Active := True; dsIdiomas.DataTable := FIdiomas.DataTable; end; procedure TfrViewIdiomasArticulo.cxGridViewPROVEEDORPropertiesEditValueChanged(Sender: TObject); begin inherited; { //Signamos el descuento del proveedor seleccionado if not Articulo.Proveedores.DataTable.Editing then Articulo.Proveedores.DataTable.Edit; Articulo.Proveedores.DESCUENTO := FProveedores.DESCUENTO; } end; destructor TfrViewIdiomasArticulo.Destroy; begin FIdiomasController := Nil; FIdiomas := Nil; inherited; { if dsProveedores.DataTable.Active then dsProveedores.DataTable.Active := False; FProveedores := NIL; FProvController := NIL; inherited; } end; function TfrViewIdiomasArticulo.GetArticulo: IBizArticulo; begin Result := FArticulo; end; function TfrViewIdiomasArticulo.GetController: IArticulosController; begin Result := FController; end; procedure TfrViewIdiomasArticulo.SetArticulo(const Value: IBizArticulo); begin FArticulo := Value; dsDetalles.DataTable := FArticulo.Idiomas.DataTable; end; procedure TfrViewIdiomasArticulo.SetController(const Value: IArticulosController); begin FController := Value; FIdiomas := FIdiomasController.BuscarTodos; end; end.