Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.04.08;
Скачать: [xml.tar.bz2];

Вниз

Сумма   Найти похожие ветки 

 
Cara ©   (2007-03-14 11:29) [0]

Добрый день!
Как посчитать сумму по столбцу в DBGrid.


 
Плохиш ©   (2007-03-14 11:33) [1]

with DBGrid.DataSource.DataSet do
begin
 First;
 Summa := 0;
 while not eof do
 begin
   Summa := Summa + FieldByName("pole").AsFloat;
   Next;
 end;
end;

Но настоятельно советую начать в конце концов изучение теории.


 
Cara ©   (2007-03-14 11:40) [2]

А не переходя по полям по очереди. Ну в случае большой таблицы это не есть хорошо. В Acess есть функция Sum(), а как это в Delphi?


 
Плохиш ©   (2007-03-14 11:44) [3]


> Cara ©   (14.03.07 11:40) [2]

Вы разберитесь сначала, Вам "посчитать сумму по столбцу в DBGrid" или с помощью SQL-запроса?


 
Ega23 ©   (2007-03-14 11:46) [4]


> А не переходя по полям по очереди.


А никак.


> В Acess есть функция Sum(), а как это в Delphi?


функция Sum() есть в любой СУБД, поддерживающей ANSI SQL.


 
Reindeer Moss Eater ©   (2007-03-14 11:48) [5]

А не переходя по полям по очереди.
Если "не проходя", то можно просто угадать правильную сумму.
Random тебе поможет.


 
DimonS ©   (2007-03-14 13:33) [6]

Наговорили... :)
В библиотеке RxLib (вроде бы) есть какой-то компонент, считающий сумму столбца. Какой - не подскажу уже, давно с BDE не работаю.


 
Плохиш ©   (2007-03-14 13:43) [7]


> давно с BDE не работаю.

Интересно, какое отношение к этой ветке имеет BDE?


 
DimonS ©   (2007-03-14 13:55) [8]


> Интересно, какое отношение к этой ветке имеет BDE?

Сорри, применял ЭТО только в БДЕ...


 
Ega23 ©   (2007-03-14 14:01) [9]


> В библиотеке RxLib (вроде бы) есть какой-то компонент, считающий
> сумму столбца.


Не хочешь подумать, каким образом он это делает?  :)


 
Amoeba ©   (2007-03-14 14:28) [10]


> DimonS ©   (14.03.07 13:33) [6]
>
> Наговорили... :)
> В библиотеке RxLib (вроде бы) есть какой-то компонент, считающий
> сумму столбца. Какой - не подскажу уже, давно с BDE не работаю.
>

RxLib и BDE здесь совсем ни при чем. Суммы и средние по столбцам сам считает и показывает DBGridEh из библиотеки EhLib.
http://www.delphiplus.org/articles/news/2005/ehlib_4.0.html


 
DimonS ©   (2007-03-14 15:11) [11]


> Amoeba ©   (14.03.07 14:28) [10]


Точно, сейчас покопался. Именно EhLib, по старым исходникам посмотрел. В нем есть такие компоненты.


> Не хочешь подумать, каким образом он это делает?  :)

А если типа "select Sum(Ваш_столбец)"? Намного быстрее будет...
Хотя, в исходники незаглядывал...


 
Ega23 ©   (2007-03-14 15:16) [12]


> А если типа "select Sum(Ваш_столбец)"? Намного быстрее будет.
> ..
> Хотя, в исходники незаглядывал...
>


А это я уже не знаю, что там быстрее будет. Но если ты внимательно посмотришь исходники Eh, то поймёшь, как он сумму по столбцу считает.


 
Cara ©   (2007-03-14 17:34) [13]

А как в EhLib DBGridEh посчитать сумму?


 
Amoeba ©   (2007-03-14 17:56) [14]


> Cara ©   (14.03.07 17:34) [13]
>
> А как в EhLib DBGridEh посчитать сумму?

Настроить Footer. Подробнее смотри идущую в комплекте демку, а иначе долго бъяснять.


 
RASkov   (2007-03-14 18:31) [15]

Сумму значение поля не возможно посчитать не пробежавшись по каждой записи... пусть то будет своя реализация или чужая(функция, SQL...)... Имхо.
Можно сделать отдельную табличку(или файл) где хранить сумму поля.
При добавлении новой записи - увеличивать на значение поля, при удалении - уменьшать, а при изменении - перед изменением отнять старое значение после сохранения добавить новое. Но это наверное только в монопольном режиме и вообще наверное ерунда (просто мысли вслух). Ну и периодически делать проверку т.е. пробежаться по всем и сравнить....


 
zdm ©   (2007-03-14 18:49) [16]

в ehlib
FooterRowCount=1(или больше)
даблклик по гриду, добавить необходимые columns и которого надо считать сумму Footer-ValueType-fvtSum


 
Anatoly Podgoretsky ©   (2007-03-14 19:17) [17]

> Cara  (14.03.2007 11:40:02)  [2]

В Дельфи нет фукции Sum, Дельфи компилятор общего назначения, а Акцесс это СУБД



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.04.08;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.044 c
2-1173894070
Shand
2007-03-14 20:41
2007.04.08
Чат


6-1161367061
Русло
2006-10-20 21:57
2007.04.08
Как из своего приложения запустить подключение к GPRS


1-1171213592
kilop
2007-02-11 20:06
2007.04.08
Как программно создать обработчик события OnClick


6-1161536281
-=Germe$=-
2006-10-22 20:58
2007.04.08
....


15-1173127854
Petr V. Abramov
2007-03-05 23:50
2007.04.08
"Марш несогласных"





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский