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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.08.2009, 08:48   #1  
kitty is offline
kitty
Участник
 
364 / 26 (1) +++
Регистрация: 24.05.2005
relation по 2 полям
Есть таблица Table1(field1, field2) , Table2(field1, field2) . Как настроить так, чтобы в первой таблице можно было выбровать только сочетания (field1, field2) , которые есть во второй таблице?
Можно сделать новое поле field3 rfr уник ключ в Table2 , но можно ли как-ниюудь обойтись без этого, просто c помошью relations?
Realation в Table1(field1, field2) по обоим помям на Table2(field1, field2) не помог
Старый 17.08.2009, 08:55   #2  
online
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от kitty Посмотреть сообщение
Realation в Table1(field1, field2) по обоим помям на Table2(field1, field2) не помог
Хм, а должен был! Выкладывайте проект с примером.

P.S.: Ещё посмотрите как подобная связь реализована в системе, например, для пары таблиц RAssetStandards -> RAssetTrans

Последний раз редактировалось S.Kuskov; 17.08.2009 в 09:16.
Старый 17.08.2009, 09:09   #3  
kitty is offline
kitty
Участник
 
364 / 26 (1) +++
Регистрация: 24.05.2005
Есть relation по 2 полям на Table1. Захожу в table browser Table1, нажимаю на field1 выпадает пустой лукап на table2. То же самое, если нажать на field2.

Последний раз редактировалось kitty; 17.08.2009 в 09:13.
Старый 17.08.2009, 09:47   #4  
online
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
И лукап должен работать. Пример: PurchTable->RContractTable связь по мимо прочего по двум полям RContractCode и RContractAccount, т.е. в зависимости от типа договора список договоров в лукапе меняется.
Старый 17.08.2009, 09:51   #5  
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
Под field1 и field2 таблицы Table2 должны быть созданы расширенные типы данных. В типах данных должны быть указаны связи с соответствующими полями таблицы Table2. Для полей таблицы необходимо в свойствах выставить наследование от этих типов данных.

Поле field1 таблицы Table1 должно также наследоваться от того же типа данных, который был создан для поля field1 таблицы Table2. Это обеспечит, чтобы в новой записи таблицы Table1 всегда открывался список значений из таблицы Table2. Правда, если field1 таблицы Table2 будет неуникальным, то лукап будет выглядеть несколько странным (значения там будут дублироваться). Данная проблема может быть решена, если поле field1 таблицы Table2 будет заполняться на основании справочника (и расширенный тип данных будет ссылаться не на Table2.field1, а на этот справочник).

Для того, чтобы лукапилось поле field2 таблицы Table1 наследовать его от расширенного типа данных, который создан для поля field2 таблицы Table2 нельзя. Для него как раз и нужно создать связь по двум полям. Данное поле будет лукапиться в результате только после заполнения поля field1 таблицы Table1. Ну и значения там будут только те, которые есть в связанной таблице Table2.
__________________
С уважением,
glibs®
Старый 17.08.2009, 16:35   #6  
kitty is offline
kitty
Участник
 
364 / 26 (1) +++
Регистрация: 24.05.2005
спасибо
Все делаю , как у вас описано :
Table2 : поле Field1 - имеет EDT, смотрящий на эту же Table2 поле Field1
Table2 : поле Field2 - имеет EDT, смотрящий на эту же Table2 поле Field2
Table1 : поле Field1 - имеет EDT, смотрящий Table2 поле Field1
Table1 : поле Field2 - не имеет EDT
Table1 имеет relation по 2 полям на Table2:
Table1. Field1 =Table2.Field1
Table1. Field2 =Table2.Field2
В результате, при клике на
Table1. Field1 открывается лукап на Table2, а вот Table1. Field2 не имеет лукапа совсем теперь(. Что делаю не так?
Старый 17.08.2009, 19:20   #7  
kitty is offline
kitty
Участник
 
364 / 26 (1) +++
Регистрация: 24.05.2005
удалось, спасибо! проблема была в том, что Validate = no на relation.

Можно ли сделать так, чтобы при выборе в лукапе на Table1.Field2, Table1.Field1 заполнялся автоматически (или все равно придется fieldModified переопределять)?
Старый 17.08.2009, 19:57   #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
Цитата:
Сообщение от kitty
...
при выборе в лукапе на Table1.Field2, Table1.Field1 заполнялся автоматически
...
Table1.Field1 должен быть уже заполнен, если на Table1.Field2 открылся лукап. Либо вы снова что-то недоговариваете.
__________________
С уважением,
glibs®
Старый 17.08.2009, 20:32   #9  
kitty is offline
kitty
Участник
 
364 / 26 (1) +++
Регистрация: 24.05.2005
Да, как вы описали все работает. Но хочется, чтобы при выборе записи в одном из полей, второе заполнялось тоже. Я так понимаю, что тут уже relation не поможет, можно только в modifiedField Table1.Field2 приписать заполнение Table1.Field1. У меня таблица "Подгруппы" содержит поле Группа. Пользователь должени иметь возможность на форме Клиента(которая имеет 2 поля Группа и Подгруппа ) как заполнить поле Группа, оставив Подгруппа незаполненным или заполнить оба поля, выбрав значение из поля Подгруппа( таким образом, одновременно подтянув Группу тоже из таблицы Подгруппа).
Старый 17.08.2009, 20:51   #10  
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®
Старый 20.08.2009, 12:20   #11  
kitty is offline
kitty
Участник
 
364 / 26 (1) +++
Регистрация: 24.05.2005
Хорошо, а можно без программирования очищать значение в Table1.Field2 , если пользователь меняет значение в Table1.Field1?
Старый 20.08.2009, 12:26   #12  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от kitty Посмотреть сообщение
Хорошо, а можно без программирования очищать значение в Table1.Field2 , если пользователь меняет значение в Table1.Field1?
На сколько я знаю, нет.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Теги
relation

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
И снова про Relation Corsar DAX: Программирование 7 24.10.2008 14:19
Пропал Relation в фильтре Pavel Pustovalov DAX: Администрирование 5 03.12.2005 10:16
Как найти Relation LAndy DAX: Прочие вопросы 6 09.09.2005 13:49
Relation на таблице и EDT Alex_K DAX: Программирование 2 15.12.2004 15:49
Создать Relation в AOT программным кодом EVGL DAX: Программирование 3 21.05.2003 12:47

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

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

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