Форум: "Начинающим";
Текущий архив: 2006.06.25;
Скачать: [xml.tar.bz2];
ВнизDBGrid Найти похожие ветки
← →
mr1Andersen (2006-06-07 19:54) [0]Так как это форум для начинающих программистов, я позволю себе спросить, как в таблице DBGrid1 суммировать конкретный столбик чисел?
Очень рад буду примеру программного кода.
Спасибо.
← →
Iehbr © (2006-06-07 20:12) [1]DBGrid тут ни причем, он предназначен в основном для отображения данных.
Суммировать можно например используя запрос в TQuery
TQuery.Active := False;
TQuery.SQL.Clear;
TQuery.SQL.Append("SELECT Sum(Baza.Cena) FROM Baza");
TQuery.Active := True;
← →
Iehbr © (2006-06-07 20:15) [2]Sorry
..SELECT Sum(Baza.Cena) AS Itogo FROM Baza");
...
Ну и наконец
ShowMessage("ИТОГО = "+TQuery.FieldByName["Itogo"].AsString);
← →
mr1Andersen (2006-06-07 21:15) [3]На сколько я понял, надо на форму вставить компонент (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), но я в перечне ни нашел своих таблиц.
Может еще что надо?
← →
Desdechado © (2006-06-07 21:22) [4]можно пройтись по датасету и просуммировать вручную
x:=0;
with(qry) do begin
disablecontrols;
first;
while(not eof) do begin
x:=x+Fileds[0].AsFloat;
next;
end;
end;
некоторые датасеты умеют сами суммировать
← →
Desdechado © (2006-06-07 21:28) [5]в [1] - это в коде, а не в инспекторе
если хчешь пользовать SQL, то его надо учить, а не копировать бездумно
← →
Virgo_Style © (2006-06-07 21:34) [6]mr1Andersen (07.06.06 21:15) [3]
2-затем (Object Inspector / Properties / SQL)
записать: Append("SELECT Sum(Baza.Cena) AS Itogo FROM Baza");
Т-т-ты Append в свойстве SQL пишешь???
← →
mr1Andersen (2006-06-07 22:02) [7]Всем спасибо, проблема решена.
Просто надо на форму поместить 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;
Вот и все.
← →
Desdechado © (2006-06-07 22:05) [8]если тебе не нравится мерцание грида, вспомни про disablecontrols;
← →
Amoeba © (2006-06-08 11:40) [9]DBGridEh из EhLib умеет это делать сам выводя резутьтат в специальной строке у нижнего края сетки.
Скачать EhLib 3.6 можно здесь
http://www.ehlib.com/RUS/ehlibrus.exe
Пароль: ФЕВРАЛЬФЕВРАЛЬ
← →
ЮЮ © (2006-06-08 11:43) [10]>DBGridEh из EhLib умеет это делать сам
точно так же просканировав весь набор данных :)
← →
Amoeba © (2006-06-08 11:57) [11]
> ЮЮ © (08.06.06 11:43) [10]
> >DBGridEh из EhLib умеет это делать сам
>
> точно так же просканировав весь набор данных :)
Естественно, таким способом, но при этом не надо всякий раз писать самому код.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.06.25;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.01 c