Показать сообщение отдельно
Старый 20.08.2013, 16:17   #4  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
Цитата:
Сообщение от 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.
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.

Последний раз редактировалось Pustik; 20.08.2013 в 16:54.