unit uViewArticuloProveedor; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewArticulo, DB, uDADataTable, dxLayoutControl, cxContainer, cxEdit, cxTextEdit, cxDBEdit, cxControls, uCustomView, uViewBase, uBizArticulos, ActnList, ImgList, PngImageList, cxImage, cxCheckBox, Buttons, PngSpeedButton, cxMaskEdit, cxSpinEdit, cxCurrencyEdit, uViewDatosYSeleccionProveedor, uBizArticulosProveedor, uArticulosProveedorController, cxGraphics, cxDropDownEdit; type IViewArticuloProveedor = interface(IViewArticulo) ['{BB7BAA0C-442E-43C8-8BA5-AC4BD9023F2F}'] function GetController : IArticulosProveedorController; procedure SetController (const Value : IArticulosProveedorController); property Controller : IArticulosProveedorController read GetController write SetController; end; TfrViewArticuloProveedor = class(TfrViewArticulo, IViewArticuloProveedor) dxLayoutControlArticuloItem9: TdxLayoutItem; frViewDatosYSeleccionProveedor1: TfrViewDatosYSeleccionProveedor; dxLayoutControlArticuloGroup8: TdxLayoutGroup; dxLayoutControlArticuloGroup9: TdxLayoutGroup; dxLayoutControlArticuloItem7: TdxLayoutItem; eReferenciaProv: TcxDBTextEdit; dxLayoutControlArticuloItem10: TdxLayoutItem; ePrecioCoste: TcxDBCurrencyEdit; dxLayoutControlArticuloItem11: TdxLayoutItem; eDescuento: TcxDBSpinEdit; dxLayoutControlArticuloItem12: TdxLayoutItem; ePrecioPorte: TcxDBCurrencyEdit; dxLayoutControlArticuloGroup10: TdxLayoutGroup; dsProveedor: TDADataSource; protected FArticuloProveedor : IBizArticuloProveedor; FController: IArticulosProveedorController; procedure SetArticulo(const Value: IBizArticulo); override; procedure OnProveedorChanged(Sender: TObject); function GetController : IArticulosProveedorController; procedure SetController (const Value : IArticulosProveedorController); public property Controller : IArticulosProveedorController read GetController write SetController; end; implementation uses uProveedoresController, uBizContactos; {$R *.dfm} { TfrViewArticuloProveedor } function TfrViewArticuloProveedor.GetController: IArticulosProveedorController; begin Result := FController; end; procedure TfrViewArticuloProveedor.OnProveedorChanged(Sender: TObject); begin if Assigned(FArticuloProveedor) then begin FArticuloProveedor.DatosProveedores.Edit; FArticuloProveedor.DatosProveedores.ID_PROVEEDOR := frViewDatosYSeleccionProveedor1.Proveedor.ID; end; end; procedure TfrViewArticuloProveedor.SetArticulo(const Value: IBizArticulo); var AController : IProveedoresController; begin inherited; frViewDatosYSeleccionProveedor1.OnProveedorChanged := NIL; if Assigned(FArticulo) then begin FArticuloProveedor := (FArticulo as IBizArticuloProveedor); dsViewArticulo.DataTable := FArticuloProveedor.DataTable; dsProveedor.DataTable := FArticuloProveedor.DatosProveedores.DataTable; AController := TProveedoresController.Create; frViewDatosYSeleccionProveedor1.Controller := AController; frViewDatosYSeleccionProveedor1.Proveedor := (AController.Buscar(FArticuloProveedor.DatosProveedores.ID_PROVEEDOR) as IBizProveedor); frViewDatosYSeleccionProveedor1.OnProveedorChanged := OnProveedorChanged; end else begin FArticuloProveedor := NIL; dsViewArticulo.DataTable := NIL; dsProveedor.DataTable := NIL; end; end; procedure TfrViewArticuloProveedor.SetController( const Value: IArticulosProveedorController); begin FController := Value; end; end.