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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.04.2003, 11:57   #1  
ign_al is offline
ign_al
Участник
 
7 / 10 (1) +
Регистрация: 02.04.2003
Адрес: Novosibirsk
? Как создать Realation для таблицы с пом. X++?
Как создать Realation для таблицы с помощью X++? Связь таблица - таблица, normal (по полю).

HELP!
Старый 10.04.2003, 12:40   #2  
metal is offline
metal
Юзовские
Дети Юза
 
92 / 10 (1) +
Регистрация: 06.08.2002
Адрес: Украина
Поясни в репозитарии или в Query.
Старый 10.04.2003, 13:03   #3  
ign_al is offline
ign_al
Участник
 
7 / 10 (1) +
Регистрация: 02.04.2003
Адрес: Novosibirsk
Поясняю в репозитарии
Если я правильно понял вопрос:
Я создаю две таблицы в АОТ, далее мне необходимо создать между ними связь по полю (т.е. в зависимой делаем связь: Relation [в нем: Normal] и соединяем два поля) - все! Таблицы связаны. Так вот вопрос, как это сделать средствами X++? Создать таблицу я могу при помощи treeNode, а связать не могу, связь как таковую treeNode создает, а ее параметры задать нельзя...

Старый 10.04.2003, 13:06   #4  
ign_al is offline
ign_al
Участник
 
7 / 10 (1) +
Регистрация: 02.04.2003
Адрес: Novosibirsk
Да, в репозитарии
Да, в репозитарии, в query я могу создать, есть пример
Старый 10.04.2003, 13:45   #5  
metal is offline
metal
Юзовские
Дети Юза
 
92 / 10 (1) +
Регистрация: 06.08.2002
Адрес: Украина
На сколько я знаю, такое делать не только не рекомендуется, но и нельзя. Да я, честно говоря и не могу представить ситуацию, где бы это могло понадобиться. Если есть необходимость динамически менять связи между таблицами (например для отчета), я использовал query.
Старый 10.04.2003, 14:16   #6  
ign_al is offline
ign_al
Участник
 
7 / 10 (1) +
Регистрация: 02.04.2003
Адрес: Novosibirsk
Да в репозитарии
Столкнулись с проблемой, когда нужно создавать таблицы динамически, а какие таблицы без связей? Вот теперь голову ломаю
Старый 10.04.2003, 14:26   #7  
metal is offline
metal
Юзовские
Дети Юза
 
92 / 10 (1) +
Регистрация: 06.08.2002
Адрес: Украина
Если такая проблема возникла, это говорит о том, что что-то не в порядке со структурой БД. Может попробовать как нибудь извратиться, свести проблему к созданию несколько таблиц, а потом вставлять в них записи?
Старый 10.04.2003, 16:19   #8  
Garic is offline
Garic
NavAx
Аватар для Garic
NavAx Club
 
393 / 63 (3) ++++
Регистрация: 23.07.2002
Адрес: Москва
Цитата:
Если я правильно понял вопрос:
Я создаю две таблицы в АОТ, далее мне необходимо создать между ними связь по полю (т.е. в зависимой делаем связь: Relation [в нем: Normal] и соединяем два поля) - все! Таблицы связаны. Так вот вопрос, как это сделать средствами X++? Создать таблицу я могу при помощи treeNode, а связать не могу, связь как таковую treeNode создает, а ее параметры задать нельзя...
Бывает
Мы тоже сталкивались с необходимостью динамически создать из кода всего чего угодно
Например при разработке конструктора отчётов. Не того который в Аксапте, в ГК, а
универсального и более мощного.
Вашу проблему можно решить двумя способами (лично я предпочитаю первый) :
1.) С помощью TreeNode.
Вы создали таблицу Table.
через treeNode можно выйти на Table\Relations
Здесь TreeNode.add.
Ну а потом пользуясь функцией TreeNode.setProperty и устанавливаете нужные свойства(Table, field и т.п.).

2.) С помощью экспорта-импорта.

Можете воспользоваться функциями:

PHP код:
//Описание: Установка свойства объекта репозитария
//
//Параметры: _tn            - изменяемый объект TreeNode
//           _sPropertyName - название свойства
//           _sPropertyValue - новое значение свойства


static void setTreeNodeProperty(TreeNode _tnstr _sPropertyNamestr _sPropertyValue)
{
    
str sValue;
    
str sProperties _tn.AOTgetProperties();
    
int iPropertyBegin;
    
int iValueBegin;
    
int iValueEnd;

    
//начало свойства
    
iPropertyBegin strscan(sProperties_sPropertyName,1strlen(sProperties) );
    
//начало значения свойства
    
iValueBegin =  strscan(sProperties,"#",iPropertyBegin,strlen(sProperties) );

    
iValueEnd strscan(sProperties,"\n",iValueBegin,strlen(sProperties));

    
sValue substr(sProperties,1,iValueBegin);
    
sValue +=_sPropertyValue;
    
sValue += substr(sProperties,iValueEnd,strlen(sProperties));

    
_tn.AOTsetProperties(sValue);

PHP код:
//Описание:  Получение свойства объекта репозитария
//
//Параметры: _tn            - объект TreeNode
//           _sPropertyName - название свойства

static str getTreeNodeProperty(TreeNode _tnstr _sPropertyName)
{
    
str sValue;
    
str sProperties _tn.AOTgetProperties();
    
int iPropertyBegin;
    
int iValueBegin;
    
int iValueEnd;


    
//начало свойства
    
iPropertyBegin strscan(sProperties_sPropertyName,1strlen(sProperties) );
    
//начало значения свойства
    
iValueBegin =  strscan(sProperties,"#",iPropertyBegin,strlen(sProperties) );

    
iValueEnd strscan(sProperties,"\n",iValueBegin,strlen(sProperties));

    
sValue substr(sProperties,iValueBegin+1,iValueEnd-iValueBegin-1);
    return 
sValue;

__________________
С уважением, Игорь Ласийчук.
Старый 10.04.2003, 16:41   #9  
metal is offline
metal
Юзовские
Дети Юза
 
92 / 10 (1) +
Регистрация: 06.08.2002
Адрес: Украина
Сомневаюсь, что такой фокус прокатит с Relation'сами
Старый 10.04.2003, 16:55   #10  
Garic is offline
Garic
NavAx
Аватар для Garic
NavAx Club
 
393 / 63 (3) ++++
Регистрация: 23.07.2002
Адрес: Москва
Цитата:
Сомневаюсь, что такой фокус прокатит с Relation'сами
Ну почему же. Формы таким образом создаются на ура. Это мне нечем заняться было - писал инсталятор части одной формы в другую
__________________
С уважением, Игорь Ласийчук.
Старый 21.06.2005, 16:20   #11  
maxsmirnov is offline
maxsmirnov
экс-модератор
 
268 / 25 (1) +++
Регистрация: 08.07.2003
Адрес: Москва
ксатати, глюк есть небольшой в этих set / getTreeNodeProperty()
они, когда ищут свойство AllowEdit, натыкаются на AllowEditOnCreate

надо заменить в обоих

PHP код:
    //начало свойства
    
iPropertyBegin strscan(sProperties_sPropertyName,1strlen(sProperties) ); 
на что-нибудь навроде

PHP код:
    //начало свойства
    
do
    {
        
iPropertyBegin strscan(sProperties_sPropertyNameiPropertyBegin 1strlen(sProperties));
        
nextSymbol substr(sPropertiesiPropertyBegin strlen(_sPropertyName), 1); //str nextSymbol;
    
}
    while (
nextSymbol != " " && nextSymbol != "#"); 
Старый 21.06.2005, 23:35   #12  
Ned is offline
Ned
Lean Six Sigma
 
680 / 99 (5) ++++
Регистрация: 29.12.2002
Адрес: самолёт
Извиняюсь, что немного не в тему, но никто не в курсе treeNode.AOTDrop() работает? Можно с помощью него новый узел в аоте создать?
__________________
Viacheslav Nefedov, http://www.nefedov.net, http://restock.guru/
Старый 22.06.2005, 12:02   #13  
maxsmirnov is offline
maxsmirnov
экс-модератор
 
268 / 25 (1) +++
Регистрация: 08.07.2003
Адрес: Москва
Ну, как минимум, его юзают в стандартном функционале.
См. \Classes\SysCompare
Старый 09.04.2008, 18:53   #14  
polygris is offline
polygris
Участник
AxAssist
MCBMSS
 
272 / 67 (3) ++++
Регистрация: 14.06.2005
Адрес: Киев
создать relation не проблема. Вот проблема создать типы связей и их свойства. Кто нить может привести для 3-ки реальный живой пример который создает Relation на таблице с разными типами связей.
Старый 09.04.2008, 18:59   #15  
polygris is offline
polygris
Участник
AxAssist
MCBMSS
 
272 / 67 (3) ++++
Регистрация: 14.06.2005
Адрес: Киев
#define.NT_DBREFERENCE( 250)
#define.NT_DBNORMALREFERENCEFIELD( 251)
#define.NT_DBTHISFIXEDREFERENCEFIELD( 252)
#define.NT_DBEXTERNFIXEDREFERENCEFIELD( 253)
я так понял значения из этой группы макросов как то нужно использовать
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Пересоздание таблицы при синхронизации Serg16 DAX: Администрирование 1 26.08.2009 13:55
Вставка строк в таблицы Аксапты сторонними средствами Андре DAX: База знаний и проекты 1 07.05.2009 16:49
Получение из поля Map кода поля реальной таблицы, к ней привязанной (Mappings) vey DAX: Функционал 5 16.03.2005 11:16
Две таблицы - один grid!? Kengo DAX: Программирование 3 01.11.2004 15:01
Как решить проблему с правами на вновь создаваемые записи таблицы. AY DAX: Прочие вопросы 4 02.10.2003 12:44

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

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

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