![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
сумма в dbgrideh.footers [D7]
alienka © (2003-12-10 09:24:00)
Сумма видна только в процессе разработки :(
Если писать кодом во всяких событиях - не помогает. Пробовала и в dbgrid-вских событиях и в формовых.
Что делать, где копать дальше?
alienka (2003-12-10 18:01:00) [1]
Спасибо! Получила значение при помощи dbgrid.columns[i].footers[i].Value;
А в дизайне футеры почему-то не создаются, но я попытаюсь, вспоминая как не получалось и с ран-таймом поначалу...
TohaNik (2003-12-10 17:36:00) [2]
Можно.
DBGridEh1.SumList.SumCollection[i].SumValue;
PS: Хорошо что получилось, но в ран-тайме это делать наверное не стоит. Динамически футеры можно созданать например для промежуточных итогов, а для твоей задачи достатоно всего три ввойства выставить в дизайне-
FooterRowCount = 1 грид изменится немного
SumList->Active = true
и на колумне нужном Footer->ValueType = fvtSum и все.
Если не заработает то ?????
Johnmen (2003-12-10 17:31:00) [3]
Можно.
alienka (2003-12-10 17:22:00) [4]
Все таки руки-крюки у меня. По новой все набрала - заработало.
А с полученным результатом в footer оперировать как-нибудь можно?
Johnmen (2003-12-10 17:12:00) [5]
>alienka
Попробовал... Даже без [23] все работает...:)
Johnmen (2003-12-10 17:02:00) [6]
>alienka (10.12.03 16:46)
+
DBGridEh1.SumList.RecalcAll;
alienka (2003-12-10 16:46:00) [7]
to Johnmen: исправила на эту строчку - сумма пропала...
Johnmen (2003-12-10 16:31:00) [8]
>alienka (10.12.03 16:08)
Так разве не проще ?
DBGridEh3.Columns[0].Footer.ValueType:=fvtSum;
alienka (2003-12-10 16:08:00) [9]
Ура! :)
Сумма получилась. Вот код:
(Все создавалось ран-тайм)
with dbgrideh3 do begin
columns[0].Footers.add;
columns[0].Footers[0].Collection.add;
procedure TForm1.DBGridEh3GetFooterParams(Sender: TObject; DataCol,
Row: Integer; Column: TColumnEh; AFont: TFont; var Background: TColor;
var Alignment: TAlignment; State: TGridDrawState; var Text: String);
begin
dbgrideh3.columns[0].footers[0].ValueType:=fvtSum;
end;
Значит это у меня ручки корявые, раз с первого раза не смогла вашим советам внять :)
Johnmen (2003-12-10 11:02:00) [10]
>alienka
Бросай. Я до понедельника совершенно свободен...:)
Bless (2003-12-10 10:56:00) [11]
>Если хотите, сделаю тестовый проект и кому-нибудь по почте брошу.
Давай. Только сожми, плз. bless@zeos.net
alienka (2003-12-10 10:50:00) [12]
Нет, ну я конечно понимаю принцип: если делаю в дизайне, то в ран-тайм ничего не пишу. И наоборот. Просто, повторюсь, оба способа одинаково неудачно проходят - поля в режиме выполнения пустые. Если хотите, сделаю тестовый проект и кому-нибудь по почте брошу.
Bless (2003-12-10 10:48:00) [13]
>первые 3 строки не нужны
Угу. И если в footers что-то уже есть - удали.
Johnmen (2003-12-10 10:35:00) [14]
первые 3 строки не нужны
и почему бы в дизайне не прописать необходимое ?
alienka (2003-12-10 10:24:00) [15]
Все это я уже испробовала раньше. Еще раз попыталась, дословно:
dbgrideh2.FooterRowCount:=1;
dbgrideh2.Columns[0].Footers.add;
dbGridEh2.Columns[0].Footers[0].Collection.Add;
dbgrideh2.SumList.Active:=true;
dbgrideh2.columns[0].Footer.valueType:=fvtSum;
результат тот же :(
TohaNik (2003-12-10 10:08:00) [16]
Если не выставлен то в дизайне FooterRowCount = 1 (если 1 футер нужен).
Ну а программно GridEh.Columns[].Footers[].Collection.Add ну это
для специфических случаев:)
Bless (2003-12-10 09:54:00) [17]
>и column[i].valueType:=fvtSum
sorry
column[i].Footer.valueType:=fvtSum
Bless (2003-12-10 09:52:00) [18]
Если у тебя один футер, то попробуй так:
удалить все из column[i].footerS
и column[i].valueType:=fvtSum
Johnmen (2003-12-10 09:48:00) [19]
DBGridEh2.Columns[x].Footer.ValueType:=...
alienka (2003-12-10 09:46:00) [20]
Пробовала делать и в дизайне, и динамически - поочередно. Результат одинаковый - пусто.
6 футеров - опечатка :)