27.05.2002, 15:46 | #1 |
Участник
|
display - методы для отчетов
Кто подскажет как работать с запросами в display - методах отчетов.
display Name getUserName () { return (select Name from UserInfo where UserInfo.Id == RSCMFreightTable.EmplId).Name; } У меня не работает эта конструкция, поскольку RSCMFreightTable не объявлена, а если ее объявить то в отчете ни хрена ничего не появляется, хотя поле и связано с DataMethod. |
|
27.05.2002, 16:15 | #2 |
Участник
|
Не знаю почему, но у меня иногда возникает такая проблема, не могу обратится к имени поля датасорса в квери, даже если название датасорса совпадает с именем таблицы - иногда (не всегда) возникают проблемы, тогда перекладываю этот дисплей метод на таблицу, а оттуда уже без проблем работает ... :-)
__________________
Всем привет!!! |
|
27.05.2002, 16:42 | #3 |
----------------
|
вар1. Существуют 2 таблицы: EmplTable (персонал), UserInfo (пользователи). Возможно данные в этих таблах не совпадают и тогда поиск по emplId ничего не дает
вар2. RSCMFreightTable действительно не объявлен в DS отчета (с точностью до буквы) вар3 RSCMFreightTable был добавлен в отчет только что, тогда его не будет видно до перезагрузки В отчете дисплей-метод можно разместить на ReportSection, на DS, на таблице и на отчете. А у Вас он где? |
|
30.05.2002, 12:33 | #4 |
Участник
|
тайное знание
Уважаемый 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 ..." - это НЕФИЗИЧНО! |
|
31.05.2002, 10:20 | #5 |
Участник
|
Я уже раньше это заметил.
Но что это : глюк Axapta или код написан неправильно, и это действительно чудеса |
|
|
Похожие темы | ||||
Тема | Ответов | |||
Найти display методы | 12 | |||
display-методы в группах | 2 | |||
Говорят вышел SP2 для Axapta 3. Кто нибуть что знает на эту тему? | 10 | |||
Зачем нужны display и edit методы | 4 | |||
edit и display методы | 4 |
|