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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.05.2010, 17:11   #1  
rDenis2 is offline
rDenis2
Участник
 
62 / 36 (2) +++
Регистрация: 13.05.2010
dataSetLookup(), временная таблица и Query
Добрый день

Есть задача переписать лукапе в Гриде на странице Enterprise portal
Я добавил метод datasetlookup для нужного поля в DataSource DataSet'a.

Проблема в том что в лукапе надо отобразить содержание временной таблицы, а в SysDataSetLookup можно подать только Query.

sysDataSetLookup.parmQuery(query);

Временная таблица не связана с таблицей в Datasourcе, тоесть в dataSetLookup'e создается новый Query.

X++:
void dataSetLookup(SysDataSetLookup sysDataSetLookup)

{

List list;

Query query = new Query();
;
//
//qyery.addDataSource(ClassName.getTmpTable().TableId);

list = new List(Types::String);
list.addEnd(fieldstr(ProjTable, ProjId));
list.addEnd(fieldstr(ProjTable, Name));
list.addEnd(fieldstr(ProjTable, Status));
sysDataSetLookup.parmLookupFields(list);
sysDataSetLookup.parmSelectField('ProjId');



sysDataSetLookup.parmQuery(query);
}
Пример из
Solutions Monkey: EP Tips-n-Tricks - Data Sets / Data Sources

К сожалению не нашел ничего похожего как SysTablelookup.parmTmpBuffer() в SysDataSetlookup.
как вообще можно реализовать идею, использования временной таблицы в лукапе датасета.
Старый 18.05.2010, 18:35   #2  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Надо в качестве параметра передать еще саму временную таблицу (ее содержимое). Должен быть метод вроде

X++:
sysDataSetLookup.parmQuery(query);
sysDataSetLookup.parmTmpBuffer(MyTmpTableBuffer);
Не знаю, есть ли подобный метод в действительности

Упс.. Не заметил, что уже искали и не нашли

Последний раз редактировалось Владимир Максимов; 18.05.2010 в 18:37.
Старый 18.05.2010, 21:56   #3  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
A parmQueryRun() тоже нету? А то можно было бы связать временную таблицу с QueryRun при помощи queryRun.setCursor() или queryRun.setRecord()
Старый 19.05.2010, 00:22   #4  
rDenis2 is offline
rDenis2
Участник
 
62 / 36 (2) +++
Регистрация: 13.05.2010
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
A parmQueryRun() тоже нету? А то можно было бы связать временную таблицу с QueryRun при помощи queryRun.setCursor() или queryRun.setRecord()
Нету к сожалению.

Вобщем сделал немного по другому, так как подаваемая временная таблица, была основана на обычной, то есть было table.setTmp(). И в этой временной таблице были отфильтрованные записи из обычной, я добавил к Query в dataSetlookup методе range с ИЛИ значениями, для каждой отфильтрованной строки, по одному уникальному полю.

X++:
 queryString = '(';
        qbr = SysQuery::findOrCreateRange(query.dataSourceNo(1),
            fieldnum(Table, Field));
        le = queryRangeList.getEnumerator();

         while (le.moveNext())
        {
            queryString += strfmt('(%1 = "%2")', fieldstr(Table, Field), le.current());
                if(counter != queryRangeList.elements())
                    queryString += '||';

            counter++;
        }
        queryString = queryString + ')';
        qbr.value(strfmt(queryString));

Последний раз редактировалось rDenis2; 19.05.2010 в 00:25.
Теги
lookup, query, временная таблица

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Временная таблица Antoncheg DAX: Программирование 21 15.08.2008 18:25
производительность: map или временная таблица kitty DAX: Программирование 5 15.11.2007 12:36
Временная таблица + RLS leshy DAX: Программирование 6 27.04.2006 12:39
select sum(amount) from временная таблица ATimTim DAX: Программирование 6 11.06.2004 14:16
next и временная таблица Dron AKA andy DAX: Программирование 3 24.04.2003 16:42
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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