如何实现在DBGridEh里点击标题头排序???
做的是三层结构的C/S系统,DBGridEh的数据集使用TClientDataSet。
我知道在表或视图里实际存在的字段可以通过指定
TClientDataSet(Column.Field.DataSet).IndexFieldNames:=Column.FieldName;
来升序排列,但如何降序排列呢?因为计算字段和LookUp字段不是真实存在的,所以老是提示“field index out of range”错误,难道计算字段和LookUp字段真的不能在DBGridEh里排序吗,如果能该如何设置?注意是TClientDataSet,而不是TADOQuery。
做的是三层结构的C/S系统,DBGridEh的数据集使用TClientDataSet。
我知道在表或视图里实际存在的字段可以通过指定
TClientDataSet(Column.Field.DataSet).IndexFieldNames:=Column.FieldName;
来升序排列,但如何降序排列呢?因为计算字段和LookUp字段不是真实存在的,所以老是提示“field index out of range”错误,难道计算字段和LookUp字段真的不能在DBGridEh里排序吗,如果能该如何设置?注意是TClientDataSet,而不是TADOQuery。
不死鸟:我就是想要计算字段和LookUp字段的排序方法,而且已经说了是TClientDataSet不是TADOQuery,TADOQuery可以排这个我知道,但我们做的系统是三层的,几乎都是用TClientDataSet。
llw2003:我的QQ是45010133,我已经加你为好友了,你的源程序如果试过可行的话我马上给分,决不食言。
begin
if Column.Title.SortMarker = smDownEh then
SortString:= Column.FieldName+ ' ASC'
else
SortString:= Column.FieldName+ ' DESC'; TADODataSet(TDbGridEh(Sender).DataSource.DataSet).Sort:=SortString;
TClientDataSet(TDbGridEh(Sender).DataSource.DataSet).sort=SortString;通过。你可以试试。