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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.06.2006, 23:08   #1  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2494 (89) +++++++++
Регистрация: 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   #2  
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, время: 00:20.