![]() |
#8 |
Administrator
|
Для примера см классы InventOnHand, PriceDisc и т.д.
Суть: Инициализируется класс, у которого имеется несколько (в Вашем случае 3) методов, возвращающих переменные Цена1, Цена2 и Цена3. Дополнительно в классе объявляется переменная-флажок isCalculated. При расчете, который выполняется в методе МетодОбщий рассчитываются переменные Цена1, Цена2, Цена3, а также взводится флажок isCalculated. В методах, которые возвращают соответствующие переменные производится проверка - а не взведен ли флажок? Если флажок не взведен - то вызывается МетодОбщий. Если флажок взведен - то ничего не вызывается - просто возвращается соответствующая переменная. Т.о. без разницы - какой метод будет вызван раньше - Цена1 или Цена3 - первый же вызов вызовет МетодОбщий и рассчитает все переменные. При этом повторного вызова МетодОбщий не произойдет. Само собой, при использовании такого подхода в гриде нужно будет позаботиться, чтобы флажок isCalculated сбрасывался в методе active(), чтобы расчет делался для каждой записи. Ну и конечно дисплей-методы должны ссылаться на методы этого класса (Цена1, Цена2, Цена3).
__________________
Возможно сделать все. Вопрос времени Последний раз редактировалось sukhanchik; 22.08.2013 в 19:40. |
|
|
За это сообщение автора поблагодарили: mazzy (2), Pustik (2). |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|