Текущее время: Вт, июл 22 2025, 00:26

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Чт, июл 24 2008, 09:36 
Ассистент
Ассистент

Зарегистрирован:
Чт, июн 08 2006, 07:39
Сообщения: 30
Добрый день, не расскажите поподробнее как реализовать расчет подитогов на страницах.

Сделал все как описал OlegDm про неразрывный перенос последней строки таблицы, подитогов, итогов и подписей. Все корректно переносит, но вот возникла проблема. В случаи переноса поледней строки с итогами и подитогами и подписями, он считает что это предыдущая страница все еще и соотвественно неправильно рассчитывает подитог на странице. Как быть не подскажите.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, дек 03 2008, 18:57 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, апр 30 2008, 07:46
Сообщения: 52
Пол: Мужской
работаю в системе 4.6c

если использовать TABLE (а не LOOP), то высота у строк в самом деле может быть разной, но это можно решить.
я делаю так:
1. беру те поля, которые могут отличаться по длине (типа кр.текста), и модулем Z_SPLIT_WORDS разбиваю его во внутреннюю таблицу.
2. считаю, кол-во строк в этой таблице; если текстовых полей несколько, беру макс.значение.

поэтому количество строк на листе с грехом пополам, но можно посчитать вручную. если кол-во превышает некоторый лимит, то последняя строка должна быть перенесена на отдельный лист - это делается, как уже сказали, с помощью COMMAND.
нюанс в том, что COMMAND внутри TABLE отработать не может, поэтому нужно разделить TABLE на 2 части - в первой хранится вся таблица за исключением посл.строки, во второй - последняя строка.

с учетом этой особенности, алгоритм будет таким:
1. выводим 1 часть таблицы, по пути анализируя - а хватит ли нам места для вывода текста после таблицы?
2. если решаем что не хватит, то выставляем флаг;
3а. после вывода 1 части смотрим: если флаг выставлен, то запускаем COMMAND с переходом на новую страницу.
3б если не выставлен - значит текст после таблицы не разорвется, и последнюю строку можно вывести сразу после таблицы, - поэтому перехода COMMAND не делаем.
4. выводим последнюю строку таблицы вместе с подитогом, и тем текстом, который нужно неразрывно вывести с последней строкой таблицы.

подитоги выводятся в футере 1 части таблицы внизу каждой страницы.
при этом нужно обязательно проследить, чтобы в конце вывода не вывелось 2 подитога - от 1й части, и от 2й.

минус метода OlegDm заключается в том, что в папке внутри TABLE нельзя поместить шаблон (будет ругаться), и свойство неразрывности поэтому задать нельзя.
если бы то что выводится после таблицы в самом деле умещалось бы в 1 строку, то наверное это и сработало бы.

минус использования LOOP в том, что там нужно задавать максимальную высоту ячейки, чтобы ничего не обрезалось, соответственно выглядеть будет плохо.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу Пред.  1, 2

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


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

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


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

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