Доброе утро, уважаемые форумчане!
Пошел третий день, как бьюсь с формой ТОРГ-12.
Что имеется: пдф-формуляр: хэдэр, плавающая таблица с кучей позиций, футер с подписантами.
Требование изначально стояло стандартное - сделать так, чтобы футер отображался на странице с как минимум одной строчкой позиции (т.е., нельзя допускать ситуации, когда вся таблица уместилась на странице, а на следующей - только подписанты, надо сместить туда последнюю строчку).
Как было реализовано - перед последней строчкой вставлялся разрыв страницы в зависимости от условия. Понятно, что заранее вычислить расположение таблицы (особенно если она большая) очень сложно, в итоге точность этого условия - плюс/минус полкилометра. Возникали ситуации, когда на странице имеется всего одна позиция (предпоследняя), а последняя переезжала на следующий лист. Некрасиво.
Что я сделал. Добавил перед футером еще одну таблицу. Объединил ее вместе с футером в одну субформу без разрывов. В основной табличке всегда скрываю скриптом последнюю строчку, скопировав ее во вторую табличку. Таким образом вставку разрыва страницы я отдаю на откуп адобу.
Все бы было хорошо, если бы не надо было на каждую страницу вставлять подвал с подытогами. Они рассчитываются уже примелькавшимися здесь скриптами с элементами таблицы PageTotal и EndPageTotal. В моем случае EndPageTotal первой таблицы оказывается не нужным - он будет после второй таблицы.
Теперь (после такой портянки предисловия) перехожу к сути проблемы. Если основная таблица влезла на последнюю страницу, то мне нужно отобразить для нее подытог (для этого ставлю галку "Include in Final page").
А если не влезла, и последняя строчка основной таблицы (или более) перенеслась на новую страницу, то мне нужно этот подвал с подытогами скрыть (ведь далее пойдет вторая таблица с действительно последней строчкой), и я выставлю подытог в ней. Скрыть подытог с подтягиванием следующего контента можно только ДО события layout:ready. Иначе он скроется, но останется пустая строка, и это логично, ведь лэйаут уже готов.
А точно узнать, что страница влезла или не влезла, я могу только ПОСЛЕ layout:ready, обращаясь к layout.page.
Пытался делать xfa.form.recalculate(true) в момент layout:ready - не срабатывает. Видимо, уже поздняк метаться

Итог - после стольких мучений я опять пришел к проблеме определения того, влезет у меня основная таблица или не влезет в последнюю страницу.
Собственно, вопрос к уважаемому сообществу - есть ли какой-то относительно простой способ прикинуть расположение таблицы с данными на форме до момента layout:ready? Банально, находится ли N-ая ее строка на последней странице или нет.
Я пытался высчитывать высоту таблицы исходя из числа строчек и высоты каждой строки (и моделировать ее разбиение на страницы, зная размеры листа, хэдэра и футера). Получается очень замороченно и не очень точно. Если таблица больше, чем на пару страниц, то погрешность будет уже большая. Да и слишком это вариант привязан к параметрам формы.
Был бы очень признателен за отсыл в нужную сторону к литературе. Ибо formCalc пришлось раскурить вот только с этой задачей, и возможно, не наткнулся пока на что-то простое и с бантиком

Благодарю за внимание.