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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.04.2003, 12:37   #1  
daemon is offline
daemon
Участник
 
20 / 10 (1) +
Регистрация: 13.03.2003
Адрес: Москва, Россия
Lookup и связанные таблицы
Доброго времени суток!

Нужна помощь!!!!

Есть две таблиицы:
UserInfo:
ID
Name

DepUsers
UserID
DepartmentID

Нужно сделать Lookup со следующим запросом (MS SQL):
SELECT USERINFO.ID, USERINFO.NAME
FROM USERINFO LEFT OUTER JOIN DEPUSERS ON USERINFO.ID = DEPUSERS.USERID
WHERE (DEPUSERS.DEPARTMENTID = 'IT')

В Grid'е выводится поле Name, а значение берется из ID
__________________
Roman "Daemon" Krivov
Specialist of “CORUS Group” IT department
Старый 23.04.2003, 13:06   #2  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Re: Lookup и связанные таблицы
Цитата:
Изначально опубликовано daemon
Нужно сделать Lookup со следующим запросом (MS SQL):
SELECT USERINFO.ID, USERINFO.NAME
FROM USERINFO LEFT OUTER JOIN DEPUSERS ON USERINFO.ID = DEPUSERS.USERID
WHERE (DEPUSERS.DEPARTMENTID = 'IT')
Зачем LEFT OUTER JOIN?

Цитата:
В Grid'е выводится поле Name, а значение берется из ID
Если я правильно понял вопрос, то нужно сделать lookup на поле с display-методом и чтобы в результате менялось значение в поле с ID?
Могу предложить добавить невидимый столбец с ID и из lookup столбца Name вызывать ID.lookup. Сам такого не делал... и вообще лучше показывать ID + Name и не мучиться.
Старый 23.04.2003, 13:30   #3  
daemon is offline
daemon
Участник
 
20 / 10 (1) +
Регистрация: 13.03.2003
Адрес: Москва, Россия
Post Re: Re: Lookup и связанные таблицы
Цитата:
Изначально опубликовано Wamr
Зачем LEFT OUTER JOIN?
Упс! Оно действительно не нужно. Но нужно сделать так, чтобы в lookup'е выводились только те записи из таблици UserInfo, которые соответствую записям в таблице DepUsers (Relation: UserInfo.Id==DepUser.UserID) и с условием DepUsers.DepartmentID == 'IT'...

Впринципе, после долгого мучения решение найдено:
PHP код:
public void lookup()
{
    
SysTableLookup          _sysTableLoookup SysTableLookup::newParameters(tablenum(UserInfo), this);
    
Query                   _query;
    
QueryBuildDataSource    _ds1;
    
QueryBuildDataSource    _ds2;
    ;

    
_sysTableLoookup.addLookupfield(fieldnum(UserInfoId), true);
    
_sysTableLoookup.addLookupfield(fieldnum(UserInfoName), false);

    
_query = new Query();
    
_ds1 _query.addDataSource(tablenum(UserInfo));
    
_ds2 _ds1.addDataSource(tablenum(DepUsers));
    
_ds2.addLink(fieldnum(UserInfoId), fieldnum(DepUsersUserID));
    
_ds2.addRange(fieldnum(DepUsersDepartmentID)).value('IT');

    
_sysTableLoookup.parmQuery(_query);
    
_sysTableLoookup.performFormLookup();

Правда так и не выяснил, как в Grid'е выводить только Name (без ID). Видать без display-метода не обойтись. А может кто знает решение?
__________________
Roman "Daemon" Krivov
Specialist of “CORUS Group” IT department
Старый 23.04.2003, 14:30   #4  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Правда так и не выяснил, как в Grid'е выводить только Name (без ID). Видать без display-метода не обойтись. А может кто знает решение?
Ну вот Wamr например знает
Цитата:
Могу предложить добавить невидимый столбец с ID и из lookup столбца Name вызывать ID.lookup
Старый 23.04.2003, 14:52   #5  
daemon is offline
daemon
Участник
 
20 / 10 (1) +
Регистрация: 13.03.2003
Адрес: Москва, Россия
Знать то он знает...
... только как это реализовать? как сделать столбец ID не видимым? Уж очень не хочется создавать свою lookup-форму.
__________________
Roman "Daemon" Krivov
Specialist of “CORUS Group” IT department
Старый 23.04.2003, 15:12   #6  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Re: Знать то он знает...
Цитата:
Изначально опубликовано daemon
... только как это реализовать? как сделать столбец ID не видимым?
У столбца ID в DataDictionary - Tables - <Твоя таблица> - Fields поставить Property Visible = No.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 23.04.2003, 15:45   #7  
daemon is offline
daemon
Участник
 
20 / 10 (1) +
Регистрация: 13.03.2003
Адрес: Москва, Россия
Re: Re: Знать то он знает...
Цитата:
Изначально опубликовано Maxim Gorbunov

У столбца ID в DataDictionary - Tables - <Твоя таблица> - Fields поставить Property Visible = No.
А если таблица системная? таблица UserInfo - системная
__________________
Roman "Daemon" Krivov
Specialist of “CORUS Group” IT department
Старый 23.04.2003, 16:15   #8  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
как сделать столбец ID не видимым?
Представь, что это не Аксапта, а другой "конструктор" - Delphi, VB, Visual FoxPro, что угодно - как бы ты поступил там? Посмотри на Edit-ы в Grid, у них есть свойство Visible

зачем сразу на таблице visible менять? чем плохо это на control-е сделать?
Старый 23.04.2003, 17:09   #9  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
lookup
Вместо строки
_sysTableLoookup.performFormLookup();
PHP код:
    fr _sysTableLoookup.formRun();

    
fsc fr.design().control(fr.form().design().controlNum(1).controlNum(1).id());
    
fsc.visible(false);

    
this.performFormLookup(fr); 
и не забыть
FormRun fr;
FormStringControl fsc;
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
OLAP - parent-child и связанные таблицы одновременно twilight DAX: Функционал 3 20.08.2007 17:11
Создание Lookup формы Maxim Gorbunov DAX: База знаний и проекты 9 26.06.2007 16:44
Фильтр в Lookup по полю другой таблицы gefr DAX: Программирование 6 12.03.2007 13:06
Связанные таблицы Diman DAX: Программирование 1 28.07.2003 16:45
Связанные датасорсы или таблицы Dmitryus DAX: Программирование 1 18.11.2002 13:07

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

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

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