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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.03.2009, 17:55   #1  
ktrn is offline
ktrn
Участник
 
29 / 10 (1) +
Регистрация: 28.01.2009
перекрытие lookup
Возможно ли в queryBuildDataSource использовать union как в sql, чтобы выводились записи не для одной таблицы. Хочу использовать это в перекрытии lookup. Возможно существует иной способ
Старый 11.03.2009, 18:17   #2  
plumbum is offline
plumbum
Участник
Соотечественники
 
182 / 86 (3) ++++
Регистрация: 07.12.2007
Адрес: Vienna, AT
Цитата:
Сообщение от ktrn Посмотреть сообщение
Возможно ли в queryBuildDataSource использовать union как в sql, чтобы выводились записи не для одной таблицы. Хочу использовать это в перекрытии lookup. Возможно существует иной способ
а вложить один queryBuildDataSource в другой: queryBuildDataSource.addDataSource(...)
вас не устроит?

если же надо на одном уровне данные из разных таблиц - советую использовать временную таблицу как источник данных.

Удачи
Старый 11.03.2009, 22:30   #3  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от ktrn Посмотреть сообщение
Возможно ли в queryBuildDataSource использовать union как в sql, чтобы выводились записи не для одной таблицы. Хочу использовать это в перекрытии lookup. Возможно существует иной способ
В 2009-ой можно в АОТ создавать квери с union и её использовать, по идее.
В более ранних версиях - этого нет.

Другой способ предложен выше (временная таблица), хотя мне он совсем не нравится...
__________________
Zhirenkov Vitaly
Старый 11.03.2009, 22:56   #4  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от ZVV Посмотреть сообщение
Другой способ предложен выше (временная таблица), хотя мне он совсем не нравится...
А что в нем, собственно, "такого"? Посмотрите, как реализован lookup по счетам ГК...
Старый 11.03.2009, 23:53   #5  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от gl00mie Посмотреть сообщение
А что в нем, собственно, "такого"? Посмотрите, как реализован lookup по счетам ГК...
Да видел, неоднократно... ))
Просто субъективно не нравится... Но всё равно другой альтернативы нет...
__________________
Zhirenkov Vitaly
Старый 12.03.2009, 10:23   #6  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
queryBuildDataSource использовать union как в sql
и
Цитата:
чтобы выводились записи не для одной таблицы.
Не совсем понял вопрос и ответы на него. Ведь query в lookup'e используется исключительно для фильтрации выводимых в lookup'e значений. А таблица, по которой производится лукап, и список выводимых полей определяется методами
X++:
sysTableLookup = SysTableLookup::newParameters(tablenum(Table)
sysTableLookup.addLookupfield(fieldnum(Table, Field1));
...
Если нужно в лукапе видеть поля из нескольких связанных таблиц, то можно построить view с нужным списком полей, критериями, - и пользовать её как таблицу.
Если логика построения списка выводимых в лукапе записей более сложная, и не покрывается обычным запросом, то да, нужно подключать временную таблицу.
Простите, если неверно понял задачу.
Старый 12.03.2009, 12:04   #7  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от DSPIC Посмотреть сообщение
и

Не совсем понял вопрос и ответы на него. Ведь query в lookup'e используется исключительно для фильтрации выводимых в lookup'e значений. А таблица, по которой производится лукап, и список выводимых полей определяется методами
.....
Смысл вопроса и ответов в следующем:
Человеку нужен Union в лукапе.
Т.е. что-то типа следующего должно использоваться в лукапе:
X++:
select id, name from table1
union [all] 
select id, name from table2
В 2009 так сделать вроде как можно (сам не пробовал), В ранних версиях - только через временную таблицу.

Конечно можно придумать и другие извращённые варианты, но это скорее из спортивного интереса, а не для реальной жизни. Например, создать вью, подменить вью на уровне БД на нужный с юнионом и использовать его в лукапе. И молиться, что она (view) не пересинхронизиться. Хотя этот момент можно предусмотреть и немного "апгрэйднуть" посредством добавления триггера на DDL в БД, который бы не давал пересоздавать данное представление. Конечно, придётся иметь всё это постоянно ввиду.... Сам не пробовал реализовывать и надеюсь не придётся никогда, и никому не советую.
__________________
Zhirenkov Vitaly
Старый 12.03.2009, 12:53   #8  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
А для чего вы лукапите данные?

Стандартный подход в Аксапте — составной ключ. В смысле перечисление, в зависимости от выбора которого в соседнем поле лукап производится по соответствующей значению выбранного перечисления таблице.

Предположим, вы объедините таблицу клиентов и поставщиков. И коды у них одинаковые бывают. Что вы потом будете делать с выбранным кодом?
__________________
С уважением,
glibs®
Старый 16.03.2009, 10:39   #9  
ktrn is offline
ktrn
Участник
 
29 / 10 (1) +
Регистрация: 28.01.2009
Воспользовалась советом, создала временную таблицу, но столкнулась ещё с рядом проблем нельзя джойнить временную таблицу с постоянной , выбрать напрямую данные из временной таблицы тоже не получается (lookup пустой) ) посоветуйте, что можно сделать
Заранее спасибо
Старый 16.03.2009, 10:54   #10  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
в таблицу то на форме данные передаете?
Старый 16.03.2009, 11:06   #11  
ktrn is offline
ktrn
Участник
 
29 / 10 (1) +
Регистрация: 28.01.2009
да, думаю может ли мне помочь setCursor
Старый 16.03.2009, 11:39   #12  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
нада в ините формы сделать что то типа: название_датасорса_временной_таблицы.setData(ваша_ временная_таблица));
Теги
lookup

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
gatesasbait: How to define a custom lookup form for an extended datatype Blog bot DAX Blogs 0 09.07.2008 22:05
Создание Lookup формы Maxim Gorbunov DAX: База знаний и проекты 9 26.06.2007 16:44
про перекрытие метода lookup simply DAX: Программирование 3 10.06.2004 18:36
Динамические Lookup формы. Андрей Василюк DAX: База знаний и проекты 0 07.12.2001 07:07

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

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

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