Текущее время: Сб, июл 19 2025, 09:20

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Динамическое скрывание подвала с подытогами в PDF формуляре
СообщениеДобавлено: Чт, фев 28 2013, 08:27 
Начинающий
Начинающий

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


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическое скрывание подвала с подытогами в PDF формуляре
СообщениеДобавлено: Вс, мар 10 2013, 14:59 
Начинающий
Начинающий

Зарегистрирован:
Чт, фев 28 2013, 07:33
Сообщения: 10
На случай, если кто столкнется с такой же проблемой, в итоге решил уже описанным велосипедом.
Когда сроки совсем приперли, сделал условную вставку разрыва страницы, рассчитывая длину таблицы (складывая в цикле высоту каждой строчки) и "укладывая" ее в листы формуляра. Немного магических пассов с коэффициентами (высота строки в зависимости от количества символов в наименовании позиции) - и более-менее точно работает (с 5-6 страницами справляется, больше не надо было). Не так, как хотелось бы, но другого решения, увы, пока не нашел.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическое скрывание подвала с подытогами в PDF формуляре
СообщениеДобавлено: Пт, окт 11 2013, 09:24 
Начинающий
Начинающий

Зарегистрирован:
Пт, окт 11 2013, 09:21
Сообщения: 5
Добрый день.
Выложи пожалуйста код скрипта, если не сложно.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Динамическое скрывание подвала с подытогами в PDF формуляре
СообщениеДобавлено: Пт, окт 11 2013, 16:20 
Младший специалист
Младший специалист

Зарегистрирован:
Сб, апр 05 2008, 22:12
Сообщения: 63
Пол: Мужской
Обычно это делается так - в футер роу таблицы, который будет выводиться только на последней странице вставлялась субформа с подписантами с запретом на разрыв. Для этого роу устанавливаем крыж "кип виз превиос". Для вас такой способ не пойдет?


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB