Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Ehlib, DbGridEh.SumList.ExternalRecalc
|
|||
|---|---|---|---|
|
#18+
Скажем у меня 100 записей, надо посчитать сумму и вывести в футере. Ehlib это делает долго. Поэтому для этих целей есть ExternalRecalc. Порядок работы с ним такой: 1. Я считаю сумме на SQL, подставляю значение в футере. 2. Затем, если значение какой-либо записи меняется, то сумма в футере тоже меняется, но уже быстро. Он не делает полный персчет. Но у меня проблема в пункте один, я не могу подставить значение в футер почему то. Выводятся одни нулю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2003, 10:31 |
|
||
|
Ehlib, DbGridEh.SumList.ExternalRecalc
|
|||
|---|---|---|---|
|
#18+
ValueType какой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2003, 10:52 |
|
||
|
Ehlib, DbGridEh.SumList.ExternalRecalc
|
|||
|---|---|---|---|
|
#18+
fvtSum Это нужно для того, что бы потом сумма пересчитывалась. Т.е. работал пункт 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2003, 10:56 |
|
||
|
Ehlib, DbGridEh.SumList.ExternalRecalc
|
|||
|---|---|---|---|
|
#18+
А какие свойства установлены для TSumList? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2003, 11:09 |
|
||
|
Ehlib, DbGridEh.SumList.ExternalRecalc
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. Я не знаю передать значения в SumList от внешнего расчета суммы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2003, 11:27 |
|
||
|
Ehlib, DbGridEh.SumList.ExternalRecalc
|
|||
|---|---|---|---|
|
#18+
Вообщем я разобрался, вот так надо Код: plaintext Вообщем слово в Интернете ExternalRecalc вообще не встречатеся. Странно, что никто раньше не пользовался ExternalRecalc. Или не у кого вопросов не возникало?:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2003, 12:15 |
|
||
|
Ehlib, DbGridEh.SumList.ExternalRecalc
|
|||
|---|---|---|---|
|
#18+
Вообще подбитие итогов в EhGrid происходит несколько кривовато. Я не использовал ExternalRecalc, вызывал свою функцию, которая подбивала итоги, при этом работала моментально на любом наборе данных и без использования дополнительных запросов. Кстати, есть у этого подбития итогов еще куча нюансов, которые надо учитывать. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2003, 13:19 |
|
||
|
Ehlib, DbGridEh.SumList.ExternalRecalc
|
|||
|---|---|---|---|
|
#18+
MrAlex писал: вызывал свою функцию, которая подбивала итоги, при этом работала моментально на любом наборе данных и без использования дополнительных запросов. Поделись, как в Delphi быстро посчитать сумму 100 записей типа Currency. Думаю бежать по Dataset'у будет долго. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2003, 13:58 |
|
||
|
Ehlib, DbGridEh.SumList.ExternalRecalc
|
|||
|---|---|---|---|
|
#18+
Up ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 11:54 |
|
||
|
Ehlib, DbGridEh.SumList.ExternalRecalc
|
|||
|---|---|---|---|
|
#18+
Извини за долгий ответ. Принцип примерно таков. На OnBeforeEdit (это когда допустим значения корректируются в Гриде либо перед запуском процедурины, которая меняет значения этих полей), вешается процедурина каторая сохраняет значения всех нужных полей, а также итогов по ним. После проведения корректировки, например на OnAfterPost (либо после отработки иной процедуры), сравниваются текущие значения с предыдущими (по столбцам) и дальше на эти разницы (опять таки по столбцам) корректируются значения в SumList. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2003, 18:30 |
|
||
|
Ehlib, DbGridEh.SumList.ExternalRecalc
|
|||
|---|---|---|---|
|
#18+
Конечно немного замучено, зато работает намного быстрее и нет постоянных пробегов по DataSet, которые так не любит EhGrid ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2003, 18:31 |
|
||
|
Ehlib, DbGridEh.SumList.ExternalRecalc
|
|||
|---|---|---|---|
|
#18+
Так если включить SumList.ExternalRecalc то EhGrid так и делает. Проблема у меня была посчтить быстро первый раз. Я ее решил след. образом: 1. ADODataSet.records.getrows. Достает массив. В массиве посчитать сумму гораздо быстрее. ПРоблема в том, что в этот массив не попадают поля типа calculated и lookup. 2. Сделать запрос на SQL. Т.е. при открытии набора считаю сумму где надо. А при изменении этим уже занимается EhGrid, по принципу, как ты описал. Глюков пока не заметил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2003, 10:14 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=1986&tid=2116005]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 249ms |
| total: | 379ms |

| 0 / 0 |
