1) Вы как считаете: со скидками, со скорректированными налогами, с учетом отгруженных и т.п.? Тогда неудивительно, что тормозит.
2) Если алгоритм расчета проще - то закешируйте этот метод
добавьте в ините датасорса this.cashaddmethod("Мой чудесный метод");
3) Если же все-таки алгоритм рассчета сложный, то, видимо, придется делать еше одно поле в SalesTable и пересчитывать его при изменении некоторых параметров, влияющих на стоимость заказа. Будьте осторожны, допустим, SalesTable/Line Type использует doInsert, дабы избежать рекурсии. Так что, просто пререкрыв validateField/write на SalesLine, изменение ряда пареметров не поведет за собой вызова Вашего пересчета.
С Уважением,
Георгий.
|