Показать сообщение отдельно
Старый 18.02.2005, 12:45   #1  
Zabr is offline
Zabr
Участник
Axapta Retail User
 
1,202 / 345 (14) ++++++
Регистрация: 26.06.2002
Адрес: Москва
Отчет: перекрытие fetch() убивает буфер записи в display-методе
Проблема в отчете, очень похожа на баг Аксапты.
Есть display-метод, ищущий что-то по текущей записи .датасорса отчета. После перекрытия метода fetch() отчета в этом методе запись датасорса оказывется недоступна. В fetch() написано примерно так:

PHP код:
    qr = new QueryRun(this.query());
    if(
qr.prompt())
    {
      while(
qr.next())
        {
            
sOrder qr.get(tablenum(SalesTable));
            
this.send(sOrder);
        }
    } 
Пробема лечится тем, что sOrder расшаривается в classDeclaration() отчета, и обращение в display-методе идет по имени этого расшаренного буфера, а не непосредственно по имени датасорса (спасибо за совет George Nordic'у).
Однако это - явно обходной путь. В чем причина такого поведения системы? Думаю -это ошибка. Если не баг - то есть ли способ, скажем, более "правильно" перекрыть fetch() чтобы не пришлось переписывать все display-методы ?