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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.08.2005, 12:47   #1  
Maximin is offline
Maximin
NavAx
NavAx Club
 
412 / 346 (12) ++++++
Регистрация: 09.10.2002
Адрес: Москва
How-to. Слетание пользовательских настроек в формах после вызова lookup, или MS - suxx.
В общем, выкладываю на общее обозрение решение проблемки.
Сразу проиллюстрирую примером. Описывать долго...
Проблемка состоит в следующем:
Создаем на таблице, скажем, ProdTable, lookup-метод по любому полю.

Скажем, так:
PHP код:
client static void lookupProdId(FormStringControl   lookupCtrl)
{
    
SysTableLookup          sysTableLookup SysTableLookup::newParameters(tableNum(ProdTable), lookupCtrl);
    ;
    
SysTableLookup.addLookupfield(FieldNum(ProdTableProdId));
    
sysTableLookup.performFormLookup();

Далее - создаем формочку с единственным полем, у которого перекрыт метод lookup:
PHP код:
public void lookup()
{
    ;
    
ProdTable::lookupProdId_flx(this);

Всё. Приготовления закончены.

Внимание: дробь барабанов....
Открываем форму Производственные заказы (aka ProdTable), меняем в ней поля на gridе местами.. любые (Настройка - Выходная форма - Tab -Обзор - Grid) .
Внимательно смотрим... красота... всё, так нам нужно....
Закрываем - открываем, все отлично...
Так... настало время вызвать нашу вновь созданную форму с единственным полем.
Вызываем, щелкаем на lookup кнопку, вываливается lookup. Достаточно.

Теперь можно открыть снова "Производственные заказы".
Но что это?! Где все наши в стройном порядке стоящие поля?!!
----- тут я случайно нажал Enter и мессага осталась недописанной -----

Загвоздка вот в чем. Системный класс SysTableLookup в методе formRun создает динамическую lookup-форму таким макаром:
PHP код:
.....
dictTable = new DictTable(tableId);
form.name(dictTable.name());
....... 
:-\
Т.е. название формы, созданной этим классом, совпадает с уже существующей в репозитарии.
После чего в таблицу SysLastValue, в которой хранятся настройки форм, попадают левые (с точки зрения юзера) настройки. Видимо, никто в Damgaard (aka Navision aka MS ) не предполагал, что таблица может совпадать по названию с формой.

Всё это лечится достаточно тривиально, редактированием вышеупомянутого метода класса SysTableLookup, к примеру, так:
PHP код:
dictTable = new DictTable(tableId);
form.name(dictTable.name()+"_SysAutoLookup"); 
Собственно, это всё, что я хотел сказать.
Пользуйтесь. ^^-
За это сообщение автора поблагодарили: SHiSHok (2), Logger (5).
Старый 01.08.2005, 13:54   #2  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Перенес в полезное.

Действительно, есть такая бага.

Проявляется как на Ax 3.0 SP0, так и на Ax 3.0 SP3CU2

С Уважением,
Георгий.
Старый 29.06.2007, 12:16   #3  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Исправлено в SP6
__________________
-ТСЯ или -ТЬСЯ ?
Теги
lookup, баг, ошибка, пользовательские данные, ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как достать выбранные значения после lookup ledenezz DAX: Программирование 6 25.03.2009 05:11
Как автоматически открыть lookup после нажатия ctrl+n Dima_Dima DAX: Программирование 11 13.10.2008 14:41
gatesasbait: How to define a custom lookup form for an extended datatype Blog bot DAX Blogs 0 09.07.2008 22:05
Количество знаков отображения после запятой в формах и отчетах AX3.0 SP3 ksenia DAX: Функционал 4 07.04.2008 17:27
Сохранение пользовательских настроек в диалоге отчета Андрей К. DAX: Программирование 14 26.04.2007 10:56

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

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

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