| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > Calculated fields(Ado+Access) |
| Автор: Mr.Picwick 6.11.2004, 21:37 |
| Привет всем, такая вот типичная проблема решив которую, надеюсь облегчить жизнь не только себе , но и всем прочитавшим данную тему. У меня приложение БД. Ado+Access. Есть в одной таблице вычисляемые поля (calculated fields), а мне требуется найти сумму значений вычисляемого поля(т.е. по всем строкам), но возникают ошибки.С помощью SQL этого не сделаешь т.к. поле не в физической таблице, а в НД, т.е. в Table. Вообще с таким видом полей постоянные проблемы: например когда я использую RxDBGrid, там я делаю сортировку по столбцам нажатием на заголовок столбца А когда нажимаешь на столбец вычисляемого поля , то ничего не сортируется. Подскажите, есть ли какие стандартные приемы обхода этой фигни |
| Автор: Pakshin A. S. 7.11.2004, 12:04 | ||
пройтись в цикле и получить сумму...
|
| Автор: Mr.Picwick 7.11.2004, 17:34 |
| Мне нужно чтобы при любом изменении данных эта сумма менялась - ну вроде как в Excel формула суммы. я попробовал написать вычисление суммы в обработчике OnCalcFields - выдает ошибки, я попробовал сделать аггрегатное поле - тоже ни фига не получилось. |
| Автор: Pakshin A. S. 7.11.2004, 20:50 |
| Как только произошли изменения в наборе данных, то сразу же производи повторный рассчет... |
| Автор: Mr.Picwick 8.11.2004, 08:47 |
| Я так и сделал. Написал подобную процедуру которая вычисляет сумму, но вот в чем проблема, процедура эта "проходит по всем записям таблицы", пока записей не так много, но потом я думаю будет медленно работать. Я вот думаю изменить процедуру эту, и в ней запоминать промежуточные значения суммы, а по событиям OnChange, или OnRefresh, или AfterPost изменять значение суммы. |
| Автор: Guest 8.11.2004, 13:31 |
| ползоватся TQuery и вычисления делать в запросе. или делать View. |
| Автор: Mr.Picwick 11.11.2004, 00:19 | ||
| Guest можно поподробнее как в Делфях работать с вьюхами? Я делаю так:
Но при выполнении выдает ошибку: в секции Parameters ошибка синтаксиса |