У меня след. вопрос: я создаю запрос из кода, и в него добавляю два источника данных. Добавленные источники данных лежат на одном уровне, и связываются по полю MainId:
{
Query q = New Query();
q.addDatasource(tablenum(MainTable));
q.addDatasource(tablenum(LineTable));
q.dataSourceTable(LineTable).addRange(fieldnum(LineTable,MainId)).value("MainTable.MainId");
}
Если данный запрос я присоединяю к источнику данных на форме, отображающей главную и подчиненную форму - то все работает прекрасно.
Вопрос: Как я могу обратиться к записям таблиц(главной и подчиненной) через Query, QueryRun, в случае, если Query построен вышеописанным способом? Следующий метод возвращает пустую запись в LineTable:
{
QueryRun qr = New QueryRun(q);
MainTable MainTable;
LineTable LineTable;
while (qr.next())
{
MainTable = qr.get(MainTable);
SalesTable = qr.get(LineTable); //пустая запись
}
}
Также не помогло создавать для подчиненной таблицы свой QueryRun на основе Query с уже подставленным Range - возвращает произвольный набор строк из подчиненной таблицы