unit uViewClientes; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewContactos, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ActnList, uDADataTable, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, JvComponent, JvFormAutoSize, cxImage, PngImageList, ImgList, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, dxPSEdgePatterns, dxPSCore, dxPScxCommon, cxImageComboBox, cxGridCustomPopupMenu, cxGridPopupMenu, dxPScxGrid6Lnk, ExtCtrls, JvComponentBase, JvBalloonHint, JvHint, uViewFiltroBase, dxPgsDlg, TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock, uDAInterfaces, cxTextEdit, uCustomView, uViewBase; type IViewClientes = interface(IViewContactos) ['{7964E0AB-3075-43E7-94BC-513D80A1C116}'] end; TfrViewClientes = class(TfrViewContactos, IViewClientes) cxGridViewNOMBRE_COMERCIAL: TcxGridDBColumn; cxGridViewBLOQUEADO: TcxGridDBColumn; cxGridViewTiendaWeb: TcxGridDBColumn; cxGridViewPERSONA_CONTACTO: TcxGridDBColumn; cxGridViewPROCEDENCIA_CLIENTE: TcxGridDBColumn; actProcedencia: TAction; TBXSeparatorItem1: TTBXSeparatorItem; TBXItem2: TTBXItem; procedure cxGridViewCODIGOCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); procedure actProcedenciaExecute(Sender: TObject); procedure actProcedenciaUpdate(Sender: TObject); end; implementation uses uViewGridBase; {$R *.dfm} procedure TfrViewClientes.actProcedenciaExecute(Sender: TObject); begin inherited; if (cxGridViewPROCEDENCIA_CLIENTE.GroupIndex < 0) then begin cxGridViewPROCEDENCIA_CLIENTE.GroupIndex := cxGridView.GroupedColumnCount; cxGridViewPROCEDENCIA_CLIENTE.Visible := False; end else begin cxGridViewPROCEDENCIA_CLIENTE.GroupIndex := -1; cxGridViewPROCEDENCIA_CLIENTE.Visible := True; end; end; procedure TfrViewClientes.actProcedenciaUpdate(Sender: TObject); begin inherited; (Sender as TAction).Checked := not (cxGridViewPROCEDENCIA_CLIENTE.GroupIndex < 0); end; procedure TfrViewClientes.cxGridViewCODIGOCustomDrawCell( Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); var R : TRect; begin //inherited; <- No llamamos al padre porque queremos hacer tratamiento especial R := AViewInfo.ContentBounds; ACanvas.FillRect(R); if (cxGridView.DataController.DisplayTexts[AViewInfo.GridRecord.RecordIndex, cxGridViewBLOQUEADO.Index] = '1') then ACanvas.DrawImage(PngImageList, R.Left + 2, R.Top + 2, 2) else ACanvas.DrawImage(PngImageList, R.Left + 2, R.Top + 2, 1); ADone := True; end; end.