Files
ElyOffice/tasks/reviews/R2.9-r2.md
T
2026-10-09 03:39:03 -04:00

4 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
FAIL
patches/libreoffice/0040-lok-calc-autofilter-keeps-its-rows.patch:61:`bKeep` 只检查 `HasAutoFilter()`,缺少当前光标属于该范围的判定,导致同表另一块数据的单格操作误用原筛选区。`GetDBNearCursor` 找不到命名范围时会返回该表的匿名范围,即使光标远离它;新增守卫跳过了原先计算连续数据区并核对位置的逻辑,`bUseThis` 因而一直为 true。复现:用 filter.rs 的 BLOCK 在 A1:A4 开自动筛选,在 D1:D3 写入 Other、9、10,B、C 列留空,再只点 D1 执行 `data.autofilter`;调用成功,导出 FODS 仍为 `S.A1:S.A4`,且其 `display-filter-buttons="true"` 消失,D1 的筛选列表为空。全新 worker 中重复结果一致。另起 worker 重建同样数据,在 D1 执行 `data.filter`,参数为 `{"conditions":[{"field":0,"op":"equals","value":"9"}]}`;调用同样成功,实际对 A1:A4 筛选,导出第 2 至 4 行均带 `table:visibility="filter"`,连 D2 中应保留的 9 也被隐藏。违反 TABLE-08 及 agents.md:266 的单格开筛选取当前数据区约定。修复方向:先核对单格与已有筛选区的归属,再决定固定其边界;光标属于另一数据块时按当前块重新定位,补充同表两块独立数据之间的单格切换和实际隐藏行回归。独立 worker 构建、4 个 filter 测试、8 个 rules 测试及 comments.py 均通过,现有测试漏掉此路径。上一轮三项缺陷已通过复查,关闭再撤销后应用条件的实际行可见性也已核对。证据:/tmp/ely-r29-r2-probe.log、/tmp/ely-r29-r2-confirm.log、/tmp/ely-r29-r2-filter.log、/tmp/ely-r29-r2-rules.log;探针及其临时文件已清理。