29.11.2007, 14:33 | #1 |
Участник
|
предвычисление полей (не кеширование методов)
Есть форма, есть набор долговычисляемых полей, которые используют значения друг друга.
Соответственно, возникает хотелка: предвычислить все значения при смене записи, в грид выводить уже готовые значения. Вопрос: в каком методе вызывать вычисление? Если cursorNotify - он тогда для всех строк вычисляет значения для текущей строки. Active и linkActive - нули всегда отдает... |
|
29.11.2007, 14:42 | #2 |
Участник
|
postLoad вызывается после считывания каждой записи.
|
|
29.11.2007, 15:09 | #3 |
SAP
|
а может попробовать слаживать расчитаные значения во временную таблицу, и display методом их выводить. Если запись во временной таблице существует брать расчитаные значения из нее, если нет то рассчитать значения и вставить во временную таблицу, связь между обычной таблицей и временной можно сделать по recid.
Цитата:
Вопрос: в каком методе вызывать вычисление?
|
|
29.11.2007, 16:04 | #4 |
Участник
|
2konopello: какая разница, где хранить. главное, когда рассчитать. Мой метод хранения мне нравится больше - он однозначно быстрее
2kashperuk - postLoad - это чей метод? я его найти не могу среди методов формы |
|
29.11.2007, 16:06 | #5 |
Участник
|
Цитата:
см для примера LedgerTrans но быстрым такой подход не назовешь |
|
29.11.2007, 16:10 | #6 |
Участник
|
Я бы сделал так:
1. Есть кеш (ннапример, MAP) recID --> (набор вычисляемых полей) 2. При попытке получить значение одного из дисплей методов, вычисляются они все, если их нет в кеше или берутся из кеша, если есть. |
|
29.11.2007, 16:13 | #7 |
SAP
|
Цитата:
2konopello: какая разница, где хранить. главное, когда рассчитать. Мой метод хранения мне нравится больше - он однозначно быстрее
не вижу смысла рассчитывать все предварительно, мой метод производил бы расчет по мере необходимости, т.е. при поподании данных в grid. Последний раз редактировалось konopello; 29.11.2007 в 16:14. Причина: ошибки...... |
|
29.11.2007, 16:16 | #8 |
SAP
|
Цитата:
Я бы сделал так:
1. Есть кеш (ннапример, MAP) recID --> (набор вычисляемых полей) 2. При попытке получить значение одного из дисплей методов, вычисляются они все, если их нет в кеше или берутся из кеша, если есть. |
|
29.11.2007, 17:37 | #9 |
Участник
|
2konopello - я просто сразу не понял сути предложения. В принципе, действительно интересный вариант.
2belugin - имеющиюся готовую реализацию в системе не подскажете? |
|
29.11.2007, 17:43 | #10 |
Участник
|
не. не знаю.
|
|
29.11.2007, 17:49 | #11 |
SAP
|
Цитата:
2belugin - имеющиюся готовую реализацию в системе не подскажете?
только тут слегка по калечному сделано |
|
29.11.2007, 18:23 | #12 |
Участник
|
Еще можно сделать так, как на форме Закупок, к примеру.
закладка Разноска или История разноски (там где последний документ и его дата) |
|
29.11.2007, 18:32 | #13 |
Участник
|
|
|
29.11.2007, 19:10 | #14 |
Участник
|
Главная книга \ План счетов.
Сальдо "предвычисленное" поле |
|
29.11.2007, 20:18 | #15 |
Участник
|
|
|
30.11.2007, 10:08 | #16 |
SAP
|
Цитата:
Главная книга \ План счетов.
Сальдо "предвычисленное" поле |
|
|
|