docs: design contains filtering for extended lookup

This commit is contained in:
2026-07-31 13:51:13 +08:00
parent 250f65b3d0
commit a644184078
@@ -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`
- 运行时由用户确认:自动筛选行输入位于文本中间的内容时仍能命中结果。