From a644184078343d34554594728e6a8a7bc0eadea8 Mon Sep 17 00:00:00 2001 From: SugarChes Date: Fri, 31 Jul 2026 13:51:13 +0800 Subject: [PATCH] docs: design contains filtering for extended lookup --- ...ded-return-local-filter-contains-design.md | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 docs/superpowers/specs/2026-07-31-extended-return-local-filter-contains-design.md diff --git a/docs/superpowers/specs/2026-07-31-extended-return-local-filter-contains-design.md b/docs/superpowers/specs/2026-07-31-extended-return-local-filter-contains-design.md new file mode 100644 index 0000000..dbce242 --- /dev/null +++ b/docs/superpowers/specs/2026-07-31-extended-return-local-filter-contains-design.md @@ -0,0 +1,32 @@ +# 173/174 弹窗本地筛选改为包含匹配 + +## 目标 + +将 173/174 扩展返回弹窗中 DevExpress 自动筛选行的文本匹配方式,从默认的“开头匹配”改为“包含匹配”。例如在“物料名称”筛选框输入“板”,应匹配“钢板/Q235B”。 + +## 根因 + +共享弹窗已经启用 `ShowAutoFilterRow`,但 MyControl 与 GridControlEx 在查询完成后动态创建结果列时,没有设置 `GridColumn.OptionsFilter.AutoFilterCondition`,因此沿用了 DevExpress 默认的开头匹配。 + +项目内其他表格列已普遍使用 `AutoFilterCondition.Contains`,可直接沿用这一兼容写法。 + +## 设计 + +仅修改两处动态结果列创建逻辑: + +- `LabelExtendedReturnSearchEdit.ConfigureResultColumns` +- `GridControlEx.ConfigureExtendedReturnViewColumns` + +每个结果列创建后设置: + +```csharp +column.OptionsFilter.AutoFilterCondition = AutoFilterCondition.Contains; +``` + +不修改共享弹窗事件,不增加自定义筛选处理,不改变数据库查询 SQL、搜索列下拉框、ResultFields 映射、清空、选择和显示翻译逻辑。 + +## 验证 + +- 结构检查确认两处动态列均设置 `Contains`。 +- 编译 `Lskj.Model`、`Lskj.Util`、`Lskj.Business`、`Lskj.Control`。 +- 运行时由用户确认:自动筛选行输入位于文本中间的内容时仍能命中结果。