Делаю форму DynLinkCustTransForm с двумя связанными источниками данных CustTable -> CustTrans, расквартированными на двух гридах: сверху прыгаю по строкам заказчиков - соответственно внизу отображаются их транзакции, дата и сумма.
Определяю табличный буфер:
X++:
public class FormRun extends ObjectRun
{
CustTrans ctr;
}
Добавляю на форму два поля для отображения суммы всех транзакций текущего клиента и рисую для них два display метода на источнике данных CustTrans:
X++:
display AmountCurDebCred getTotalAmountCur()
{
;
select sum(AmountCur) from ctr
where ctr.AccountNum == CustTrans.AccountNum;
return ctr.AmountCur;
}
и
X++:
display AmountCurDebCred getTotalAmountCur2()
{
;
select sum(AmountCur) from ctr
where ctr.AccountNum == CustTable.AccountNum;
return ctr.AmountCur;
}
Так вот, невооружённым глазом видно, что второе поле отрисовывается намного быстрее первого. Почему? Ведь, если я правильно понимаю, CustTable уже отфильтрован по текущему значению AccountNum?