cxgridfilterhelpers.pas

来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 109 行

PAS
109
字号
{********************************************************************}
{                                                                    }
{       Developer Express Visual Component Library                   }
{       ExpressQuantumGrid                                           }
{                                                                    }
{       Copyright (c) 1998-2008 Developer Express Inc.               }
{       ALL RIGHTS RESERVED                                          }
{                                                                    }
{   The entire contents of this file is protected by U.S. and        }
{   International Copyright Laws. Unauthorized reproduction,         }
{   reverse-engineering, and distribution of all or any portion of   }
{   the code contained in this file is strictly prohibited and may   }
{   result in severe civil and criminal penalties and will be        }
{   prosecuted to the maximum extent possible under the law.         }
{                                                                    }
{   RESTRICTIONS                                                     }
{                                                                    }
{   THIS SOURCE CODE AND ALL RESULTING INTERMEDIATE FILES            }
{   (DCU, OBJ, DLL, ETC.) ARE CONFIDENTIAL AND PROPRIETARY TRADE     }
{   SECRETS OF DEVELOPER EXPRESS INC. THE REGISTERED DEVELOPER IS    }
{   LICENSED TO DISTRIBUTE THE EXPRESSQUANTUMGRID AND ALL            }
{   ACCOMPANYING VCL CONTROLS AS PART OF AN EXECUTABLE PROGRAM ONLY. }
{                                                                    }
{   THE SOURCE CODE CONTAINED WITHIN THIS FILE AND ALL RELATED       }
{   FILES OR ANY PORTION OF ITS CONTENTS SHALL AT NO TIME BE         }
{   COPIED, TRANSFERRED, SOLD, DISTRIBUTED, OR OTHERWISE MADE        }
{   AVAILABLE TO OTHER INDIVIDUALS WITHOUT EXPRESS WRITTEN CONSENT   }
{   AND PERMISSION FROM DEVELOPER EXPRESS INC.                       }
{                                                                    }
{   CONSULT THE END USER LICENSE AGREEMENT FOR INFORMATION ON        }
{   ADDITIONAL RESTRICTIONS.                                         }
{                                                                    }
{********************************************************************}

unit cxGridFilterHelpers;

{$I cxVer.inc}

interface

uses
  cxGridCustomTableView, cxDataStorage, cxEdit, cxDropDownEdit, cxFilterControlUtils;

type
  { TcxFilterExtLookupComboBoxHelper }

  TcxFilterExtLookupComboBoxHelper = class(TcxFilterComboBoxHelper)
  public
    class function GetFilterEditClass: TcxCustomEditClass; override;
    class function GetSupportedFilterOperators(
      AProperties: TcxCustomEditProperties;
      AValueTypeClass: TcxValueTypeClass;
      AExtendedSet: Boolean = False): TcxFilterControlOperators; override;
    class procedure InitializeProperties(AProperties,
      AEditProperties: TcxCustomEditProperties; AHasButtons: Boolean); override;
  end;

implementation

uses
  cxDBLookupComboBox, cxDBExtLookupComboBox, cxGridDBDataDefinitions,
  cxDBLookupEdit, cxDBData;

{ TcxFilterExtLookupComboBoxHelper }

class function TcxFilterExtLookupComboBoxHelper.GetFilterEditClass: TcxCustomEditClass;
begin
  Result := TcxLookupComboBox;
end;

class function TcxFilterExtLookupComboBoxHelper.GetSupportedFilterOperators(
  AProperties: TcxCustomEditProperties; AValueTypeClass: TcxValueTypeClass;
  AExtendedSet: Boolean = False): TcxFilterControlOperators;
begin
  Result := [fcoEqual, fcoNotEqual, fcoBlanks, fcoNonBlanks];
end;

class procedure TcxFilterExtLookupComboBoxHelper.InitializeProperties(AProperties,
  AEditProperties: TcxCustomEditProperties; AHasButtons: Boolean);
var
  AView: TcxCustomGridTableView;
begin
  inherited InitializeProperties(AProperties, AEditProperties, AHasButtons);
  with TcxLookupComboBoxProperties(AProperties) do
  begin
    DropDownAutoSize := False;
    DropDownListStyle := lsFixedList;
    AView := TcxExtLookupComboBoxProperties(AEditProperties).View;
    if (AView <> nil) and (TcxExtLookupComboBoxProperties(AEditProperties).ListFieldItem <> nil) then
    begin
      ListSource := TcxDBDataController(AView.DataController).DataSource;
      KeyFieldNames := TcxExtLookupComboBoxProperties(AEditProperties).KeyFieldNames;
      ListFieldNames := TcxGridItemDBDataBinding(TcxExtLookupComboBoxProperties(AEditProperties).ListFieldItem.DataBinding).FieldName;
      DropDownSizeable := True;
      IncrementalFiltering := True;
    end;
  end;
end;

initialization
  FilterEditsController.Register(TcxExtLookupComboBoxProperties,
    TcxFilterExtLookupComboBoxHelper);

finalization
  FilterEditsController.Unregister(TcxExtLookupComboBoxProperties,
    TcxFilterExtLookupComboBoxHelper);

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?