Commit Graph
2 Commits
Author SHA1 Message Date
mtlcl410andClaude Opus 5.5 4d467e1ba6 M12: report rows cut from repeats in positioned containers
A repeating subform drawn inside a positioned container (a tb, lr-tb or
rl-tb subform placed on a positioned page) was cut at its occur max or
MAX_INSTANCES like a flowed one, but the rows past the cut were dropped
without the layout warning that flowed subforms and tables give. Both
drawing paths now call warn_truncated, so the README, the MAX_INSTANCES
doc and the form.xfa-data note are true for these layouts too
(XFA 3.3, "The occur element", p. 786).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0175FWj4xFhMhSH3UpMU8DSC
2026-10-29 21:24:49 +08:00
mtlcl410andClaude Opus 5.5 afdb368051 M12: XFA repeating subforms lay out more than 50 rows
A repeating subform laid out at most 50 instances, so rows 51 and on of a
long list or table (from the data, or added by a button's addInstance)
were left out. XFA 3.3, "The occur element" (p. 786): max -1 sets no
upper boundary.

The per-subform bound is now 1,000: the largest occur count the parser
reads and the most rows one script run may add (MAX_ADDED). The layout
budgets still bound the whole form. Opening a form with 1,000 one-field
rows takes about 3 s in a debug build and 2,000 rows about 13 s, so a
much larger bound would let one list stall the app. Rows past the occur
max or the bound are still reported, and the warning now names the
layout's bound when that is what cut them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0175FWj4xFhMhSH3UpMU8DSC
2026-10-29 21:24:27 +08:00