AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Функционал
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.06.2006, 18:08   #1  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
? Пользовательские настройки: не отвязать таблицу в форме параметров запроса
Уважаемые коллеги, такая проблема:

Пользователь каким-то образом умудрился приджойнить таблицу, которую теперь, извиняюсь, не "отджойнить обратно".

Конкретно: в строках журнала по основным средствам при вводе в эксплуатацию после нажатия на кнопку "Выбор" появляется форма параметров запроса (SysQueryForm), в которой в поле "Структура" нарисовано:
Код:
* Таблицы
|___ * Основные средства
      |_____ * Складские проводки
Вот "Складские проводки" и не отджойнить.

Причем, когда я делаю подобное под своим логином, мне позволено добавлять и удалять эти "Складские проводки". И у меня слева на этих "Проводках" присутствует "стрелочка" - как знак ярлыка. У пользователя такой "стрелочки" нет, и при щелчке правой кнопкой у него отсутствует пункт "Удаление", а присутствют только пункты "1:n" и "n:1".

В пункт "Использование данных" (SysLastValue) уже ходили и убили там строку: UserSetupQuery / Q:RAssetTable . Не помогло. Все запросы честно удалились, остался только "Используемый запрос". Но в нем все равно висят эти "Складские проводки"...

Как можно побороть проблему?

Заранее благодарю.
За это сообщение автора поблагодарили: NataLee (1).
Старый 22.06.2006, 18:27   #2  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,940 / 3229 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Скорее всего не до конца почистили SysLastValue.

Если есть возможность - лучше грохнуть вообще все упоминания про RAssetTable или просто весь SysLastValue для этого юзера.
Старый 22.06.2006, 18:35   #3  
olesh is offline
olesh
Участник
 
58 / 26 (1) +++
Регистрация: 02.04.2002
Адрес: Москва
Цитата:
Сообщение от Gustav
Как можно побороть проблему?
Нужно удалить из SysLastValue еще и строку Class / класс_ввода_в_эксплуатацию (RAssetProposalAcquisition?) Запрос там сидит.
За это сообщение автора поблагодарили: Gustav (4).
Старый 22.06.2006, 18:53   #4  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от olesh
Нужно удалить из SysLastValue еще и строку Class / класс_ввода_в_эксплуатацию (RAssetProposalAcquisition?) Запрос там сидит.
Гениально! Таких строк там было две - я их обеих и тю-тю! Большое спасибо!
Я думаю, даже не "еще и", а с этого надо было начинать и, может быть, только этим и ограничиться, т.е. мое убийство Q:RAssetTable, наверное, было лишним. Или нет?
Старый 22.06.2006, 19:54   #5  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от Logger
... или просто весь SysLastValue для этого юзера.
Да, но эту радикальную "последнюю надежду" мы старались всячески придержать...
Потому что юзер бы сильно расстроилась... У нас они очень трепетно относятся к своим настройкам...
Старый 22.06.2006, 23:08   #6  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Цитата:
Сообщение от Gustav
Причем, когда я делаю подобное под своим логином, мне позволено добавлять и удалять эти "Складские проводки". И у меня слева на этих "Проводках" присутствует "стрелочка" - как знак ярлыка. У пользователя такой "стрелочки" нет, и при щелчке правой кнопкой у него отсутствует пункт "Удаление", а присутствют только пункты "1:n" и "n:1".
Насчет возможности изменять под своим логином - это можно делать до тех пор, пока запрос не сохранится (не будет нажата кнопка OK в форме "Ввод в эксплуатацию"). Как только вы это сделаете - так же попадете в "ловушку".

Подкачала реализация работы с 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;
2. Исправить метод new()
X++:
    // поменять
    queryRun = new QueryRun(querystr(RassetTable));
    // на
    queryRun = new SysQueryRun(querystr(RassetTable));
   queryRun.origQueryPack(queryRun.query().pack());
3. Изменить метод unpack()
X++:
Query q;
;
...
if (queryIsPackedOk(packedQuery))
{
    q = new Query(packedQuery);
    QueryRun.Query(q);
}
...
4. Выполнить компиляцию этого класса из AOT и, по хорошему, выполнить компиляцию его наследников.
__________________
Axapta v.3.0 sp5 kr2

Последний раз редактировалось AndyD; 22.06.2006 в 23:11.
За это сообщение автора поблагодарили: NataLee (1), Lemming (2), Hammer (1).
Старый 23.06.2006, 12:17   #7  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
AndyD, большое спасибо за подробный "разбор полётов".

Пока, увы, очков добавить не могу - Форум говорит: "Вы должны добавить отзыв кому-то еще, прежде чем сможете снова добавить ее AndyD." (хотя в очередной раз мне до конца не совсем понятно почему - я уже добавлял "кому-то еще"). Поэтому откладываю "материальную" благодарность на будущее


P.S. To whom it may concern:
"добавить ОТЗЫВ... прежде чем снова добавить ЕЕ..." - пофиксите, пожал-та!

Последний раз редактировалось Gustav; 23.06.2006 в 12:25.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Пользовательские настройки Eland DAX: Программирование 1 25.10.2007 15:03
Название полей в форме запроса PavelSR DAX: Программирование 4 11.07.2007 17:19
Почему на форме "Пользовательские настройки", когда я перехожу в нее из формы, отсутствует закладка "Запрос"? Hans DAX: Администрирование 0 05.07.2007 13:52
Пользовательские настройки и точки останова loka DAX: Программирование 5 27.04.2005 14:48
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 01:20.