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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.03.2004, 17:48   #1  
ArturK is offline
ArturK
Участник
 
81 / 10 (1) +
Регистрация: 13.08.2003
? проблемы с lookup
Хочется создать простую вещь - два поля на форме, где второе поле зависит от первого.

Но я столкнулся с двумя проблемами:

Есть таблица1 (поле1), таблица2 (поле2). Таблицы между собой не связаны Relation.
1. при переносе поля1 и поля2 на форму они не имеют выпадающих списков, хотя EDT у обоих это позволяет. Думаю это происходит от того что в данных таблицах эти поля должны быть уникальными.

Но тогда как мне получить на форме данные поля в виде выпадающих списков?

2. для второго поля я перекрываю метод loolup()

PHP код:
public void lookup()
{
    
SysTableLookup          sysTableLookup SysTableLookup::newParameters(tablenum(таблица2), this);
    
Query                   query = new Query();
    
QueryBuildDataSource    qbds query.addDataSource(tablenum(таблица2));
    
QueryBuildRange         qbr qbds.addRange(fieldnum(таблица2поле2));
    ;

    
sysTableLookup.addLookupfield(fieldnum(таблица2поле1));
    
sysTableLookup.addLookupfield(fieldnum(таблица2поле2));

    
qbr.value(таблица1.поле1);

    
sysTableLookup.parmQuery(query);
    
sysTableLookup.performFormLookup();

но ничего не выбирается во втором поле.
Подскажите, пожалуйста, что я неправильно делаю?
Старый 17.03.2004, 18:09   #2  
dn is offline
dn
Участник
Самостоятельные клиенты AX
 
486 / 159 (6) ++++++
Регистрация: 26.03.2003
Адрес: Москва
Значение range правильно формируется? Какой тип у поле1 ?
Старый 17.03.2004, 18:21   #3  
ArturK is offline
ArturK
Участник
 
81 / 10 (1) +
Регистрация: 13.08.2003
Цитата:
Изначально опубликовано dn
Значение range правильно формируется? Какой тип у поле1 ?
тип поля1 EDT ссылающийся на это поле,
есля перетаскиваю поле с подобным EDT То на ворме оно представлено в виде выпадающего списка.

А вот если я его тащу с основной таблице, в которой оно уникально, то выпадающего списка нет.

В этом вся проблема... Как тут быть?
Старый 17.03.2004, 18:26   #4  
Джон is offline
Джон
Участник
 
39 / 10 (1) +
Регистрация: 05.08.2003
Попробуйте выставить свойство LookupButton у Edit'ов в Always
Старый 17.03.2004, 18:40   #5  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
Re: проблемы с lookup
Цитата:
Изначально опубликовано ArturK
хотя EDT у обоих это позволяет
В каждом из EDT прописаны relations на соответствующую таблицу?
В самой таблице у поля указан соответствующий EDT?
__________________
Андрей.
Старый 17.03.2004, 18:42   #6  
ArturK is offline
ArturK
Участник
 
81 / 10 (1) +
Регистрация: 13.08.2003
Цитата:
Изначально опубликовано Джон
Попробуйте выставить свойство LookupButton у Edit'ов в Always
Большое спасибо!
То что доктор прописал ....
Старый 17.03.2004, 18:52   #7  
ArturK is offline
ArturK
Участник
 
81 / 10 (1) +
Регистрация: 13.08.2003
но теперь когда делаю выборку записи,
а потом закрываю форму,
мне вылетает ошибка "невозможно отредактировать запись в Таблице2. Запись уже существует".

как от этого избавиться.

повторю:
1. я перетащил из таблицы поле на форму. Это поле в таблице должно быть уникально.
2. и перекрыл данному StringEdit
3. и поставил свойство lookupButton в always

что я сделал не так?
Старый 17.03.2004, 19:00   #8  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
У вас что-то неправильно изначально. Если в stringedit установлены свойства Datasource и Datafield, а на соответствующем поле таблицы установлен EDT с настроенным relation, кнопка lookup`а появляется сама и не нужно ставить lookupButton в always. Это стандартный механизм работы lookup.
__________________
Андрей.
Старый 17.03.2004, 19:05   #9  
ArturK is offline
ArturK
Участник
 
81 / 10 (1) +
Регистрация: 13.08.2003
да, у меня все так и есть,
и в других таблицах это поле отображается в виде выпадающего списка,

в этой "родительской" таблице нет.
кроме того я заметил, что во всех родительских таблицах поля, являющиеся уникальными, на формах не отображаются в виде списков.

Например,
если из таблицы InventTable перетащить на форму поле InventGroupId, то выпадающий список есть,
а если перетащить это же поле из таблицы InventItemGroup, то оно будет без выпадающего списка.

мне кажется, что при выборе из данного поля, формы патается создать новое поле с именем уже имеющимся в таблице, а так как оно уникальное, вот и выскакивает ошибка.

если это так, то в как нужно делать правильно?
Старый 17.03.2004, 19:24   #10  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
Никогда над этим не задумывался, но, похоже, АХАРТА не рисует кнопку для полей, relations в EDT которых ссылаются на само это поле (и не важно, уникальный там индекс или нет).
А у вас, скорее всего, происходит следующее: для того, чтобы была возможность редактирования (выпадания lookup), нужна запись в datasource. Соответственно, вызывая lookup, вы редактируете какую-то существующую запись или создаете новую. При закрытии формы происходит автоматическое сохранение измененной записи, соответственно, если выбрано уже имеющееся в таблице значение первичного ключа, вызывается сообщение об ошибке.
__________________
Андрей.
Старый 17.03.2004, 19:25   #11  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
Кстати, что за странная у вас задача: редактировать уникальное поле посредством выбора значений из него?
__________________
Андрей.
Старый 17.03.2004, 19:32   #12  
ArturK is offline
ArturK
Участник
 
81 / 10 (1) +
Регистрация: 13.08.2003
Цитата:
Изначально опубликовано Dron AKA andy
Кстати, что за странная у вас задача: редактировать уникальное поле посредством выбора значений из него?
Нет мне просто нужно сделать lookup одного поля по другому.
А потом значения передать в другую форму ...

Чтобы все понять может вы объясните, как такое сделать на следующем примере.

На форме два поля ItemGroupId и ItemId
в Itemid должны отображаться записи, соответсвующие выбранной группе в ItemGroupId

По каким таблицам строятся DS для этих полей?

это аналогичная моей задача ...
Старый 18.03.2004, 09:17   #13  
dn is offline
dn
Участник
Самостоятельные клиенты AX
 
486 / 159 (6) ++++++
Регистрация: 26.03.2003
Адрес: Москва
Постановка задачи действительно странная... Обычно имеется своя таблица в которой есть поля, допустим ItemId и ItemGroupId. После заполнения ItemGroupId требуется фильтровать по этому значению выпадающий список для ItemId. Для этого у самого контрола или у объекта поля ItemId источника данных перекрывается метод lookup, как вы писали в первом сообщении этой ветки.
Если я правильно понял то, что вы все-таки хотите, то нужно:
1.Создать временную таблицу с двумя полями ItemId и ItemGroupId.
2. Создать на форме источник данных ссылающийся на эту таблицу.
3. Создать контролы для полей этого источника данных и у одного из них перекрыть метод lookup.
p.s.
В качестве "Таблицы2" будет выступать InventTable, а "Таблицы1" - таблица источника данных формы.
Старый 18.03.2004, 14:23   #14  
YVAS is offline
YVAS
1C
Аватар для YVAS
1C
 
265 / 10 (1) +
Регистрация: 31.07.2003
Цитата:
Нет мне просто нужно сделать lookup одного поля по другому.
2ArturK:
Тогда здесь все очень просто (даже на примере InventTable):

Поле ItemGroupId имеет тип ItemGroupId. Смотрим данный тип. Он имеет relation на таблицу InventItemGroup по полю ItemGroupId. Поле ItemGroupId у таблицы InventItemGroup должно быть уникально и являться первичным ключом. Если все эти условия у вас соблюдены, то лукап сам появляется. Судя по всему у вас что то с EDT.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
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 Sada DAX: Программирование 1 08.06.2006 10:32
Проблемы с Lookup monk DAX: Программирование 1 17.02.2004 14:08
Динамические Lookup формы. Андрей Василюк DAX: База знаний и проекты 0 07.12.2001 07:07

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

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

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