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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.06.2011, 13:49   #1  
Katuxa is offline
Katuxa
Участник
 
36 / 10 (1) +
Регистрация: 13.05.2011
Ограничение выпадающего списка
Всем Добрый день!
Подскажите как реализовать следующее.
Есть две формы: Номенклатуры и Работы. Нужно чтобы в форме работ в поле Код номенклатуры отображались только те номенклатуры, которые не привязаны к работам.
Пишу след. код в методе lookup() контрола:
X++:
public void lookup()
{
   Query                   query = new Query();
   QueryBuildDataSource    qbds;
   QueryBuildRange         queryBuildRange;
   SysTableLookup  lookup = SysTableLookup::newParameters(tablenum(InventTable), this);
   InventTable     invent;
   HCSJobTable     jobTable;
   ;

   lookup.addLookupfield(fieldnum(InventTable, ItemId));
   lookup.addLookupfield(fieldnum(InventTable, ItemName));
   lookup.addLookupfield(fieldnum(InventTable, ItemGroupId));
   lookup.addLookupfield(fieldnum(InventTable, NameAlias));
   lookup.addLookupfield(fieldnum(InventTable, ItemType));
   lookup.addLookupfield(fieldnum(InventTable, DimGroupId));

   qbds = query.addDataSource(tablenum(InventTable));

   select itemId from jobTable
    where jobTable.itemId != ''; //или следующий запрос
   //select itemId from invent notexists join itemId from jobTable;

   findOrCreateRange_W(qbds, fieldnum(InventTable, ItemType), enum2str(ItemType::BOM));
   queryBuildRange = qbds.addRange(fieldnum(InventTable, ItemId));
   queryBuildRange.value(???????);
 
   lookup.parmQuery(query);
   lookup.performFormLookup();

   //super();
}
Не знаю как указать значение queryBuildRange.
Старый 23.06.2011, 13:53   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,437 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
X++:
QueryBuildDataSource    qbdsHCSJobTable;
...
//   queryBuildRange = qbds.addRange(fieldnum(InventTable, ItemId));
//   queryBuildRange.value(???????);
qbdsHCSJobTable = qbds.addDataSource(tableNum(HCSJobTable));
qbdsHCSJobTable.joinMode(joinMode::NoExistsJoin);
Старый 23.06.2011, 14:04   #3  
Katuxa is offline
Katuxa
Участник
 
36 / 10 (1) +
Регистрация: 13.05.2011
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
X++:
QueryBuildDataSource    qbdsHCSJobTable;
...
//   queryBuildRange = qbds.addRange(fieldnum(InventTable, ItemId));
//   queryBuildRange.value(???????);
qbdsHCSJobTable = qbds.addDataSource(tableNum(HCSJobTable));
qbdsHCSJobTable.joinMode(joinMode::NoExistsJoin);
Написала так, но все-равно не работает. Выпадает пустой список, хотя список номенклатур большой и они почти все не привязаны.
Старый 23.06.2011, 14:18   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,437 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Katuxa Посмотреть сообщение
Написала так, но все-равно не работает. Выпадает пустой список, хотя список номенклатур большой и они почти все не привязаны.
Проверьте есть ли связь между таблицами InventTable и HCSJobTable.
Старый 23.06.2011, 14:27   #5  
Katuxa is offline
Katuxa
Участник
 
36 / 10 (1) +
Регистрация: 13.05.2011
Связь указана в Relations в таблице HCSJobTable.
Старый 23.06.2011, 14:32   #6  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,437 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Нужно ещё одну строку добавить в код. Вот так:
X++:
qbdsHCSJobTable = qbds.addDataSource(tableNum(HCSJobTable));
qbdsHCSJobTable.joinMode(joinMode::NoExistsJoin);
qbdsHCSJobTable.relation(true); // !!!
Старый 23.06.2011, 14:40   #7  
Katuxa is offline
Katuxa
Участник
 
36 / 10 (1) +
Регистрация: 13.05.2011
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Нужно ещё одну строку добавить в код. Вот так:
X++:
qbdsHCSJobTable = qbds.addDataSource(tableNum(HCSJobTable));
qbdsHCSJobTable.joinMode(joinMode::NoExistsJoin);
qbdsHCSJobTable.relation(true); // !!!
Получилось . Спасибо вам огромное!!!
Теги
lookup, lookup filter

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Редактируемость выпадающего списка Gorlum DAX: Программирование 4 19.01.2015 11:17
Значение n-ой колонки списка ComboBox DesertBrowser DAX: Программирование 27 05.07.2013 15:22
Массовое создание СФ. Почему берет номера из списка удаленных СФ? mazzy DAX: Функционал 6 21.03.2011 22:35
Создание в диалоговом окне выпадающего списка Maxim Gorbunov DAX: База знаний и проекты 2 23.11.2005 12:26
По поводу выпадающего списка... ArturK DAX: Программирование 2 22.04.2004 11:31
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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