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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.08.2004, 14:43   #1  
rohlenko is offline
rohlenko
Участник
 
24 / 10 (1) +
Регистрация: 23.07.2004
Адрес: Frankfurt
Виды Relations в Axapta
Уважаемые дамы и господа,

что может означать на EDT вот такого рода Relation

1 == someTable.someID

Спасибо!
Старый 27.08.2004, 15:18   #2  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Этот EDT - от BaseEnum. Означает, что при значении 1 он связан с SomeTable.FieldId, а при зачении 2 - SomeOterTable.OterFieldId. Связь типа "Поле фиксированно".

С Уважением,
Георгий
Старый 30.08.2004, 16:36   #3  
Ruff is offline
Ruff
Дмитрий Ерин
Аватар для Ruff
1C
 
475 / 396 (14) ++++++
Регистрация: 18.09.2003
Адрес: Тула
Небольшие уточнения
Цитата:
Этот EDT - от BaseEnum.
Совсем необязательно. Связь "Поле фиксированно" может быть и на других EDT (см. тот же Dimension). То есть связь в большинстве случаев идет по Enum-у, а сам EDT, на котором стоит такой relation, может быть любого типа.
Цитата:
Означает, что при значении 1 он связан с SomeTable.FieldId, а при зачении 2 - SomeOterTable.OterFieldId
Я бы еще добавил, что при этом он фильтрует таблицу SomeTable, выбирая записи с (Fieldid == 1) и таблицу SomeOterTable по полю (OterFieldId == 2).
__________________
Старый 30.08.2004, 16:50   #4  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Спасибо за уточнение, Дмитрий! Просто в связке "от BaseEnum" пропало "скорее всего" - при редактировании убил

С Уважением,
Георгий
Старый 30.08.2004, 16:52   #5  
Ruff is offline
Ruff
Дмитрий Ерин
Аватар для Ruff
1C
 
475 / 396 (14) ++++++
Регистрация: 18.09.2003
Адрес: Тула
Re: Небольшие уточнения
Цитата:
Изначально опубликовано Ruff

Я бы еще добавил, что при этом он фильтрует таблицу SomeTable, выбирая записи с (Fieldid == 1) и таблицу SomeOterTable по полю (OterFieldId == 2).
Соврал!
Фильтрует она, кажется, только если кроме типа "Поле фиксированно" существует еще и нормальный relation. Например в аналитике (Dimension):

Dimension == Dimensions.Num
0 == Dimensions.DimensionCode

Это значит, что из таблицы Dimensions выбирается поле Num с фильтром по полю DimensionCode == 0.

В остальных случаях - как написал George Nordic. Вроде так.
__________________
Старый 31.08.2004, 13:05   #6  
rohlenko is offline
rohlenko
Участник
 
24 / 10 (1) +
Регистрация: 23.07.2004
Адрес: Frankfurt
Спасибо всем огромное!
Теперь понятно, это фильтр, только визуально так сказать настроеный.
Удобно ничего не скажешь.

А можно ли иметь 2 EDT c разными значениями и обрабатывать программно.
Ну что то вроде

[это только схемотично!]

if (something)
{
queryBuildDataSource.addRange(SomeEDT_ID(SomeEDT1))
}
else
{
queryBuildDataSource.addRange(SomeEDT_ID(SomeEDT2))
}
SomeEDT1 и SomeEDT2 отличаются значениями в Relation к примеру
1 == someTable.someID
2 == someTable.someID

Спасибо!
Старый 31.08.2004, 13:16   #7  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Хм.. дело в том, что можно пользоваться, так сказать, "интелектуальней":
1) создать relation на связанную таблицу
2) вызвать форму, где одна основная таблица - в качестве дс
3) допустим, по клавише открываем форму со связанной таблицей
Так вот, во второй таблице данные будут только связанные с текущим значением в 1й. И в query датасорса этой таблицы уже будет необходимый range... Иногда это, наоборот, приходиться выковыривать

С Уважением,
Георгий.
Старый 31.08.2004, 14:17   #8  
rohlenko is offline
rohlenko
Участник
 
24 / 10 (1) +
Регистрация: 23.07.2004
Адрес: Frankfurt
Да конечно вы правы, этот вариант как бы стандарт.
Но если необходимо более гибкий вариант фильтра, надо програмировать.
Вот мне и пришло на ум, а вдруг это возможно. Просто решение элегантней,
можно многие условия фильтра визуально настроить, а не писать "непонятный для других" аля С++ код. Но мне кажется это невозможно
Старый 31.08.2004, 14:32   #9  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Хм.. насколько я знаю, в Axapte это встречается довольно часто..
PHP код:
    priceDiscTable_ds.query().dataSourceTable(tableNum(PriceDiscTable)).clearRanges();
    
priceDiscTable_ds.query().dataSourceTable(tableNum(PriceDiscTable)).clearDynalinks();

    
blockPriceType priceDiscTable_ds.query().dataSourceTable(tablenum(PriceDiscTable)).addRange(fieldNum(PriceDiscTablerelation));
    
blockPriceType.status(RangeStatus::HIDDEN);

    switch(
module)
    {
        case 
ModuleInventCustVend::Invent :
            
blockCode       priceDiscTable_ds.query().dataSourceTable(tableNum(PriceDiscTable)).addRange(fieldnum(PriceDiscTableitemCode));
            
blockCode.status(RangeStatus::HIDDEN);
            
blockRelation   priceDiscTable_ds.query().dataSourceTable(tableNum(PriceDiscTable)).addRange(fieldnum(PriceDiscTableitemRelation));
            
blockRelation.status(RangeStatus::HIDDEN);
            break;

        default :
            
blockCode       priceDiscTable_ds.query().dataSourceTable(tableNum(PriceDiscTable)).addRange(fieldnum(PriceDiscTableaccountCode));
            
blockCode.status(RangeStatus::HIDDEN);
            
blockRelation   priceDiscTable_ds.query().dataSourceTable(tableNum(PriceDiscTable)).addRange(fieldnum(PriceDiscTableaccountRelation));
            
blockRelation.status(RangeStatus::HIDDEN);
            break;
    } 
Это, насколько я понимаю, как раз то, о чем Вы говорите...

С Уважением,
Георгий
Старый 01.09.2004, 14:21   #10  
rohlenko is offline
rohlenko
Участник
 
24 / 10 (1) +
Регистрация: 23.07.2004
Адрес: Frankfurt
Не совсем.
Тут в AddRange пихается поле таблицы.
А я хотел туда EDT запихнуть.Ну уже понял что много хотел.
Спасибо вам за роддержку!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axaptabuilder: How to build Axapta application from XPO files stored in Visual Source Safe. Blog bot DAX Blogs 0 12.04.2007 16:10
axaptabuilder: How to build Axapta application from XPO files stored in Visual Source Safe. Blog bot DAX Blogs 0 22.11.2006 15:20
axaptabuilder: How to setup Axapta batch server running as user defined windows service Blog bot DAX Blogs 0 28.10.2006 16:47
Говорят вышел SP2 для Axapta 3. Кто нибуть что знает на эту тему? soin DAX: Прочие вопросы 10 13.10.2003 10:43
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00

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

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

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