我在内存 TDataSet 后代中使用DevExpress TdxMemData 。虽然它具有 Filtered: Boolean 和 Filter: String 属性,但实际上并没有自动对它们执行任何操作,而是依赖于 OnFilterRecord 事件的 Accept 参数的结果。
所以我正在寻找的是一种解析过滤器文本并将其应用于数据集的方法(可能在 TdxMemData 或 DevExpress 代码套件中的其他地方)。
理想情况下,我想要一种针对过滤器测试单个行的方法,以查看它是否匹配而不将其从数据集中过滤出来(我想突出显示与过滤器匹配的行)。
示例过滤器字符串:
((Name = 'Jim') and (Rep > 1000)) or (Rep > 5000)
所以有嵌套的and's and or's。它实际上是由 DevExpress TcxDBFilterControl 构建的。
我真的希望我缺少一些简单的东西。
更新:我向DevExpress 开了一张票,看看他们是否支持任何类型的解决方案。我确实找到了他们不支持在 TdxMemData 上过滤的答案。