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

Вниз

Общая сумма в DBGrid колонке   Найти похожие ветки 

 
dron-s ©   (2004-12-21 20:26) [0]

Мастера, помогите решить вопрос: как сосчитать общую сумму одной колонки в DBGrid"е?


 
sniknik ©   (2004-12-21 21:11) [1]

она тебе не нужна (ничего не отражает).
ну скажи зачем тебе сумма из 20 видимых строк из пары сотен всего имеющихся (к примеру).


 
dron-s ©   (2004-12-21 21:28) [2]

У меня такая ситуация, у меня идёт подсчёт за каждую позицию(вместе с процентами, налогами и т.д), а в конце мне надо состичать общую сумму всего товара. Как это сделать?


 
PEAKTOP ©   (2004-12-22 00:22) [3]

Не мучаться, а поставить DBGridEh Димы Большакова.

http://ehlib.com/rus/


 
dron-s ©   (2004-12-22 18:45) [4]


> Не мучаться, а поставить DBGridEh Димы Большакова.
>
> http://ehlib.com/rus/


И что измениться, что он начнёт сам считать?


 
Zacho ©   (2004-12-22 19:45) [5]

dron-s ©   (22.12.04 18:45) [4]

А посмотреть ? TDBGridEh действительно такое может "сам", без написания какого-либо кода. И ещё много чего может.

Ну если ты принципмально не хочешь сторонних компонент, то считай суммы запросом SELECT MAX(..) .. или в цикле по набору данных.


 
dron-s ©   (2004-12-22 21:22) [6]

Как он начинает считать, какие опции надо включить чтобы он начал считать?


 
Skyle ©   (2004-12-22 21:38) [7]

> dron-s ©   (22.12.04 21:22) [6]
Не ленись и возьми обычный TDBgrid для отображения.
Просто скажи своему DataSet"у например в OnCalcFields, чтобы он всё пересчитал....


 
Zacho ©   (2004-12-22 21:58) [8]

dron-s ©   (22.12.04 21:22) [6]

В комплекте EhLib есть примеры. Посмотри, там это есть. И в хелпе тоже есть.
Обрати внимание на всё, связанное с footer и SumList

> Просто скажи своему DataSet"у например в OnCalcFields,
> чтобы он всё пересчитал....

Что-то я не понял, как OnCalcFields поможет для расчёта суммы по всем записям DataSet"а :)
Имхо ему нужно именно что-то типа футера. Или просто эту сумму выводить в какой-нибудь лейбл или статусбар и т.п.


 
dron-s ©   (2004-12-22 22:15) [9]

Просто отображать общуюю сумму лейбл


 
dron-s ©   (2004-12-22 22:34) [10]


> Просто скажи своему DataSet"у например в OnCalcFields, чтобы
> он всё пересчитал....


Как ему это сказать!!


 
Kabaev Sergey ©   (2004-12-24 10:31) [11]

Можно использовать в качестве DataSet компонент TClientDataSet. У него есть агрегаты - есть возможность считать любые итоговые поля. А потом показывать значения в TLabel, как советовали.
Но это громоздкий вариант. Если нет запрета на использование сторонних компонент, то действительно проще взять TDBGridEh


 
msguns ©   (2004-12-24 12:22) [12]

И все-таки не могу объяснить упорное "а где мне взять такую сетку ?" ничем иным, как банальной ленью.
Вот имеем запрос на отображение некоего датасета, назовем это "основой запрос" (ОЗ). Требуется по некоторым колонкам получить сумму (или кол-во, т.е. некий агрегат).
ОЗ состоит из нескольких частей: SELECT, WHERE (JOIN) и ORDER BY

Построим второй запрос, который заменяет SELECT ОЗ на перечень агрегатов: SUM(<Field1>),COUNT(<Field2>),MAX(<Field2>),..
Выполнение этого запроса засовываем в процу, которую "дергаем", например, по событию AfterOpen основного запроса. В этой же проце присваиваем значения соответствующим объектам отображения агрегатов..
Ну ведь абсолютно ничего сложного ! Ну разве если основной запрос не статический..



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

Форум: "Базы";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.03 c
14-1105248541
Чеширский_Кот
2005-01-09 08:29
2005.01.30
MacAfee - параноик!


14-1105540116
olookin
2005-01-12 17:28
2005.01.30
Ужасный день... Ничего не получается...


3-1103765055
Vader
2004-12-23 04:24
2005.01.30
ADO и dbExpress использование для локальных БД


1-1105771497
Unknown
2005-01-15 09:44
2005.01.30
Имя организации


14-1105455343
syte_ser78
2005-01-11 17:55
2005.01.30
библиотека не зарегестрирована





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский