Допустим у меня в MainTable и LineTable след. записи:
Заказ1
СтрокаLine1
СтрокаLine2
Заказ2
СтрокаLine3
Проблема в том, что если я так сделаю(свяжу источники данных, как главная и подчиненная, как addLink работает), то связь между таблицами MainTable и LineTable будет только InnerJoin (OuterJoin и т.д.) и после прикрепления этого запроса к источнику данных на форме данные будут отражаться след. образом:
Заказ1
СтрокаLine1
СтрокаLine2
Заказ1
СтрокаLine1
СтрокаLine2
Заказ2
СтрокаLine3
А нужно, чтобы в query был независимый источник данных по MainTable(1-ый) и независимый источник данных по LineTable(2-ой), записи по которому отбираются по значению MainId в 1-м источнике данных.
Непонятно, почему если я такой запрос присоединяю к источнику данных формы - все работает правильно, а когда делаю:
MainTable MainTable;
LineTable LineTable;
QueryRun qr_main = New QueryRun(q);//q - исходный запрос
QueryRun qr_desc;
while (qr.next())
{
MainTable = qr.get(tblenum(MainTable));
q.datasource(2).findrange(fieldnum(LineTable,MainId)).value(MainTable.MainId);
qr_desc = New QueryRun(q);
while (qr_desc.next())//СРАБОТАЕТ СТОЛЬКО РАЗ, СКОЛЬКО ЗАПИСЕЙ
//В MAINTABLE + ОТОБРАННЫЕ ЗАПИСИ В LINETABLE????!!!!!!
{
.....отберет почему-то больше записей
}
}
|