Files
ElyOffice/tasks/reviews/R2.9-r1.md
T

8 lines
2.8 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-a-marked-block.patch:73:固定选区只拦截 ExtendDataArea / ExtendBackColorArea,应用筛选条件仍可通过 ScDocShell::GetDBData 扩区。复现:使用 filter.rs 的 BLOCK,选择 A1:A4 开自动筛选,再点选 A1;读取 AutoFilterValues 得到 ["1", "2", "3"],随后执行 data.filter,参数为 {"column":0,"conditions":[{"op":"values","values":["1"]}]}。导出 ODS 的 database-range 已为 S.A1:S.A5,值为 6 的合计行带 table:visibility="filter"。GetDBData 在 sc/source/ui/docshell/docsh5.cxx:150 对单格重新计算连续数据区,172 行直接 SetArea,绕过新增守卫。同样,单格处关闭自动筛选再撤销,也恢复为包含合计行的范围。修复方向:所有重算已有筛选区的入口都遵守固定边界,切换和撤销保留原范围及其固定状态;补充单格处应用条件、关闭再撤销后的实际行可见性回归。独立 cargo build -p ely-lok --bins --locked、两个 client::tests::filter 测试及八个 client::tests::rules 测试通过,现有测试仅在初始选区仍存在时读取列表,漏掉此失败路径。证据:/tmp/ely-r29-cursor.log、/tmp/ely-r29-confirm.log。
patches/libreoffice/0040-lok-calc-autofilter-keeps-a-marked-block.patch:106:选区判定漏掉 SC_MARK_SIMPLE_FILTERED,已有条件筛选的连续选区无法获得固定边界。复现:同一 BLOCK,选择 A1:A4,执行 data.filter,参数为 {"conditions":[{"field":0,"op":"equals","value":"1"}]};再次选择 A1:A4 并执行 data.autofilter。AutoFilterValues 随即返回 ["1", "2", "3", "6"];应用仅保留 1 的条件后,导出的筛选区为 S.A1:S.A5,合计行 6 被隐藏。GetDBData 已支持 SC_MARK_SIMPLE_FILTERED,新增标记判定却只接受 SC_MARK_SIMPLE。修复方向:对跨行的连续已筛选选区同样记录固定边界,并增加先条件筛选、再开启自动筛选的回归。该场景以独立 worker 重跑两次结果一致,证据:/tmp/ely-r29-confirm.log、/tmp/ely-r29-cursor.log。
patches/libreoffice/0040-lok-calc-autofilter-keeps-a-marked-block.patch:19:固定范围依赖未持久化的 bMarkedRows,XLSX / ODS 保存重开后恢复原缺陷。复现:选择同一 BLOCK 的 A1:A4 开自动筛选,保存并关闭;独立读取存档确认 XLSX 的 autoFilter ref="A1:A4"、ODS 的 target-range-address="S.A1:S.A4"。重开后首次读取筛选列表返回 ["1", "2", "3", "6"];仅保留 1 后导出,范围变成 S.A1:S.A5,合计行带 table:visibility="filter"。两种格式均复现,违反 R2.9 的选区边界及 TABLE-01 / TABLE-13 的保存使用路径;agents.md:266 记录了此限制。修复方向:保存重开后保留或从已保存的筛选范围恢复固定边界,覆盖 XLSX、ODS 往返后的列表和实际隐藏行。证据:/tmp/ely-r29-confirm.log。