Дело обстоит так: Из формы заказов открывается сторонняя форма, на форме лежит табличка(S_LogisticsJournal) которая связана с SalesTable по SalesID(связана не в смысле Relation а в смысле логически) причем 1 записи из SalesTable может соответствовать несколько в S_LogisticsJournal. Задача: при открытии формы с табличкой(S_LogisticsJournal) на гриде нужно выводить только те записи которые соот-ют записи в SalesTable причем в сортированном виде. Я делал так: создавал Relation м\у табличками, а в Inite дата соурса(S_LogisticsJournal) писал след код:
X++:
if (element.args().dataset() == tablenum(SalesTable))
{
qb.relations(true);
qb.addSortField(fieldnum(S_LogisticsJournal, DocumentNum), SortOrder::Descending);
}
Но в таком случае Relation не работал, работала только сортировка, если удалить Relation и написать след.
X++:
qb = q.addDataSource(TableNum(S_LogisticsJournal));
if (element.args().dataset() == tablenum(SalesTable))
{
qb.addDynalink( fieldnum(S_LogisticsJournal, Source), element.args().record(),fieldnum(SalesTable, SalesID));
qb.addSortField(fieldnum(S_LogisticsJournal, DocumentNum), SortOrder::Descending);
}
то получим вот такй запрос
X++:
SELECT * FROM S_LogisticsJournal WHERE SalesTable.SalesId=S_LogisticsJournal.Source
А нужен наоборот
X++:
SELECT * FROM S_LogisticsJournal WHERE S_LogisticsJournal.Source=SalesTable.SalesId
Совсем запутался ( помогите разобраться. AX2009