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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.04.2002, 19:18   #1  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Тип связи
Подскажите пожалуйста, как в Аксапте можно отобразить в Grid'е информацию из двух таблиц между которыми связь один(или много) к одному (или нулю).

Поясню:

Есть таблица:

А:
id : string
name : string

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

Делаю так:

Создаем тип данных Тип : String. Relation == A.id

Создаем таблицу Б:
id :Тип
txt : String

То есть каждой строке из А может соответствовать примечание в Б (на самом деле даже несколько - но это уже нежелательный эффект, на который пока я стараюсь не обращать внимание :-)), а может и не соответствовать ни одного.

Теперь необходимо отобразить на форме следующую информацию:

А.id A.name Б.id Б.txt

Grid.DataSource = Б
A.JoinSource = Б
А.LinkType = InnerJion

Всегда это помогало. А теперь столкнулся с ситуацией, когда некоторым строкам в А нет соответствующих записи (ей) в Б и они соответственно не выводятся.

Как поступить в этой ситуации ?

а) как задать отношения между таблицами, чтобы все связи из А отображались на Grid'e
б) как в Аксапте задается связь между таблицами один к одному (нулю).
Старый 22.04.2002, 21:29   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
стандартно должен работать тип связи OuterJoin.

ЕСЛИ же не работает И ты используешь форму, которую создавал не сам,
ТО смотри в код стандартной формы. Там скорее всего в executeQuery query пересоздается и тип связи переустанавливается.
Старый 23.04.2002, 11:38   #3  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
mazzy
стандартно должен работать тип связи OuterJoin.

ЕСЛИ же не работает И ты используешь форму, которую создавал не сам,
ТО смотри в код стандартной формы. Там скорее всего в executeQuery query пересоздается и тип связи переустанавливается.
Код не работает. Даже при типе связи OuterJoin. Причем на моей собственной форме.

Попробую приложить файл проекта. Если это Вас не затруднит, не могли бы Вы его посмотреть и объяснить где и что мне нужно поправить.
Вложения
Тип файла: zip tst_onetoone.zip (2.8 Кб, 140 просмотров)
Старый 24.04.2002, 10:17   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
хорошо. взял.
если можно, посмотрю вечером.
Старый 24.04.2002, 10:55   #5  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Большое спасибо.
Старый 25.04.2002, 13:06   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Посмотрел. У меня связывает. Примечания показывает.
Если к одной записи несколько примечаний, то показывает несколько примечаний.

Надо только перехватывать редактирование записей и делать refresh формы. А так все нормально.

Что можно было бы добавить - это дать тип tbl1.id = dem_t

Но и без этого работает.

Вложения
Тип файла: img1885-1 (16.0 Кб, 655 просмотров)
Старый 25.04.2002, 16:45   #7  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
Примечания показывает.
Если к одной записи несколько примечаний, то показывает несколько примечаний.
А если нет примечания ? Записи из tbl1 показывает ?


У меня:

tbl1:

1 one
2 two
3 three

tbl2:

1 prim1
2 prim2

в форме на Grid:

1 one prim1
2 two prim2

А МНЕ НАДО:

1 one prim1
2 two prim2
3 Three
Старый 25.04.2002, 17:33   #8  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Я решил эту проблему следующим образом:

1. В таблицу tbl2добавил метод:

static str cd(str 100 i)
{
tbl2 tb;

select * from tb where tb.id == i;

return tb.txt;

}

2. В tbl1 добавил следующий метод:

display str clr()
{
return tbl2::cd(this.id);
}

3. Добавил в Grid текстовое поле:

DataSource = tbl1
DataMethod = clr


Это работает, но уж больно все это сложнои неудобно (на мой взгляд). Может есть более простые варианты ?
Старый 25.04.2002, 19:10   #9  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
а.... ты в этом смысле...
дык, у тебя в фоме связь вывернута наизнанку.

Вложения
Тип файла: zip tst_onetoone.zip (2.7 Кб, 143 просмотров)
Тип файла: img1903-1 (42.5 Кб, 595 просмотров)
Старый 25.04.2002, 20:20   #10  
ddadream is offline
ddadream
Участник
Аватар для ddadream
 
130 / 17 (1) ++
Регистрация: 30.11.2001
Адрес: moscow
Для Кучи.

Смотри: таблицы table1 (id,table2_id),
table2 (id,name)
table1 (1,NULL)
(2,1)
(3,NULL)
(4,2)
(5,3)

table2 (1,'Вася')
(2,'Петя')
(3,'Гога')
(4,'Степа')

Select table1.id,table2.name
from table1 left outer join table2 on table1.table2_id = table2.id

получится

1,NULL
2,'Вася'
3,NULL
4,'Петя'
5,'Гога'

это левый outer join

Select table1.id,table2.name
from table1,table2
where table1.table2_id = table2.id

2,'Вася'
4,'Петя'
5,'Гога'

типичный пример inner joinа
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Тип производственного заказа Anais DAX: Функционал 17 26.05.2005 13:50
Сводное планирование и тип связи операции Эола DAX: Функционал 6 22.04.2005 14:52
X++ иногда не контролирует тип результата метода Logger DAX: Программирование 2 03.03.2005 18:28
Тип счета в плане счетов Axapta Vansoft DAX: Программирование 0 18.05.2004 17:20
Никак не могу вьехать, для чего нужны тип счета и тип разноски maloy DAX: Функционал 5 28.03.2004 17:18
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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