是否可以在查找字段上对TDBGrid进行排序?

cro*_*don 10 delphi

我有一个DBGrid,其中包含一个基于查找字段的列.

如何设置它以便当用户单击列标题时,它将按该字段排序.

我的问题在于我无法找到在查找字段上创建索引的方法.

我正在使用绝对数据库,但大多数使用BDE或TClientDataSet的东西都可以使用Absolute.

谢谢!

Erw*_*win 6

我不认为可以在查找字段上创建索引.但是,可以在ClientDataSet的内部计算字段上创建索引.在OnCalcFields事件处理程序中,将其值设置为查找字段的值.并将lookup字段的visible属性设置为false.现在,您可以对内部计算的字段进行排序.

  • 由于这是一个查找字段,因此您还需要在计算字段中添加其他数据以进行排序,以便唯一标识每条记录.这将避免刷新的问题,可能会改变按相同查找值分组的记录的顺序. (2认同)