AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.03.2021, 17:56   #1  
Metrofun is offline
Metrofun
Участник
 
72 / 10 (1) +
Регистрация: 27.04.2020
? Вывод последней строки программируемой секции на новой странице в отчёте
Всем добрый день.
Axapta 3.0.

Есть в отчёте две программируемых секции, назовём MasterSection и SlaveSection. SlaveSection фиксированный высоты, данные выводятся один раз.
Нужно чтобы, если данные из SlaveSection выводятся на новой странице, выводилась последняя строка из предыдущей программируемой секции MasterSection.
Код ниже (фрагмент с условием).
Проблема в следующем, если при расчёте
((element.design().printerPageHeight() - element.currentYmm100()) < curMasterSectionHeight последняя строка выводится на текущей странице, а вроде должна автоматически переносится на новую страницу.
Пример:
element.design().printerPageHeight() = 28850
element.currentYmm100() = 26950
curMasterSectionHeight = 2025
element.design().printerPageHeight() - element.currentYmm100() = 1900 < curMasterSectionHeight = 2025, т.е. вывод по идее должен быть на новой странице, а выводится на текущей.
После вывода element.design().printerPageHeight() = 28979

X++:
                curMasterSectionHeight = FieldMasterSection.heightOfWordWrappedString100mm("Выводимый текст");
                if (((element.design().printerPageHeight() - element.currentYmm100()) >= curMasterSectionHeight) &&
                   (element.design().printerPageHeight() - element.currentYmm100()) < (curMasterSectionHeight + SlaveSection.height100mm()))
                {
                    element.newPage();
                }
Старый 31.03.2021, 16:33   #2  
smailik is offline
smailik
Участник
Аватар для smailik
 
250 / 70 (3) ++++
Регистрация: 10.04.2012
Адрес: Москва
Если я правильно понял, то MasterSection может быть больше чем на одном листе.
Как вариант можно попробовать вот что:
Создать PragrammableSection выполнить её в форме последней строки из MasterSection.
При execute SlaveSection смотреть печатается они полностью на новом листе или нет.
Если да, то вызвать execute PragrammableSection.
Если нет, то нет
Старый 31.03.2021, 21:46   #3  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Metrofun Посмотреть сообщение
вывод по идее должен быть на новой странице, а выводится на текущей.
А если и в этом случае все равно вручную вызывать newPage? Будут какие-то негативные эффекты? По идее не должно.

Уберите первое условие, оставьте только второе
X++:
                curMasterSectionHeight = FieldMasterSection.heightOfWordWrappedString100mm("Выводимый текст");
                if (//((element.design().printerPageHeight() - element.currentYmm100()) >= curMasterSectionHeight) &&
                   (element.design().printerPageHeight() - element.currentYmm100()) < (curMasterSectionHeight + SlaveSection.height100mm()))
                {
                    element.newPage();
                }
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вывод информации на ПОСЛЕДНЕЙ страничке отчета в AX4 HorrR DAX: Программирование 6 19.05.2011 23:36
Ширина секции в отчете symba DAX: Программирование 2 06.06.2008 17:46
Двойное отображение секции в отчете SSlavon DAX: Программирование 1 26.04.2005 14:42
Как сделать, чтобы в отчете каждый новый документ печатался с новой страницы? Николай DAX: Функционал 2 09.08.2004 13:22
Повторяющиеся строки в отчете... MIkeFW DAX: Программирование 3 05.09.2003 10:23

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 15:57.