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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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