11.03.2009, 17:55 | #1 |
Участник
|
перекрытие lookup
Возможно ли в queryBuildDataSource использовать union как в sql, чтобы выводились записи не для одной таблицы. Хочу использовать это в перекрытии lookup. Возможно существует иной способ
|
|
11.03.2009, 18:17 | #2 |
Участник
|
Цитата:
вас не устроит? если же надо на одном уровне данные из разных таблиц - советую использовать временную таблицу как источник данных. Удачи |
|
11.03.2009, 22:30 | #3 |
MCITP
|
Цитата:
В более ранних версиях - этого нет. Другой способ предложен выше (временная таблица), хотя мне он совсем не нравится...
__________________
Zhirenkov Vitaly |
|
11.03.2009, 22:56 | #4 |
Участник
|
|
|
11.03.2009, 23:53 | #5 |
MCITP
|
Цитата:
Просто субъективно не нравится... Но всё равно другой альтернативы нет...
__________________
Zhirenkov Vitaly |
|
12.03.2009, 10:23 | #6 |
Боец
|
Цитата:
queryBuildDataSource использовать union как в sql
Цитата:
чтобы выводились записи не для одной таблицы.
X++: sysTableLookup = SysTableLookup::newParameters(tablenum(Table) sysTableLookup.addLookupfield(fieldnum(Table, Field1)); ... Если логика построения списка выводимых в лукапе записей более сложная, и не покрывается обычным запросом, то да, нужно подключать временную таблицу. Простите, если неверно понял задачу. |
|
12.03.2009, 12:04 | #7 |
MCITP
|
Цитата:
Человеку нужен Union в лукапе. Т.е. что-то типа следующего должно использоваться в лукапе: X++: select id, name from table1 union [all] select id, name from table2 Конечно можно придумать и другие извращённые варианты, но это скорее из спортивного интереса, а не для реальной жизни. Например, создать вью, подменить вью на уровне БД на нужный с юнионом и использовать его в лукапе. И молиться, что она (view) не пересинхронизиться. Хотя этот момент можно предусмотреть и немного "апгрэйднуть" посредством добавления триггера на DDL в БД, который бы не давал пересоздавать данное представление. Конечно, придётся иметь всё это постоянно ввиду.... Сам не пробовал реализовывать и надеюсь не придётся никогда, и никому не советую.
__________________
Zhirenkov Vitaly |
|
12.03.2009, 12:53 | #8 |
Member
|
А для чего вы лукапите данные?
Стандартный подход в Аксапте — составной ключ. В смысле перечисление, в зависимости от выбора которого в соседнем поле лукап производится по соответствующей значению выбранного перечисления таблице. Предположим, вы объедините таблицу клиентов и поставщиков. И коды у них одинаковые бывают. Что вы потом будете делать с выбранным кодом?
__________________
С уважением, glibs® |
|
16.03.2009, 10:39 | #9 |
Участник
|
Воспользовалась советом, создала временную таблицу, но столкнулась ещё с рядом проблем нельзя джойнить временную таблицу с постоянной , выбрать напрямую данные из временной таблицы тоже не получается (lookup пустой) ) посоветуйте, что можно сделать
Заранее спасибо |
|
16.03.2009, 10:54 | #10 |
Программатор
|
в таблицу то на форме данные передаете?
|
|
16.03.2009, 11:06 | #11 |
Участник
|
да, думаю может ли мне помочь setCursor
|
|
16.03.2009, 11:39 | #12 |
Программатор
|
нада в ините формы сделать что то типа: название_датасорса_временной_таблицы.setData(ваша_ временная_таблица));
|
|