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, cxCurrencyEdit; 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; cxGridViewPRECIO_PUNTO: TcxGridDBColumn; TBXSeparatorItem2: TTBXSeparatorItem; TBXItem3: TTBXItem; actPrecioPunto: TAction; cxGridViewAGENTE: TcxGridDBColumn; cxGridViewDELEGACION: TcxGridDBColumn; actDelegacion: TAction; actComercial: TAction; TBXSeparatorItem3: TTBXSeparatorItem; TBXItem4: TTBXItem; TBXSeparatorItem4: TTBXSeparatorItem; TBXItem5: TTBXItem; actPais: TAction; TBXSeparatorItem5: TTBXSeparatorItem; TBXItem6: TTBXItem; cxGridViewDescuentoCapitulo: TcxGridDBColumn; procedure actProcedenciaExecute(Sender: TObject); procedure actProcedenciaUpdate(Sender: TObject); procedure actPrecioPuntoExecute(Sender: TObject); procedure actPrecioPuntoUpdate(Sender: TObject); procedure actComercialExecute(Sender: TObject); procedure actComercialUpdate(Sender: TObject); procedure actDelegacionExecute(Sender: TObject); procedure actDelegacionUpdate(Sender: TObject); procedure ConfigView; override; procedure actPaisExecute(Sender: TObject); procedure actPaisUpdate(Sender: TObject); procedure cxGridViewICONOCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); end; implementation uses uViewGridBase, uFactuGES_App; {$R *.dfm} procedure TfrViewClientes.actComercialExecute(Sender: TObject); begin if (cxGridViewAGENTE.GroupIndex < 0) then begin cxGridViewAGENTE.GroupIndex := cxGridView.GroupedColumnCount; cxGridViewAGENTE.Visible := False; end else begin cxGridViewAGENTE.GroupIndex := -1; cxGridViewAGENTE.Visible := True; end; end; procedure TfrViewClientes.actComercialUpdate(Sender: TObject); begin inherited; (Sender as TAction).Checked := not (cxGridViewAGENTE.GroupIndex < 0); end; procedure TfrViewClientes.actDelegacionExecute(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 TfrViewClientes.actDelegacionUpdate(Sender: TObject); begin inherited; (Sender as TAction).Checked := not (cxGridViewDELEGACION.GroupIndex < 0); end; procedure TfrViewClientes.actPaisExecute(Sender: TObject); begin if (cxGridViewPAIS.GroupIndex < 0) then begin cxGridViewPAIS.GroupIndex := cxGridView.GroupedColumnCount; cxGridViewPAIS.Visible := False; end else begin cxGridViewPAIS.GroupIndex := -1; cxGridViewPAIS.Visible := True; end; end; procedure TfrViewClientes.actPaisUpdate(Sender: TObject); begin inherited; (Sender as TAction).Checked := not (cxGridViewPAIS.GroupIndex < 0); end; procedure TfrViewClientes.actPrecioPuntoExecute(Sender: TObject); begin if (cxGridViewPRECIO_PUNTO.GroupIndex < 0) then begin cxGridViewPRECIO_PUNTO.GroupIndex := cxGridView.GroupedColumnCount; cxGridViewPRECIO_PUNTO.Visible := False; end else begin cxGridViewPRECIO_PUNTO.GroupIndex := -1; cxGridViewPRECIO_PUNTO.Visible := True; end; end; procedure TfrViewClientes.actPrecioPuntoUpdate(Sender: TObject); begin inherited; (Sender as TAction).Checked := not (cxGridViewPRECIO_PUNTO.GroupIndex < 0); end; 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.ConfigView; begin inherited; cxGridViewTIENDA.Visible := True; cxGridViewTIENDA.VisibleForCustomization := True; cxGridViewAGENTE.Visible := False; cxGridViewAGENTE.VisibleForCustomization := False; actComercial.Visible := False; cxGridViewDELEGACION.Visible := False; cxGridViewDELEGACION.VisibleForCustomization := False; actDelegacion.Visible := False; //FILTRO DE EMPRESAS TIENDA if (AppFactuGES.EmpresaActiva.ID = CTE_EMPRESA_ABETO) then begin cxGridViewTIENDA.Visible := False; cxGridViewTIENDA.VisibleForCustomization := False; cxGridViewTiendaWeb.Visible := True; cxGridViewTiendaWeb.VisibleForCustomization := True; end; //FILTRO DE EMPRESAS COMERCIALES if ((AppFactuGES.EmpresaActiva.ID = CTE_EMPRESA_ABETO) or (AppFactuGES.EmpresaActiva.ID = CTE_EMPRESA_GRADEN)) then begin cxGridViewAGENTE.Visible := True; cxGridViewAGENTE.VisibleForCustomization := True; actComercial.Visible := True; cxGridViewDELEGACION.Visible := True; cxGridViewDELEGACION.VisibleForCustomization := True; actDelegacion.Visible := True; end; end; procedure TfrViewClientes.cxGridViewICONOCustomDrawCell( 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, 1) else ACanvas.DrawImage(PngImageList, R.Left + 2, R.Top + 2, 0); ADone := True; end; end.