12.09.2018, 13:49 | #1 |
Участник
|
link между dataSource
Существует 3 датасоурса. В параметрах DS1 joinsource DS2 c типом OuterJoin. Необходимо создать такую же связь с DS3.
Пробовал таким макаром, в init DS1: X++: this.query().dataSourceTable(tablenum(TSRTechItemImportance)).addLink( fieldnum(TSRTechItemImportance, TechItemId), fieldnum(TSRTechItemTreeTable, TechItemId), TSRTechItemTreeTableTS_ds.name()); Возможно ли реализовать такую связь и как? |
|
12.09.2018, 19:31 | #2 |
Участник
|
Связь - это всегда взгляд подчиненного на начальника. Это подчиненному важно мнения начальника, а не наоборот
Поэтому связь всегда настраивается из DataSource подчиненной таблицы. Если же идти со стороны "начальника", то к моменту инициализации DataSource главной таблицы DataSource подчиненной может быть еще не инициализирована Если я правильно понял и у Вас TSRTechItemTreeTable - главная TSRTechItemImportance - подчиненная То связь настраивается в init для источника данных TSRTechItemImportance. Подчиненной таблицы X++: public void init() { super(); this.query().dataSourceTable(tablenum(TSRTechItemImportance)).addLink( fieldnum(TSRTechItemTreeTable, TechItemId), // поле главной таблицы fieldnum(TSRTechItemImportance, TechItemId), // поле текущей таблицы TSRTechItemTreeTableTS_ds.name()); // имя DS главной таблицы } Справка по методу addLink указывает распределение параметров так thisDataSource.addLink(parentField, thisField [, parentDatasourceName]) Имя DataSource главной таблицы (3 параметр) обычно не указывают. Это имеет смысл только в случае, если источников данных с этой таблицей несколько и надо уточнить, о каком именно источнике идет речь --------------------------------- С другой стороны, а зачем Вы вообще программированием занимаетесь? В смысле, написанием кода. Это имеет смысл только в том случае, если настроенные на таблицах Relation отличаются от той связи, которая Вам нужна на конкретной форме. Ну, или вообще не указана Если же настроенные Relation на подчиненной таблице к главной и так те, какие Вам нужны, то просто сделайте настройку в DataSource для указания типа связи В свойствах DataSource подчиненной таблицы TSRTechItemImportance указать JoinSource = TSRTechItemTreeTable LinkType = OuterJoin И никакого программирования не нужно
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
14.09.2018, 14:03 | #3 |
Участник
|
Проблема в том, у одного датасоурса два родительских. Один указан так как вы описали, через параметр, а с еще одним возникли проблемы. Сейчас это реализовано через edit метод, что как по мне не очень...
|
|
Теги |
datasource, form, link |
|
|