24.09.2003, 15:30 | #1 |
Участник
|
Как подключить датасоурсы на два вторичных ключа одинакового типа на форме
В таблице есть два поля InventDimIdOld и InventDimIdNew . Ссылаются на одну и ту же таблицу InventDim. В отчёте при подключении дочернего датасоурса можно указать через какое поле идёт связь. Соответственно можно один InventDim подцепить к InventDimIdOld, а другой к InventDimIdNew. А на форме как это сделать? Оба датасоурса по умолчанию цепляются к тому полю, у которого fieldId меньше. Как программно редактировать Relation (если это вообще возможно) я не нашёл. DynaLink работает глючно почему-то. Может я как-то неправильно её прицеплял.
Сейчас попробую перекрыть метод Init у родительского датасоурса для этих двух и там полностью прописать все связи. Может так получится. Но это уж слишком дубово мне кажется. Может как-то проще можно?
__________________
Дмитрий |
|
24.09.2003, 16:05 | #2 |
Moderator
|
На init() нужного datasource после super() прописать:
PHP код:
__________________
Андрей. |
|
24.09.2003, 16:53 | #3 |
Участник
|
мне необходимо подключить к одной таблице две лукаповские(вот они как раз являются одинаковыми).
вставил после init() метода одной из лукаповских таблиц следующее PHP код:
__________________
Дмитрий |
|
24.09.2003, 17:14 | #4 |
Moderator
|
Не понял, что имеется в виду под "лукаповскими таблицами"
Я представляю себе задачу так: на форме расположены 3 грида, один - главный и 2 дочерних (по таблице InventDim). Один дочерний связан с полем InventDimIdOld, другой - с InventDimIdNew. Надо сделать так, чтобы при перемещении по основному гриду менялись дочерние. Это делается как раз так, как я и описал, в методах init() дочерних datasource. А метод dynamicField() содержит ссылку на поле из главной таблицы, и его как раз менять не надо.
__________________
Андрей. |
|
24.09.2003, 17:29 | #5 |
Участник
|
не, задача другая ... сложнее .. наверное
На форме один грид. Основан на таблице , которая содержит в себе два поля InventDimIdOld и InventDimIdNew . И в этом же гриде должны отображаться связанные с ними поля складской аналитики из таблицы InventDim. То есть старая аналитика должна отображаться и новая( такая задумка была). Так как между моей таблицей и таблицей InventDim связь n:1( многие к одному) я называю InventDim лукаповской таблицей. Вот проблема на форме и встала в присоединении двух датасоурсов InventDim к разным полям InventDimIdOld и InventDimIdNew в моей таблице.
__________________
Дмитрий |
|
24.09.2003, 18:13 | #6 |
Moderator
|
В данном случае есть хороший пример - форма строк складского журнала (форма InventJournalTransfer).
__________________
Андрей. |
|
25.09.2003, 10:26 | #7 |
Участник
|
всё , сделал ...
Спасибо. InventJournalTransfer и правда помогла. Там такая же ситуация как у меня. Я сначала вроде упёрся в то, что одно из полей InventDimIdOld у меня было необязательным( а ведь в форме InnerJoin используется). А потом оказалось, что в таблице InventDim есть "пустая" запись с InventDimId = "Axapta". Но это у меня она так настроена, у других может и не Axapta там написано.
__________________
Дмитрий |
|