DbGridEh如何过滤?参照DEMO1设置了STFilter属性后,有下拉列表可选择,并不能过滤GRID中的数据(100分)

A

acdc

Unregistered / Unconfirmed
GUEST, unregistred user!
有以下两个表格,用Table2.Artist来选择Table1中相应的数据:
Table1:
Artist | Album | ...

Table2:
ID| Artist|

程序中这样设置:

qry1.TableName:= 'Table1';
ds1.DataSet:= qry1;

EhGrid.DataSource:=ds1;
EhGrid.STFilter.Local:= True;
EhGrid.STFilter.Visibled:= True;

qry2.TableName:= 'Table2';
ds2.DataSet:= qry2;

...

EhGrid.FieldColumns['Artist'].STFilter.DataField:= 'Artist';
EhGrid.FieldColumns['Artist'].STFilter.Visibled:= True;
EhGrid.FieldColumns['Artist'].STFilter.ListSource:= ds2;
EhGrid.FieldColumns['Artist'].STFilter.ListField:= 'Artist';
EhGrid.FieldColumns['Artist'].STFilter.KeyField:= 'Artist';//'ID'

程序运行后,在Artist对应的列有下拉列表可选择,并不能过滤GRID中的数据,不知道是哪里设置不对,请指教。
 
请参考
ehlib的DBGridEh控件中使用过滤功能很方便,但使用过程中有几个容易被忽略的地方
1.在UNIT中加入

uses EhLibXXX(EhLibADO、EhLibDBE等,根据你选用的数据集来定);

initialization
DBGridEhDefaultStyle.FilterEditCloseUpApplyFilter := True;

2.设置属性

DBGridEh.STFilter.Local := True;

DBGridEh.STFilter.Visible:= True;

3.设置需过滤字段的 STFilter 属性
 
多谢回答,但是我都设置了呀,你仔细看看
 
结了结了,找了一个很笨的方法,勉强能对付
 
顶部