02.10.2008, 12:44 | #1 |
Участник
|
Как сдлеать join по одной таблице, а курсор по другой
Есть две таблицы А и Б с отношением один ко многим ( Б.а_ид = А.ид ), создан рилэйшн и на форме датасорсы связаны через джоин, все круто работает. И еще есть третья таблица В в которой содержаться ключи из Б (В.б_ид = Б.ид), для В тоже есть рилэйшн.
Так вот надо, чтобы при смене курсора в датасорсе Б переписовалось соответсвующее поле В.б_ид. Короче говоря надо что бы фильтровалось по одной таблице, а курсор отображался по другой. Как решить эту задачу с минимальным кодингом? |
|
02.10.2008, 13:00 | #2 |
Ищущий знания...
|
Что то я не понял что надо сделать...
На форме отображаются все три DS ?
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
|
За это сообщение автора поблагодарили: cerbo (1). |
02.10.2008, 14:07 | #3 |
Участник
|
Нет В не будет отображаться, да это и неважно. Объясню другими словами.
Открывается диалог где есть два грида, один список групп (А), а второй собственно содержание этих групп (Б), требуется для каждой группы из А выбрать одну строку из Б. Причем пока форма не закрыта решение можно изменить, а для этого надо видеть что было выбранно до этого. И еще, в самом начале ни чего автоматичеки не дложно выбираться. Сделать надо что бы щелкая по строкам грида Б, айдишник строки писалися в текущую строку другой таблицы (В), т.е. надо запомнить строку которую выбрал юзер Такая схема выбрана чтобы отделить группы и их содержимое, от собственно процесса выбора. Скажем так таблицы А и Б изменить невозможно, они о В ничего не знают и занть не хотят.
__________________
Dynamics AX 4.0.2501.122 SP2, kernel 4.0.2163.0, MS SQL 2005 |
|
02.10.2008, 14:33 | #4 |
Участник
|
Цитата:
Сообщение от cerbo
Сделать надо что бы щелкая по строкам грида Б, айдишник строки писалися в текущую строку другой таблицы (В), т.е. надо запомнить строку которую выбрал юзер
Такая схема выбрана чтобы отделить группы и их содержимое, от собственно процесса выбора. Скажем так таблицы А и Б изменить невозможно, они о В ничего не знают и занть не хотят. Только там результаты выбора отображаются в дереве на отдельной закладке. Может тебе как-раз такой вариант подойдет? |
|
|
За это сообщение автора поблагодарили: cerbo (1). |
02.10.2008, 14:40 | #5 |
Участник
|
|
|
02.10.2008, 14:43 | #6 |
Ищущий знания...
|
А не проще сделать через временную таблицу?
Т.е. В одном гриде отображать группу, а в другом временную таблицу, которая заполняется при инициализации диалога (связать ID-шником группы). В этой временной таблице сделать поле выбора (галку), а патом просто выполнять функцию по выбранным строкам. Я бы сделал так
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
02.10.2008, 15:19 | #7 |
MCT
|
А как вы собираетесь обрабатывать multiselect? Делайте, как предлагают с checkBox, это самый верный вариант, так как пользователь может и случайно перейти на строчку, а вы это значение запишите
__________________
Axapta book for developer |
|
|
За это сообщение автора поблагодарили: cerbo (1). |
02.10.2008, 15:28 | #8 |
Участник
|
to MikeR: малтиселект запрещен требованиями.
Про четвертую таблицу я тоже подумал, но хотелось узнать может есть более простой способ или класс готовый. Видно придется делать по этому варианту. Спасибо за помощь
__________________
Dynamics AX 4.0.2501.122 SP2, kernel 4.0.2163.0, MS SQL 2005 Последний раз редактировалось cerbo; 02.10.2008 в 15:32. |
|
02.10.2008, 16:36 | #9 |
Участник
|
сделать эдит метод в форме
вывести его в виде галочки на таблицу строк по изменению галочки записывать или стирать из в таблицу выбранных |
|
03.10.2008, 09:29 | #10 |
MCT
|
Вот пример как это сделать на формеMyForm_pickOut.xpo
__________________
Axapta book for developer |
|
Теги |
join |
|
|