Показать сообщение отдельно
Старый 30.05.2002, 12:33   #4  
AY is offline
AY
Участник
 
33 / 10 (1) +
Регистрация: 14.05.2002
Адрес: Москва
тайное знание
Уважаемый andreynikolai,
скорее всего, вы столкнулись с той же проблемой, что и я в свое время.

Решается она так (см. пример):

1. Создайте в аот репорт, скажем Report1 )))
2. Определите для него DataSource - таблицу грузов RSCMFreightTable.
3. Создайте метод отчета Report1\Methods\getUserName:
display Name getUserName ()
{
return (select Name from UserInfo
where UserInfo.Id == RSCMFreightTable.EmplId).Name;
}
и попытайтесь его откомпилировать. Система выдаёт вам 7-ю ошибку о несуществовании поля.
4. Сохраните отчет, не смотря на окно с сообщениями об ошибке.
5. Продублируйте полученный отчет в репозитарии.
6. Скомпилируйте полученный отчет CopyOfReport1.... Вот такие чудеса.
7. Создайте и сгенерируйте дизайн для CopyOfReport1и перетащите метод getUserName в Body Section Groupы.
8. Запустите отчет.
9. А Report1 сотрите, как плохое воспоминание.

Обнаружил это я ещё на версии 2.1. В 2.5. наблюдается то же самое.

С уважением,
AY.

P.S. Если вы программируете в Аксапте под 3-мя уровнями, запуск новой сессии будет воспринимать исходный некомпилируемый отчет Report1 корректным и запросто скомпилирует и выполнит его. Но умоляю Вас, никогда не программируйте под 3-мя уровнями! Да, и я полностью согласен с Wamr:
"... where UserInfo.Id == RSCMFreightTable.EmplId ..." - это НЕФИЗИЧНО!