unit uViewComerciales; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewContactos, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, dxPSEdgePatterns, ImgList, PngImageList, cxGridCustomPopupMenu, cxGridPopupMenu, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, uDADataTable, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, dxPgsDlg, ActnList, TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock, uViewFiltroBase, uDAInterfaces, uCustomView, uViewBase; type IViewComerciales = interface(IViewContactos) ['{91B6DB6C-D90F-4943-84F8-2A9752A4FA34}'] end; TfrViewComerciales = class(TfrViewContactos, IViewComerciales) cxGridViewDELEGACION: TcxGridDBColumn; actDelegaciones: TAction; TBSeparatorItem1: TTBSeparatorItem; TBXItem2: TTBXItem; cxGridLevel1: TcxGridLevel; cxGridLevel2: TcxGridLevel; cxGridViewFECHA_BAJA: TcxGridDBColumn; cxStyleActivos: TcxStyle; cxStyleInactivos: TcxStyle; procedure actDelegacionesExecute(Sender: TObject); procedure actDelegacionesUpdate(Sender: TObject); procedure CustomViewShow(Sender: TObject); procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel); procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); private //Filtros relativos a la vista procedure AnadirFiltroSituaciones; public procedure AnadirOtrosFiltros; override; end; implementation {$R *.dfm} uses schContactosClient_Intf; procedure TfrViewComerciales.actDelegacionesExecute(Sender: TObject); begin if (cxGridViewDELEGACION.GroupIndex < 0) then begin cxGridViewDELEGACION.GroupIndex := cxGridView.GroupedColumnCount; cxGridViewDELEGACION.Visible := False; end else begin cxGridViewDELEGACION.GroupIndex := -1; cxGridViewDELEGACION.Visible := True; end; end; procedure TfrViewComerciales.actDelegacionesUpdate(Sender: TObject); begin inherited; (Sender as TAction).Checked := not (cxGridViewDELEGACION.GroupIndex < 0); end; procedure TfrViewComerciales.AnadirFiltroSituaciones; var FFiltro : TcxFilterCriteriaItemList; begin FFiltro := AddFilterGrid(fboAnd); case cxGrid.ActiveLevel.Index of 1 : FFiltro.AddItem(cxGridViewFECHA_BAJA, foEqual, Null, 'ACTIVOS'); 2 : FFiltro.AddItem(cxGridViewFECHA_BAJA, foNotEqual, Null, 'INACTIVOS'); end; end; procedure TfrViewComerciales.AnadirOtrosFiltros; begin inherited; AnadirFiltroSituaciones; //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; procedure TfrViewComerciales.CustomViewShow(Sender: TObject); begin inherited; cxGridLevel1.Active := True; end; procedure TfrViewComerciales.cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel); begin inherited; RefrescarFiltro; end; procedure TfrViewComerciales.cxGridViewStylesGetContentStyle( Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); var IndiceCol: Integer; ASituacion: String; begin inherited; if Assigned(ARecord) then begin IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_ComercialesFECHA_BAJA).Index; ASituacion := VarToStr(ARecord.DisplayTexts[IndiceCol]); if Length(ASituacion) = 0 then AStyle.TextColor := cxStyleActivos.TextColor else AStyle.TextColor := cxStyleInactivos.TextColor; end; end; end.