Показать сообщение отдельно
Старый 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();
                }