12.03.2008, 12:51 | #1 |
Участник
|
Lookup, Company, FeatureKey
Как это кратко сформулировать - не знаю. Поэтому такое "корявое" название темы. Речь идет об Axapta 2.5.
Есть таблица Table1 на которую наложен свой Feature Key. Одно из полей этой таблицы содержит код записи другой таблицы из другой компании. Естесственно, это поле сделано на базе EDT у которого создана форма указанная в FormHelp. При инициализации формы для Lookup (в методе init) определяется из какой компании надо брать данные и делается настройка Table_ds.company("Компания") В общем, все это работает. Однако если пользователь не имеет прав доступа к основной таблице Table1 в той компании, в которой осуществляется выбор значения LookUp, то выбранное значение не записывается. Т.е. Lookup успешно отработал, выбрал значение, но не записал его! Причем без каких-либо сообщений об ошибках. Аналогичное поведение наблюдается и в том случае, если вместо EDT использовать Relation с дополнительным полем. Как обойти эту проблему без назначения прав доступа на таблицу в подчиненной компании? В принципе, если перекрыть Lookup на форме, в которой редактируется Table1, и вручную создать SysTableLookup внутри ChangeCompany(), то проблема снимается. Но хотелось бы решить задачу на уровне EDT, поскольку этот EDT уже используется много где. Замена DataSource на временную таблицу в форме Lookup тоже не очень хорошо, поскольку количество записей около 3 тысяч. А наполение даже 2 полей для такой таблицы - это уже заметная задержка для пользователя. |
|
12.03.2008, 19:25 | #2 |
Участник
|
Однако если пользователь не имеет прав доступа к основной таблице Table1 в той компании, в которой осуществляется выбор значения LookUp, то выбранное значение не записывается. Т.е. Lookup успешно отработал, выбрал значение, но не записал его! Причем без каких-либо сообщений об ошибках.
ээ... как то не очень понял.. это как? у EDT перекрыть FormHelp не пойдет? |
|
12.03.2008, 19:32 | #3 |
Участник
|
Собственно, он и так перекрыт. Весь вопрос в том, как именно наполнить данными ту форму, которая указана в FormHelp.
Как я уже написал, сейчас это делается при помощи явного указания компании для таблицы-источника через Table_ds.company("Компания"), что и вызывает описанную проблему. |
|
12.03.2008, 19:39 | #4 |
Участник
|
Цитата:
Сообщение от DocSerzh
Однако если пользователь не имеет прав доступа к основной таблице Table1 в той компании, в которой осуществляется выбор значения LookUp, то выбранное значение не записывается. Т.е. Lookup успешно отработал, выбрал значение, но не записал его! Причем без каких-либо сообщений об ошибках.
ээ... как то не очень понял.. это как? Разумеется, речь идет не о клиентах и заказах. Это просто пример. |
|
13.03.2008, 11:41 | #5 |
Участник
|
Цитата:
Цитата:
Сообщение от Владимир Максимов
Однако если пользователь не имеет прав доступа к основной таблице Table1 в той компании, в которой осуществляется выбор значения LookUp, то выбранное значение не записывается. Т.е. Lookup успешно отработал, выбрал значение, но не записал его! Причем без каких-либо сообщений об ошибках.
changeCompany перед вызовом формы lookap'a ... все работает... Если просто в поле ввести что то руками, валидность значения происходит? |
|
13.03.2008, 11:58 | #6 |
Участник
|
Цитата:
При этом, нет никакой гарантии, что я найду ВСЕ места. И не забуду, что надо опять-таки перекрывать lookup, если будут создавать новые формы. Проблема-то возникает именно в том случае, если НЕТ changeCompany(). Изменение компании осуществляется в форме, указанной в реквизите FormHelp нужного EDT. И это изменение осуществляется командой вида Table_ds.company("Компания") Конечно работает. Ведь нет никакого переключения между компаниями. Проблема-то совсем не в этом. |
|
18.03.2008, 14:54 | #7 |
Участник
|
Чем борьба закончилась то?
|
|
18.03.2008, 15:14 | #8 |
Участник
|
Записываю во временную таблицу.
Т.е. в качестве источник данных для LookUp-формы вместо постоянной таблицы сделал временную (MyTab.setTmp()) и вручную ее наполняю при инициализации формы. Пользователям проще подождать 1..2 секунды, чем все время дергаться из-за выскакивающих сообщений "Переход к компании ...". Ну, и мне проще, не надо морочится с правами доступа. |
|
Теги |
ax2.5, ax3.0 |
|
Похожие темы | ||||
Тема | Ответов | |||
gatesasbait: How to define a custom lookup form for an extended datatype | 0 | |||
Создание Lookup формы | 9 | |||
Нагло глючит lookup | 1 | |||
Lookup в Lookup'е | 2 | |||
Динамические Lookup формы. | 0 |
|