Цитата:
Сообщение от
IKA
Element.reset() открывает новый экземпляр просмотрщика, а это как раз не нужно(
Ax2009 RU2
А почему? После вывода надо выгрузить в PDF? Пользователям хлопотно?
Поскольку Аксапта в начале формирования отчета не знает сколько у нее будет страниц, и уж тем более страниц по накладным, как в Вашем случае, попробуйте прогнать отчет в 2 захода. Цель первого: посчитать кол-во страниц для каждой накладной. Цель второго: вывести это на экран.
Для простоты восприятия создал Отчет. Прицепил к его датасорсу, ну допустим InventTable, сгенерил автодизайн -> body с двумя полями ItemId,ItemName. В методах отчета
X++:
public class ReportRun extends ObjectRun
{
boolean calcpages;
}
X++:
public void run()
{
//1 прогон
calcpages = true;
super();
//2 прогон
calcpages = false;
Element.reset();
super();
}
в методе executeSection body :
X++:
public void executeSection()
{
super();
if (calcpages )
{
.......
//вот здесь можно считать страницы по накладным
.......
}
}
Думаю, что для накладных это будет не так просто как в тестовом отчетике, но вообщем идея такая. Откроется конечно два вьюера, но во втором будут все накладные и посчитаны страницы. А первый можно, например, закрыть в конце с помощью WinApi.