![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DBGrid [D5, XP]
mr1Andersen © (2006-06-07 19:54:00)Так как это форум для начинающих программистов, я позволю себе спросить, как в таблице DBGrid1 суммировать конкретный столбик чисел?
Очень рад буду примеру программного кода.
Спасибо.
Amoeba (2006-06-08 11:57:00) [1]
> ЮЮ © (08.06.06 11:43) [10]
> >DBGridEh из EhLib умеет это делать сам
>
> точно так же просканировав весь набор данных :)
Естественно, таким способом, но при этом не надо всякий раз писать самому код.
ЮЮ (2006-06-08 11:43:00) [2]>DBGridEh из EhLib умеет это делать сам
точно так же просканировав весь набор данных :)
Amoeba (2006-06-08 11:40:00) [3]DBGridEh из EhLib умеет это делать сам выводя резутьтат в специальной строке у нижнего края сетки.
Скачать EhLib 3.6 можно здесь
http://www.ehlib.com/RUS/ehlibrus.exe
Пароль: ФЕВРАЛЬФЕВРАЛЬ
Desdechado (2006-06-07 22:05:00) [4]если тебе не нравится мерцание грида, вспомни про disablecontrols;
mr1Andersen (2006-06-07 22:02:00) [5]Всем спасибо, проблема решена.
Просто надо на форму поместить Button1 и Label1; затем присвоить Button1 такой программный код:
procedure TForm1.Button1Click(Sender: TObject);
var
m:integer;
begin
m:=0;
table1.First;
while not table1.Eof do
begin
m:=m+(table1.Fields[3].AsInteger); {потому что 3-й столбик
надо суммировать}
table1.Next;
end;
label1.Caption:=IntToStr(m);
end;
Вот и все.
Virgo_Style (2006-06-07 21:34:00) [6]mr1Andersen (07.06.06 21:15) [3]
2-затем (Object Inspector / Properties / SQL)
записать: Append('SELECT Sum(Baza.Cena) AS Itogo FROM Baza');
Т-т-ты Append в свойстве SQL пишешь???
Desdechado (2006-06-07 21:28:00) [7]в [1] - это в коде, а не в инспекторе
если хчешь пользовать SQL, то его надо учить, а не копировать бездумно
Desdechado (2006-06-07 21:22:00) [8]можно пройтись по датасету и просуммировать вручную
x:=0;
with(qry) do begin
disablecontrols;
first;
while(not eof) do begin
x:=x+Fileds[0].AsFloat;
next;
end;
end;
некоторые датасеты умеют сами суммировать
mr1Andersen (2006-06-07 21:15:00) [9]На сколько я понял, надо на форму вставить компонент (TQuery);
1-затем в (Object Inspector / Properties / Active) поставить false;
2-затем (Object Inspector / Properties / SQL)
записать: Append('SELECT Sum(Baza.Cena) AS Itogo FROM Baza');
3-потом (Object Inspector / Properties / Active) поставить True. Оно мне выдает ошибку:
Invalid use of keyword.
Token: Append(‘SELECT
Line Number: 1
Я предполагаю что это могло бы бить через то что я не подключил (Object Inspector / Properties / DatabaseName), но я в перечне ни нашел своих таблиц.
Может еще что надо?
Iehbr (2006-06-07 20:15:00) [10]Sorry
..SELECT Sum(Baza.Cena) AS Itogo FROM Baza');
...
Ну и наконец
ShowMessage('ИТОГО = '+TQuery.FieldByName['Itogo'].AsString);
Iehbr (2006-06-07 20:12:00) [11]DBGrid тут ни причем, он предназначен в основномдля отображения данных.
Суммировать можно например используя запрос в TQuery
TQuery.Active := False;
TQuery.SQL.Clear;
TQuery.SQL.Append('SELECT Sum(Baza.Cena) FROM Baza');
TQuery.Active := True;