unit uViewFacturasProveedor; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewGrid, uViewPreview, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, dxPSEdgePatterns, cxImageComboBox, cxTextEdit, ImgList, PngImageList, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, dxPSCore, dxPScxCommon, dxPScxGridLnk, ActnList, uDADataTable, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGrid, cxImage, Grids, DBGrids, uBizFacturasProveedor, cxCurrencyEdit, uViewFiltroBase; type IViewFacturasProveedor = interface(IViewGrid) ['{82E4A231-1B52-4C90-8E10-D485E8A13C49}'] procedure SyncFocusedRecord; function GetFacturasProveedor: IBizFacturasProveedor; procedure SetFacturasProveedor(const Value: IBizFacturasProveedor); property FacturasProveedor: IBizFacturasProveedor read GetFacturasProveedor write SetFacturasProveedor; end; TfrViewFacturasProveedor = class(TfrViewGrid, IViewFacturasProveedor) PngImageList: TPngImageList; cxGridViewNOMBRE: TcxGridDBColumn; cxGridViewFECHAFACTURA: TcxGridDBColumn; cxGridViewVENCIMIENTO: TcxGridDBColumn; cxGridViewIMPORTETOTAL: TcxGridDBColumn; cxGridViewREFERENCIA: TcxGridDBColumn; cxGridViewCODIGO: TcxGridDBColumn; cxGridViewICONO: TcxGridDBColumn; procedure cxGridViewCODIGOCustomDrawCell( Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); private //Filtros relativos a la vista procedure AnadirFiltroFechas; protected FFacturasProveedor: IBizFacturasProveedor; function GetFacturasProveedor: IBizFacturasProveedor; procedure SetFacturasProveedor(const Value: IBizFacturasProveedor); procedure AnadirOtrosFiltros; override; public procedure SyncFocusedRecord; property FacturasProveedor: IBizFacturasProveedor read GetFacturasProveedor write SetFacturasProveedor; end; var frViewFacturasProveedor: TfrViewFacturasProveedor; implementation uses uDataModuleFacturasProveedor; {$R *.dfm} { TfrViewFacturasProveedor } function TfrViewFacturasProveedor.GetFacturasProveedor: IBizFacturasProveedor; begin Result := FFacturasProveedor; end; procedure TfrViewFacturasProveedor.SetFacturasProveedor( const Value: IBizFacturasProveedor); begin FFacturasProveedor := Value; if Assigned(FFacturasProveedor) then DADataSource.DataTable := FFacturasProveedor.DataTable; end; procedure TfrViewFacturasProveedor.cxGridViewCODIGOCustomDrawCell( 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, 2); ADone := True; end; procedure TfrViewFacturasProveedor.SyncFocusedRecord; begin // end; procedure TfrViewFacturasProveedor.AnadirFiltroFechas; var Columna1, Columna2: TcxGridDBColumn; Fecha1, Fecha2: Variant; FFiltro : TcxFilterCriteriaItemList; begin Fecha1 := frViewFiltroBase1.edtFechaIniFiltro.EditValue; Fecha2 := frViewFiltroBase1.edtFechaFinFiltro.EditValue; if not VarIsNull(Fecha1) and not VarIsNull(Fecha2) then begin cxGridView.DataController.Filter.Options := [fcoCaseInsensitive, fcoSoftCompare]; FFiltro := AddFilterGrid(fboAnd); Columna1 := (cxGridView as TcxGridDBTableView).GetColumnByFieldName('FECHAFACTURA'); FFiltro.AddItem(Columna1, foBetween, varArrayOf([Fecha1, Fecha2]), VarToStr(Fecha1) + ' and ' + VarToStr(Fecha2)); end; end; procedure TfrViewFacturasProveedor.AnadirOtrosFiltros; begin inherited; AnadirFiltroFechas; //Finalmente activamos el filtro si tenemos algo if cxGridView.DataController.Filter.IsEmpty then cxGridView.DataController.Filter.Active := False else cxGridView.DataController.Filter.Active := True; cxGrid.ActiveLevel.GridView := cxGridView; end; end.