Показать сообщение отдельно
Старый 02.05.2008, 00:06   #1  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
674 / 512 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
разная скорость отработки display методов на источнике данных формы
Делаю форму 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?
__________________
Felix nihil admirari