Сумма в DBGridEH

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Сумма в DBGridEH

What hosting to choose?

GeorgeSoca » 18 окт 2015, 01:12

On our web, you can feel safe! Besides we use mirrored hard drives on all of our servers so we also take backup twice a day on separate servers. We use ISPmanager as the control panel. ISPmanager is a control panel that makes it easy to administer its Web site. With us you can place as many websites and domains you wish for a hosting account.
virtual hosting

Re: Сумма в DBGridEH

Игорь Акопян » 27 мар 2007, 10:55

чем не понравились мои рекомендации?
Решений как минимум 3:
1) Создаём к каждому полю поле - флаг чётности, сумлист по каждому. При большом количестве полей довольно муторное занятие, но результат налицо. Минусы - полей станет в 2 раза больше.
2) Сумлист статический - суммирование придётся выполнять отдельным запросом при каждом изменении в таблице.
3) Твой способ, сделать Union и не использовать сумлист.
Само всё равно ничего делаться не будет ;)

Re: Сумма в DBGridEH

Лелик_1044 » 23 мар 2007, 14:15

Нет
Можно ли как-нибудьпри открыти чтоб сразу же суммирование шло сделать
А не после открытия бегать по таблице и суммировать

Re: Сумма в DBGridEH

Игорь Акопян » 23 мар 2007, 12:37

Лелик, это что, означает "см. первый пост"?

Re: Сумма в DBGridEH

Лелик_1044 » 22 мар 2007, 13:11

Сделал так в query.beforeopen
Очищаю footers (т.е присваиваю 0)

Потом в afteropen пробегаю по все таблице и суммирю
Но уже в таблице примерно в 50 строк видно как он бегает да и долго это
Как-то стандартный sum в гриде работает быстрее

Re: Сумма в DBGridEH

Игорь Акопян » 20 мар 2007, 12:16

в принципе да, но SumList отображается интереснее - он средствами грида выравнивается вниз и не прокручивается (вроде :) )

Re: Сумма в DBGridEH

Лелик_1044 » 19 мар 2007, 22:05

А реально ли запросом сделать чтоб выводилось все что мне нужно+
через юнион шло суммрование (добовлялось 3 тсрочки вниз)?

Re: Сумма в DBGridEH

Игорь Акопян » 19 мар 2007, 18:06

после записи в базу - всё считается автоматом. На сколько много полей? совсем не реально создать запрос с выборкой чётных значений номера?
либо другой вариант... сделать у сумлистов fvtStaticText, и по-любому поводу выполнять SQL-запрос группирующий таблицу с суммами по всем полям, и потом вручную назначить в поле Value полученные значения

Re: Сумма в DBGridEH

Лелик_1044 » 19 мар 2007, 17:15

Игорь Акопян писал(а):Так, стоп. Не внимательно просмотрел условие :)
Тебе надо посчитать по колонке сумму, а так же суммы при чётных и нечётных значениях номера.
Значиццо так... Забил табличку в акцессе указанного вида.
ADOQuery.SQL.Text :=
[syntax='sql']
SELECT
T1.Nomer,
T1.F1,
IIf([Nomer] Mod 2=0,[F1],0) AS chet_f1,
(f1-chet_f1) as nc_f1,
T1.F2,
IIf([Nomer] Mod 2=0,[F2],0) AS chet_f2,
(f2-chet_f2) as nc_f2
FROM T1;
[/syntax]
DBGridEh1.FooterRowCount := 3;
DBGridEh1.SumList.Active := true;
далее на гриде создаём три колонки на поля Nomer, F1, F2.
во второй колонке открываем Footers и создаём 3 штуки:
первый FieldName := chet_f1, ValueType := fvtSum
второй FieldName := nc_f1, ValueType := fvtSum
третий FieldName := f1, ValueType := fvtSum

и так далее - если непонятно могу форму кинуть :)
Дело в том что колонок не 2 это я для примера привел :( их больше
И во творых если пользователь будет редактировать значения сумма же меняться не будет :(

Re: Сумма в DBGridEH

Игорь Акопян » 19 мар 2007, 13:36

Так, стоп. Не внимательно просмотрел условие :)
Тебе надо посчитать по колонке сумму, а так же суммы при чётных и нечётных значениях номера.
Значиццо так... Забил табличку в акцессе указанного вида.
ADOQuery.SQL.Text :=
[syntax='sql']
SELECT
T1.Nomer,
T1.F1,
IIf([Nomer] Mod 2=0,[F1],0) AS chet_f1,
(f1-chet_f1) as nc_f1,
T1.F2,
IIf([Nomer] Mod 2=0,[F2],0) AS chet_f2,
(f2-chet_f2) as nc_f2
FROM T1;
[/syntax]
DBGridEh1.FooterRowCount := 3;
DBGridEh1.SumList.Active := true;
далее на гриде создаём три колонки на поля Nomer, F1, F2.
во второй колонке открываем Footers и создаём 3 штуки:
первый FieldName := chet_f1, ValueType := fvtSum
второй FieldName := nc_f1, ValueType := fvtSum
третий FieldName := f1, ValueType := fvtSum

и так далее - если непонятно могу форму кинуть :)

Вернуться к началу