unit uViewArticulos; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, uDADataTable, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid, uBizArticulos, ActnList, Menus, cxGridBandedTableView, cxGridDBBandedTableView, JvComponent, JvFormAutoSize, PngImageList, ImgList, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, dxPSEdgePatterns, cxIntlPrintSys3, dxPSCore, dxPScxCommon, dxPScxGridLnk, cxGridCustomPopupMenu, cxGridPopupMenu, cxCurrencyEdit, cxSpinEdit, cxCheckBox, cxCheckComboBox, cxImageComboBox; type IViewArticulos = interface(IViewGrid) ['{4C09BEC8-C82B-4DE8-8C36-40DB62224E95}'] function GetArticulos: IBizArticulo; procedure SetArticulos(const Value: IBizArticulo); property Articulos: IBizArticulo read GetArticulos write SetArticulos; end; TfrViewArticulos = class(TfrViewGrid, IViewArticulos) PngImageList: TPngImageList; cxGridViewREFERENCIA: TcxGridDBColumn; cxGridViewDESCRIPCION: TcxGridDBColumn; cxGridViewFAMILIA: TcxGridDBColumn; procedure cxGridViewIDCustomDrawCell( Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); protected FArticulos: IBizArticulo; function GetArticulos: IBizArticulo; virtual; procedure SetArticulos(const Value: IBizArticulo); virtual; public property Articulos: IBizArticulo read GetArticulos write SetArticulos; end; implementation uses uDataModuleArticulos; {$R *.dfm} { TfrViewArticulos } { ******************************* TfrViewArticulos ******************************* } function TfrViewArticulos.GetArticulos: IBizArticulo; begin Result := FArticulos; end; procedure TfrViewArticulos.SetArticulos(const Value: IBizArticulo); begin FArticulos := Value; if Assigned(FArticulos) then dsDataSource.DataTable := FArticulos.DataTable; end; procedure TfrViewArticulos.cxGridViewIDCustomDrawCell( Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); var R : TRect; begin inherited; R := AViewInfo.ContentBounds; ACanvas.FillRect(R); ACanvas.DrawImage(PngImageList, R.Left, R.Top, 0); ADone := True; end; end.