C++ Builder中关于TcxGrid内TcxGridColumn的使用
初识TcxGrid,资料太难找,通过对TcxGrid的使用,暂时学习总结这么多。
1.对某一列添加过一个滤条件(例如:capName = aaa(即过滤capName列里为aaa的数据))
scrn->strColumn->DataBinding->Filter->Root->AddItem(scrn->strColumn,firstOperatorKind,keyStrfirst.c_str(),keyStrfirst.c_str());
scrn->strColumn->DataBinding->Filter->Active = true;
这就对strColumn添加了一个过滤条件,参数firstOperatorKind为符号,这里相当于例子中的“=”
参数keyStrfirst(第一个)为过滤中的条件,这里相当于例子中的“aaa”
参数keyStrfirst(第二个)为在显示在TcxGrid内,对已选择所有过滤条件显示条目的设置。
无特殊要求的话,一般后两个参数都一致。
scrn->strColumn->DataBinding->Filter->Active = true;是对当前的设置刷新。
2.对某一列添加一个Custom条件(即两个的复合条件)(例如:(capName = aaa) and (capName <> bbb))
TcxFilterCriteriaItemList *AItemList =scrn->strColumn->DataBinding->Filter->Root->AddItemList(tboperator);
AItemList->AddItem(scrn->strColumn,firstOperatorKind,keyStrfirst.c_str(),keyStrfirst.c_str());
AItemList->AddItem(scrn->strColumn,secondOperatorKind,keyStrsecond.c_str(),keyStrsecond.c_str());
FilterName->DataBinding->Filter->Active = true;
这里TcxFilterCriteriaItemList应该是个调用的一个库类,“tboperator”,是一个变量(值为and或or),用来表示接下来添加的两个复合条件的
关系(and或or)。
3.对多个列添加过滤条件
FilterName->DataBinding->Filter->Root->BoolOperatorKind=tboperator;
FilterName->DataBinding->Filter->Root->AddItem(FilterName,secondOperatorKind,keyStrsecond.c_str(),keyStrsecond.c_str());
FilterName->DataBinding->Filter->Active = true;
FilterName->DataBinding->Filter->Root->BoolOperatorKind=tboperator;用来设置列与列之间的关系(不设置的话默认为and)
对多个列按照3的方法设置,是一种复合条件过滤。
4.读取每列的过滤条件:
scrn->strColumn->DataBinding->Filter->FilterCaption;
或者
scrn->strColumn->DataBinding->Filter->FilterText;
两者都是,获取当前所有列的过滤条件为字符串。
区别:FilterText获取的字符串把过滤条件都带有单引号(如:‘ccc’),FilterCaption没有分号