AbetoDesign_FactuGES2/Source/Modulos/Contactos/Views/uViewComerciales.pas

135 lines
4.0 KiB
ObjectPascal

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.