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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.12.2004, 17:42   #1  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
lookup - проблема. Помогите!
Привет всем.
У меня проблема с созданием lookup из кода
На форуме так этого и не нашел.
Может кто сталкивался? Возможно ли это?
Вот перекрыл lookup:
PHP код:
    SysTableLookup          sysTableLookup SysTableLookup::newParameters(tableNum(InventTable), this);
    
Query                   query;
    
QueryBuildDataSource    queryBuildDataSource;
    
QueryBuildDataSource    queryBuildDataSourceEmbedded;
    
QueryBuildRange         queryBuildRange;
    ;


    
sysTableLookup.addLookupfield(fieldNum(InventTableItemId));
    
sysTableLookup.addLookupfield(fieldNum(InventTableItemName));
    
sysTableLookup.addLookupfield(fieldNum(CustVendExternalItemExternalItemId));

    
query = new Query();

    
queryBuildDataSource query.addDataSource(tablenum(InventTable));
    
queryBuildDataSourceEmbedded queryBuildDataSource.addDataSource(tableNum(CustVendExternalItem));

    
queryBuildDataSourceEmbedded.addLink(fieldNum(InventTableItemId), fieldNum(CustVendExternalItemItemId));
    
queryBuildDataSourceEmbedded.joinMode(JoinMode::OuterJoin);

    
queryBuildRange queryBuildDataSourceEmbedded.addRange(fieldnum(CustVendExternalItemCustVendRelation));
    
queryBuildRange.value(PurchTable.OrderAccount);

//    info(query.dataSourceNo(1).toString());
    
sysTableLookup.parmQuery(query);
    
sysTableLookup.performFormLookup(); 
Так вот, вместо Внешнего кода подставляется левое поле из InventTable. (высота)
Неужели нельзя отобразить данные из двух таблиц???
Старый 06.12.2004, 18:00   #2  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Да нет. Мы то Номенклатуру выбираем. Логичней делать на InventTable соответственно.
Нам нужны записи, даже если их соответствия нет в CustVendExternalItem.
Если такой записи нет, то в поле ExternalItemId просто должно быть пусто.

Поля то в CustVendExternalItem есть, но не все, что нужно отображать при lookup
Нам нужны все что есть в InventTable, а не все что есть в CustVendExternalItem
Старый 06.12.2004, 18:24   #3  
xonix is offline
xonix
Участник
 
360 / 11 (1) +
Регистрация: 25.08.2004
Да, я уже понял. Я проглядел OuterJoin.
Старый 06.12.2004, 18:30   #4  
xonix is offline
xonix
Участник
 
360 / 11 (1) +
Регистрация: 25.08.2004
Хм. Не программировал уже года 2.
То, что так не должно работать - это очевидно.
Для начала, если addLookupField берёт как параметро только номер поля, то ловить нечего. Ясно, что только 1 таблица.
Т.о. конструировать совсем свой лукап. Т.е. создавать там контролы и Query руками.
Старый 06.12.2004, 18:48   #5  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
http://www.axforum.info/forums/showt...2400#post12400
__________________
Андрей.
Старый 06.12.2004, 18:50   #6  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Спасибо, Андрей.
Но проектик я этот тоже смотрел.
Так аналогичная ситуация.
Я вообще так начинаю подозревать, что SysTableLookup не работает с более чем одной таблицей.
Старый 06.12.2004, 18:52   #7  
xonix is offline
xonix
Участник
 
360 / 11 (1) +
Регистрация: 25.08.2004
Да хоть с 10 таблицами!
Просто создайте там всё руками!
Старый 06.12.2004, 19:01   #8  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Изначально опубликовано Dron AKA andy
http://www.axforum.info/forums/showt...2400#post12400
и появившийся через некоторое время (судя по дате создания) на слое DIS класс TableLookup_RU
Старый 06.12.2004, 19:11   #9  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
А может кто-то еще и напишет, что нужно поменять и в каких методах?
Буду очень признателен. Море респектов всем за ответы
Старый 07.12.2004, 12:57   #10  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
На таблице, по которой делается лукап, должен быть создан display-метод.
Добавление этого метода на форму должно выглядеть так (используется TableLookup_RU):
PHP код:
tableLookup.addLookupfield(FormControlType::STRINGfalsetablemethodstr(<название_таблицы>, <название_метода>)); 
__________________
Андрей.
Старый 07.12.2004, 19:43   #11  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Да, я знаю, что есть такой класс.
Мне нужно лукап строить на InventTable.
Все бы хорошо, но display - метод я на ней не могу такой написать, чтоб выдал мне внешний код, бо я не могу туда параметр передать - запись из VendTable.

Поэтому не могу в addLookupField писать такое
PHP код:
sysLookupTable.addLookup(FormControlType::STRINGfalsetablemethodstr(InventTableExternalItemIdShow
Вот если бы можно было туда параметр передать...
Старый 07.12.2004, 20:46   #12  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
А еще, если можно, посмотрите метод
PHP код:
InventTable.ItemName 
Туда передается параметр common. Так вот, как в этот коммон можно передать InventDim, как где-то делают они (проверка стоит, или передали InventDim).

Я попробовал написать аналогичный метод, но он в него передается текущую запись в InventTable.
Что я нетак делаю?
Старый 08.12.2004, 12:31   #13  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
Цитата:
как в этот коммон можно передать InventDim
Передать можно, если использоваь display-метод как обычный, вызываемый из кода (так itemName() в данном случае и используется).
Насколько я понимаю, передать параметры в display-метод не получится, он должен полностью определяться текущей записью таблицы.
__________________
Андрей.
Старый 10.12.2004, 14:33   #14  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Построение lookup на нескольких таблицах
Короче, сделал я все таки то, что нужно было.
По lookup вызываю форму - копию InventTable, а на ней создал display - метод, в который передаю параметром запись из PurchTable. И на таблице InventTable тоже создал display - метод, в котором входной параметр такой как в функции ItemName
PHP код:
ItemName(Common _common null
Ну, и в этот метод передаю PurchTable (которая на форме).
Если кому будет, интересно, могу выложить проектик
Старый 10.12.2004, 15:28   #15  
xonix is offline
xonix
Участник
 
360 / 11 (1) +
Регистрация: 25.08.2004
Вспоминается песня А.Лаэртского
"Нахрена-ж это надо, товарищи,
Агрохимия всяка техничная,
Разны хоры да студии с бубнами..." ну, и так далее...
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Проблема со своим lookup-ом sweeper DAX: Программирование 9 15.01.2009 18:38
Подскажите в чем проблема у Lookup AndrianG DAX: Программирование 2 06.01.2009 17:38
Проблема с Lookup Form artem-t DAX: Программирование 5 17.01.2007 13:15
Помогите с lookup! Pawlik DAX: Программирование 8 31.07.2006 11:30
Проблема с Lookup Berty Wooster DAX: Программирование 2 10.02.2004 14:58
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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