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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.03.2008, 16:06   #1  
Iskorka is offline
Iskorka
Участник
 
11 / 10 (1) +
Регистрация: 07.05.2007
Ошибка при генерации отчета
Добрый день!
У меня вопрос довольно общий, поэтому надеюсь на ответ
Иногда при генерации отчета выходит ошибка:
Error executing code: QueryBuildRange object not initialized.

Подскажите, пожалуйста, как с этим бороться!!

Заранее спасибо!
Старый 21.03.2008, 16:21   #2  
wolfstein is offline
wolfstein
Axapta Retail User
Axapta Retail User
 
51 / 91 (4) ++++
Регистрация: 05.07.2006
Мне кажется, что как раз это не общий вопрос, а частный
Поэтому задавайте конкретный вопрос, какой отчет, стандартный или сами его писали?
А так можно тоже ответить обобщая - инициализируйте QueryBuildRange
Старый 21.03.2008, 16:42   #3  
Iskorka is offline
Iskorka
Участник
 
11 / 10 (1) +
Регистрация: 07.05.2007
Цитата:
Сообщение от wolfstein Посмотреть сообщение
Мне кажется, что как раз это не общий вопрос, а частный
Поэтому задавайте конкретный вопрос, какой отчет, стандартный или сами его писали?
А так можно тоже ответить обобщая - инициализируйте QueryBuildRange
Дело в том, что мы работаем с клиентом, который имеет дело с Аксаптой уже более 10 лет, поэтому там столько изменений, что эту базу можно назвать их собственной
Отчет не Асаптовский, а сделанный по заказу и то не нами. Я столько времени потратила на то, чтобы воспроизвести ошибку, а она - зараза не вылезает! Нам прислали ее скриншот (смотри присоединенный файл).
Вот и не знаем почему она появляется и как сделать так, чтобы у клиента она тоже не возникала...
Изображения
Тип файла: bmp infolog1.bmp (269.0 Кб, 509 просмотров)
Старый 21.03.2008, 16:49   #4  
wolfstein is offline
wolfstein
Axapta Retail User
Axapta Retail User
 
51 / 91 (4) ++++
Регистрация: 05.07.2006
Цитата:
Сообщение от Iskorka Посмотреть сообщение
Дело в том, что мы работаем с клиентом, который имеет дело с Аксаптой уже более 10 лет, поэтому там столько изменений, что эту базу можно назвать их собственной
Отчет не Асаптовский, а сделанный по заказу и то не нами. Я столько времени потратила на то, чтобы воспроизвести ошибку, а она - зараза не вылезает! Нам прислали ее скриншот (смотри присоединенный файл).
Вот и не знаем почему она появляется и как сделать так, чтобы у клиента она тоже не возникала...
К сожалению, по скриншоту тоже мало что можно сказать
Напишите, плиз, здесь код метода fetch() отчета bisInventTransferJournal.
Старый 21.03.2008, 16:52   #5  
Iskorka is offline
Iskorka
Участник
 
11 / 10 (1) +
Регистрация: 07.05.2007
Цитата:
Сообщение от wolfstein Посмотреть сообщение
К сожалению, по скриншоту тоже мало что можно сказать
Напишите, плиз, здесь код метода fetch() отчета bisInventTransferJournal.
Метод fetch():

X++:
public boolean fetch()
{
    TmpInventJournalTrans   myJournalTrans;
    InventJournalTrans      InventJournalTransQuery;
    QueryRun qr = new QueryRun(this);
    if ( qr.prompt() )
    {
        While (qr.next())
        {
            InventJournalTransQuery = qr.get(TableNum(InventJournalTrans));
            this.FillinTmp(InventJournalTransQuery);
        }
         qr.setCursor(tmpInventJournalTrans);
        this.execute(1);
        While Select tmpInventJournalTrans
        {
            element.send(tmpInventJournalTrans);
        }
        return true;
    }
    return false;
}
Старый 21.03.2008, 17:25   #6  
wolfstein is offline
wolfstein
Axapta Retail User
Axapta Retail User
 
51 / 91 (4) ++++
Регистрация: 05.07.2006
Хорошо бы было проект самого отчета еще посмотреть.
Либо код перекрытого метода prompt() \Reports\bisInventTransferJournal\Data Sources\Query\Methods\prompt
Старый 21.03.2008, 17:31   #7  
Iskorka is offline
Iskorka
Участник
 
11 / 10 (1) +
Регистрация: 07.05.2007
Цитата:
Сообщение от wolfstein Посмотреть сообщение
Либо код перекрытого метода prompt() \Reports\bisInventTransferJournal\Data Sources\Query\Methods\prompt
X++:
public boolean prompt()
{
    boolean ret;
    Query                   qr;
    QueryBuildRange         qbr_FromWhs,qbr_ToWhs,qbr_FromLocation,qbr_ToLocation;
    QueryBuildRange         qbr_DateRange,qbr_JournalType, qbr_EmplId;
    QueryBuildDataSource    qbds,qbds1;
    Object                  ReportRun;
    ret = super();
    qr               = this.query();
    qbds             = qr.dataSourceTable(tableNum(tmpInventJournalTrans));
    qbr_FromWhs      = qbds.FindRange(fieldNum(tmpInventJournalTrans,FromInventLocationId));
    qbr_ToWhs        = qbds.findRange(fieldNum(tmpInventJournalTrans,ToInventLocationId));
    qbr_FromLocation = qbds.findRange(fieldNum(tmpInventJournalTrans,FromWMSLocationId));
    qbr_ToLocation   = qbds.findRange(fieldNum(tmpInventJournalTrans,ToWMSLocationId));
    qbds1            = qr.dataSourceTable(TableNum(InventJournalTrans));
    qbr_DateRange    = qbds1.findRange(fieldNum(InventJournalTrans,TransDate));
    qbr_JournalType  = qbds1.findRange(fieldNum(InventJournalTrans,JournalType));
    qbr_EmplId       = qbds1.findRange(fieldNum(InventJournalTrans,entEmplId));
    reportrun = element.report();
    reportrun.FromWhs(qbr_FromWhs.value());
    reportrun.ToWhs(qbr_ToWhs.value());
    reportrun.FromLocation(qbr_FromLocation.value());
    reportrun.ToLocation(qbr_ToLocation.value());
    reportrun.DateRange(qbr_DateRange.value());
    reportrun.JournalType(qbr_JournalType.value());
    reportrun.EmplId(qbr_EmplId.value());
   return ret;
}
Старый 21.03.2008, 18:09   #8  
wolfstein is offline
wolfstein
Axapta Retail User
Axapta Retail User
 
51 / 91 (4) ++++
Регистрация: 05.07.2006
Какой-то из Range, которые используются в методе prompt() не существует. Поэтому FindRange не возвратит Range и соответственно он будет не инициализирован и будет ругаться при получении value().

В вашем случае лучше вместо findRange использовать метод класса Global::findOrCreateRange_RU(QueryBuildDataSource _ds, FieldID _fieldID) если он есть. Если его нет, то вот его код:
X++:
static QueryBuildRange findOrCreateRange_RU(QueryBuildDataSource _ds, FieldID _fieldID)
{
    QueryBuildRange range;

    ;

    range = _ds.findRange(_fieldID);

    // Create object if needed
    if(! range)
    {
        range = _ds.addRange(_fieldID);
    }

    return range;
}
Старый 21.03.2008, 18:27   #9  
Iskorka is offline
Iskorka
Участник
 
11 / 10 (1) +
Регистрация: 07.05.2007
Спасибо большое!!!
Только вот еще вопрос: мне необходимо знать при каких условиях эта ошибка появляется, для того, чтобы протестить это.
Старый 21.03.2008, 20:30   #10  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Попробуйте почистить данные этого отчета в sysLastValues для всех пользователей.
Старый 22.03.2008, 14:36   #11  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Посмотрите перечень Range (фильтров) на самом отчете в АОТ.
Скорее всего, какого-то из тех, который ищется в коде, там не будет.

Цитата:
Сообщение от raz
Попробуйте почистить данные этого отчета в sysLastValues для всех пользователей.
Вот это однозначно должно воспроизвести ошибку, если дело в том, что я написал выше, и при вызове отчета дополнительные фильтры не накладываются на форме запроса
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ошибка при генерации отчета jonny DAX: Программирование 1 24.08.2009 07:48
Ошибка в формате числа. 36AC DAX: Программирование 7 19.10.2006 10:04
Как изменить заголовок окна предв.просмотра отчета Владимир Максимов DAX: Программирование 6 03.07.2006 15:34
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38
Формирование отчета с динамически изменяемым числом столбцов. rumpleteazer DAX: Программирование 1 06.09.2002 11:25

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

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

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