|
22.06.2006, 18:08 | #1 |
Moderator
|
Пользовательские настройки: не отвязать таблицу в форме параметров запроса
Уважаемые коллеги, такая проблема:
Пользователь каким-то образом умудрился приджойнить таблицу, которую теперь, извиняюсь, не "отджойнить обратно". Конкретно: в строках журнала по основным средствам при вводе в эксплуатацию после нажатия на кнопку "Выбор" появляется форма параметров запроса (SysQueryForm), в которой в поле "Структура" нарисовано: Код: * Таблицы |___ * Основные средства |_____ * Складские проводки Причем, когда я делаю подобное под своим логином, мне позволено добавлять и удалять эти "Складские проводки". И у меня слева на этих "Проводках" присутствует "стрелочка" - как знак ярлыка. У пользователя такой "стрелочки" нет, и при щелчке правой кнопкой у него отсутствует пункт "Удаление", а присутствют только пункты "1:n" и "n:1". В пункт "Использование данных" (SysLastValue) уже ходили и убили там строку: UserSetupQuery / Q:RAssetTable . Не помогло. Все запросы честно удалились, остался только "Используемый запрос". Но в нем все равно висят эти "Складские проводки"... Как можно побороть проблему? Заранее благодарю. |
|
|
За это сообщение автора поблагодарили: NataLee (1). |
22.06.2006, 18:27 | #2 |
Участник
|
Скорее всего не до конца почистили SysLastValue.
Если есть возможность - лучше грохнуть вообще все упоминания про RAssetTable или просто весь SysLastValue для этого юзера. |
|
22.06.2006, 19:54 | #3 |
Moderator
|
Цитата:
Сообщение от Logger
... или просто весь SysLastValue для этого юзера.
Потому что юзер бы сильно расстроилась... У нас они очень трепетно относятся к своим настройкам... |
|
22.06.2006, 18:35 | #4 |
Участник
|
Цитата:
Сообщение от Gustav
Как можно побороть проблему?
|
|
|
За это сообщение автора поблагодарили: Gustav (4). |
22.06.2006, 18:53 | #5 |
Moderator
|
Цитата:
Сообщение от olesh
Нужно удалить из SysLastValue еще и строку Class / класс_ввода_в_эксплуатацию (RAssetProposalAcquisition?) Запрос там сидит.
Я думаю, даже не "еще и", а с этого надо было начинать и, может быть, только этим и ограничиться, т.е. мое убийство Q:RAssetTable, наверное, было лишним. Или нет? |
|
22.06.2006, 23:08 | #6 |
Участник
|
Цитата:
Сообщение от Gustav
Причем, когда я делаю подобное под своим логином, мне позволено добавлять и удалять эти "Складские проводки". И у меня слева на этих "Проводках" присутствует "стрелочка" - как знак ярлыка. У пользователя такой "стрелочки" нет, и при щелчке правой кнопкой у него отсутствует пункт "Удаление", а присутствют только пункты "1:n" и "n:1".
Подкачала реализация работы с queryRun в классе RAssetProposal Проблема в том, что форма SysQueryForm не может отделить датасоурсы, добавленные пользователем, от "оригинальных", т.е. добавленных в дизайне или программно. Если посмотреть метод Init() класса SysQueryEdit, то видно, что для выделения этих датасоурсов используется queryNextUniqueId = Query().nextUniqueId(). При этом Query() берется у текущего QueryRun, т.е. при загрузке из SysLastValue получится, что добавленные датасоурсы стали "оригинальными". Для того, чтобы эту ситуацию исправить, надо сохранить "оригинальный" запрос - а для этого необходимо использовать класс SysQueryRun (замечу, что в ClassDeclaration класса RAssetProposal queryRun определен как объект класса QueryRun, а при распаковке queryRun присваивается уже new SysQueryRun()). Что необходимо сделать в классе RAssetProposal 1. Переопределить в Class Declaration queryRun как SysQueryRun X++: SysQueryRun queryRun; X++: // поменять queryRun = new QueryRun(querystr(RassetTable)); // на queryRun = new SysQueryRun(querystr(RassetTable)); queryRun.origQueryPack(queryRun.query().pack()); X++: Query q; ; ... if (queryIsPackedOk(packedQuery)) { q = new Query(packedQuery); QueryRun.Query(q); } ...
__________________
Axapta v.3.0 sp5 kr2 Последний раз редактировалось AndyD; 22.06.2006 в 23:11. |
|
|
За это сообщение автора поблагодарили: NataLee (1), Lemming (2), Hammer (1). |
23.06.2006, 12:17 | #7 |
Moderator
|
AndyD, большое спасибо за подробный "разбор полётов".
Пока, увы, очков добавить не могу - Форум говорит: "Вы должны добавить отзыв кому-то еще, прежде чем сможете снова добавить ее AndyD." (хотя в очередной раз мне до конца не совсем понятно почему - я уже добавлял "кому-то еще"). Поэтому откладываю "материальную" благодарность на будущее P.S. To whom it may concern: "добавить ОТЗЫВ... прежде чем снова добавить ЕЕ..." - пофиксите, пожал-та! Последний раз редактировалось Gustav; 23.06.2006 в 12:25. |
|