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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.01.2013, 10:59   #1  
Andrux is offline
Andrux
Участник
Axapta Retail User
 
263 / 17 (1) ++
Регистрация: 29.05.2007
Печать книги Продаж/Покупок
Добрый день! Подскажите, после установки RU8 перестали печататься книги Продаж/Покупок С большим количеством строк. В, частности, за 3-ий квартал 2012 книга Продаж содержит 14 000 строк. При печати книги Продаж (в отчете AX, не в Excel) происходит ошибка в методе отчета SalesBook_RU, в секции PrintLine, в методе setLineHeight
X++:
void setLineHeight(int h)
{
    ReportControl       reportControl = this.controlNo(1);
    ReportShapeControl  reportShapeControl;
    int                 i = 1;
    ;

    if (h == #Value50)
    {
        return;
    }

    while(reportControl)
    {
        if (reportControl.AOTgetProperty('name') != 'CorrFactureDate'
            && reportControl.AOTgetProperty('name') != 'CorrFactureId'
            && reportControl.AOTgetProperty('name') != 'Control_15'
            && reportControl.AOTgetProperty('name') != 'AccountNum'
            && reportControl.AOTgetProperty('name') != 'RevCorrDate'
            && reportControl.AOTgetProperty('name') != 'RevCorrNum'
            && reportControl.AOTgetProperty('name') != 'RevDate'
            && reportControl.AOTgetProperty('name') != 'RevNum'
        )
        {
            if(reportControl.controlType() == ReportFieldType::Box)
            {
                reportShapeControl = reportControl;
                if (reportShapeControl.type() == ShapeType::Horizontal)
                {
                    if (reportShapeControl.top100mm() != 0)
                    {
                        reportControl.top100mm(h);
                    }
                }
                else
                {
                    reportControl.height100mm(h);
                }
            }
            else
            {
                reportControl.height100mm(h - #Value50);
            }
        }
        i++;
        reportControl =  this.controlNo(i);
    }

    this.height100mm(h);
}
Выдается ошибка: Ошибка времени выполнения: Переполнение во внутреннем стеке исполнения кода, и Axapta просто вылетает. На небольшом числе строк все печатается нормально.
Старый 25.01.2013, 12:25   #2  
Andrux is offline
Andrux
Участник
Axapta Retail User
 
263 / 17 (1) ++
Регистрация: 29.05.2007
Все решается просто. Если проверку в условии переписать
X++:
if (reportControl.treeNodeName() != this.controlName('CorrFactureDate').treeNodeName()
     .....
Вдруг кому пригодится
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
DAX2009: Корректирующие СФ: Печать дополнительного листа книги продаж malex DAX: Программирование 2 18.06.2013 18:15
Расчёт сумм при печати доп. листа книги продаж/покупок S.Kuskov DAX: Программирование 7 15.11.2012 12:57
Прогноз продаж в бюджете главной книги nicko DAX: Функционал 4 08.02.2010 15:59
Книги покупок и продаж: Электронная и печатная формы Opolik DAX: Функционал 1 17.12.2009 13:09
Книги покупок/продаж dtsymbal DAX: Программирование 9 27.07.2009 08:16

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

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

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