Dbgrideh footer вывести сумму
Сумма видна только в процессе разработки 🙁
Если писать кодом во всяких событиях — не помогает. Пробовала и в dbgrid-вских событиях и в формовых.
Что делать, где копать дальше?
← →
Johnmen ( 2003-12-10 09:26 ) [1]
Active у SumList = True ?
← →
alienka ( 2003-12-10 09:28 ) [2]
← →
Johnmen ( 2003-12-10 09:29 ) [3]
Да, кстати, надо не в футерсах прописывать, а в свойстве футер для колонки.
← →
Bless ( 2003-12-10 09:30 ) [4]
Кодом писать не надо.
Надо, кажется, поставить свойство(published) DBGridEh.sumlist.active:=true
DBGridEh2.SumList.Active:=true;
DBGridEh2.Columns[0].Footers.add;
DBGridEh2.Columns[0].Footers[5].ValueType:=fvtSum;
← →
alienka ( 2003-12-10 09:35 ) [6]
Свойство тоже пробовала ставить, отображается ровно до запуска программы. После — пусто.
← →
Johnmen ( 2003-12-10 09:42 ) [7]
Я что-то не уловил, в дизайне прописываем или динамичкески создаем ?
← →
Bless ( 2003-12-10 09:43 ) [8]
У тебя 6 футеров, или это опечатка?
← →
alienka ( 2003-12-10 09:46 ) [9]
Пробовала делать и в дизайне, и динамически — поочередно. Результат одинаковый — пусто.
6 футеров — опечатка 🙂
← →
Bless ( 2003-12-10 09:52 ) [11]
Если у тебя один футер, то попробуй так:
удалить все из column[i].footerS
и column[i].valueType:=fvtSum
← →
Bless ( 2003-12-10 09:54 ) [12]
← →
TohaNik ( 2003-12-10 10:08 ) [13]
Если не выставлен то в дизайне FooterRowCount = 1 (если 1 футер нужен).
Ну а программно GridEh.Columns[].Footers[].Collection.Add ну это
для специфических случаев:)
← →
alienka ( 2003-12-10 10:24 ) [14]
Все это я уже испробовала раньше. Еще раз попыталась, дословно:
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;
результат тот же 🙁
первые 3 строки не нужны
и почему бы в дизайне не прописать необходимое ?
← →
Bless ( 2003-12-10 10:48 ) [16]
>первые 3 строки не нужны
Угу. И если в footers что-то уже есть — удали.
← →
alienka ( 2003-12-10 10:50 ) [17]
Нет, ну я конечно понимаю принцип: если делаю в дизайне, то в ран-тайм ничего не пишу. И наоборот. Просто, повторюсь, оба способа одинаково неудачно проходят — поля в режиме выполнения пустые. Если хотите, сделаю тестовый проект и кому-нибудь по почте брошу.
← →
Bless ( 2003-12-10 10:56 ) [18]
>Если хотите, сделаю тестовый проект и кому-нибудь по почте брошу.
Давай. Только сожми, плз. bless@zeos.net
← →
Johnmen ( 2003-12-10 11:02 ) [19]
Бросай. Я до понедельника совершенно свободен. )
← →
alienka ( 2003-12-10 16:08 ) [20]
Ура! 🙂
Сумма получилась. Вот код:
(Все создавалось ран-тайм)
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 16:31 ) [21]
>alienka (10.12.03 16:08)
Так разве не проще ?
DBGridEh3.Columns[0].Footer.ValueType:=fvtSum;
← →
alienka ( 2003-12-10 16:46 ) [22]
to Johnmen: исправила на эту строчку — сумма пропала.
← →
Johnmen ( 2003-12-10 17:02 ) [23]
>alienka (10.12.03 16:46)
← →
Johnmen ( 2003-12-10 17:12 ) [24]
Попробовал. Даже без [23] все работает. )
← →
alienka ( 2003-12-10 17:22 ) [25]
Все таки руки-крюки у меня. По новой все набрала — заработало.
А с полученным результатом в footer оперировать как-нибудь можно?
← →
Johnmen ( 2003-12-10 17:31 ) [26]
← →
TohaNik ( 2003-12-10 17:36 ) [27]
PS: Хорошо что получилось, но в ран-тайме это делать наверное не стоит. Динамически футеры можно созданать например для промежуточных итогов, а для твоей задачи достатоно всего три ввойства выставить в дизайне-
FooterRowCount = 1 грид изменится немного
SumList->Active = true
и на колумне нужном Footer->ValueType = fvtSum и все.
Если не заработает то .
← →
alienka ( 2003-12-10 18:01 ) [28]
Источник
Dbgrideh footer вывести сумму
Здраствуйте!
Не подскажите как пользовать Footer у DBGridEh, как мне вывести сумму в конце определенной колонки??
← →
Sergey13 ( 2003-08-29 10:44 ) [1]
А ты сам пробовал что нибудь сделать? Если просто читать названия пропертей в инспекторе объектов, то многое можно понять и самому.
← →
Relaxxx ( 2003-08-29 10:55 ) [2]
Все уже впрнципе сделал то что хотел, у меня как всегда сначала задаю вопрос а потом сам дохожу 🙂
← →
Sergey13 ( 2003-08-29 10:59 ) [3]
Менять привычки пора. Ты уже большой мальчик. 8-(
← →
Roman_Tutov ( 2003-08-29 15:00 ) [4]
А может кто подскажет как принудительно пересчитать footer ?
несколько дней уже бьюсь
Принудительный пересчет :
DBGridEh1.SumList.RecalcAll;
DBGridEh1.SumList.SumCollection[0].SumValue; (или [1],[2] по порядку следование столбцов)
← →
GRAND ( 2003-08-29 15:49 ) [6]
2Relaxxx:
Установи проперти:
SumList.Active:=True;
FooterRowCount:=1
Далее каждой коламне задавай свой футер.
← →
mike-d ( 2003-08-30 17:07 ) [7]
Источник
Dbgrideh footer вывести сумму
Нужно отображать DBEditEh сумму в столбце DBGridEh. Как мне это сделать?
← →
VAleksey ( 2002-06-13 15:11 ) [1]
сделай колонку и для нее укажи по какому полю считать сумму и формат футера.
← →
PTE ( 2002-06-13 16:20 ) [2]
А как это сделать? подскажите пожалуйста. Я новичок, пытался найти по этому поводу инфу в инете ничего не нашел, что помогло бы мне разобраться
← →
koks ( 2002-06-13 17:32 ) [3]
1. DBGridEh.FooterRowCount = 1;
2. DBGridEh.SumList.Active := true;
Если не использушь колонки TColumnsEh, то по-моему, этого достаточно.
А если используешь колонки, то дополнительно для той колонки, для которой нужно считать сумму устанавливаешь:
DBGridEh.Columns[i].Footer.FieldName := » »
DBGridEh/Columns[i].Footer.ValueType := fvtSum
← →
PTE ( 2002-06-13 18:21 ) [4]
Колонки я не использую, но только этого
1. DBGridEh.FooterRowCount = 1;
2. DBGridEh.SumList.Active := true;
оказалось не достаточно. Правильно ли я написал?
procedure TForm1.TabSheet3Show(Sender: TObject);
begin
DBGridEh1.Columns[3].Footer.FieldName := «summa»;
DBGridEh1.Columns[3].Footer.ValueType := fvtSum ;
end; Почему сумма отображается только тогда, когда я забиваю новые значения, а по тем что уже были забиты в базу сумма не подсчитывается, что можно сделать?
а статично нельзя ?
← →
koks ( 2002-06-14 09:49 ) [6]
1. Сделай колонки
2. Все свойства, которые я тебе перечислил устанавливаются в РЕДАКТОРЕ СВОЙСТВ, а не в рантайме.
← →
Sergey13 ( 2002-06-14 11:27 ) [7]
2koks © (14.06.02 09:49)
DBGridEh.SumList.Active := true; Как раз лучше делать в рантайме. У меня была фишка, когда при установке этого в дизайне отваливались процедуры от событий. Да-да не смейся. Типа была процедура на AfterScroll а потом ее, привязки, нет. Хотя проца, ессно, не стиралась. Это было на 1.56 кажется. Я списывался с автором, и он подтвердил что лучше это делать в рантайме. Хотя сейчас это может быть уже побороли, но я по привычке делаю по старому.
← →
AuduA6 ( 2002-06-14 12:53 ) [8]
Источник