Сумма в DBGridEH
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
-
- Сообщения: 340
- Зарегистрирован: 22 ноя 2004, 19:15
- Откуда: Минск
- Контактная информация:
Есть таблица нужно вывести
Сумму четных и нечетных и общую сумму внизу таблицы
В зависимости от значения поля
Сумму четных и нечетных и общую сумму внизу таблицы
В зависимости от значения поля
- Вложения
-
- table.JPG (23.82 КБ) 961 просмотр
Просто набрать исходники может и любая обезьяна, а придумать и отладить не каждый человек.
-
- Сообщения: 230
- Зарегистрирован: 31 авг 2006, 13:11
Единственное что приходит на ум это проход по всей таблице и считывание по одной записи с последующей проверкой на четность ну и накапливание четных в одной пременной а нечетных в другой.
-
- Сообщения: 340
- Зарегистрирован: 22 ноя 2004, 19:15
- Откуда: Минск
- Контактная информация:
Вот я сейчас и думаю над этим
Но заметно просто как он бегает по таблице
А вот тсандратный сумматорв в dbgrideh рабоатет все четко
Но заметно просто как он бегает по таблице
А вот тсандратный сумматорв в dbgrideh рабоатет все четко
Просто набрать исходники может и любая обезьяна, а придумать и отладить не каждый человек.
-
- Сообщения: 230
- Зарегистрирован: 31 авг 2006, 13:11
чтобы небыло заметно можно предватительно таблицу загнать в запрос или другую Table
- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
Лелик, а что мешает воспользоваться стандартными сумлистами?

-
- Сообщения: 340
- Зарегистрирован: 22 ноя 2004, 19:15
- Откуда: Минск
- Контактная информация:
Я что то тыклася но толком ничего не понял
А примеров не нашел
А примеров не нашел
Просто набрать исходники может и любая обезьяна, а придумать и отладить не каждый человек.
- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
Лелик, там не сложно:
свойство грида FooterRowCount выставляешь нужное кол-во строк итогов, 3 в твоём случае
далее создаёшь колонку в Columns.
Там лезешь в Footers, и создаёшь там 3 строки.
Теперь чтобы отобразить кол-во чётных/нечётных... Ну к примеру создаём в запросе пару полей (even, odd), в которых будет 1 для чётного и нечётного соответственно (можно сделать калькулируемое поле в дельфях). Ну и вешаем наши Футеры на кажде из полей. Не забыть выставить у футера ValueType = fvtCount
вроде ничего не забыл
свойство грида FooterRowCount выставляешь нужное кол-во строк итогов, 3 в твоём случае
далее создаёшь колонку в Columns.
Там лезешь в Footers, и создаёшь там 3 строки.
Теперь чтобы отобразить кол-во чётных/нечётных... Ну к примеру создаём в запросе пару полей (even, odd), в которых будет 1 для чётного и нечётного соответственно (можно сделать калькулируемое поле в дельфях). Ну и вешаем наши Футеры на кажде из полей. Не забыть выставить у футера ValueType = fvtCount
вроде ничего не забыл


-
- Сообщения: 340
- Зарегистрирован: 22 ноя 2004, 19:15
- Откуда: Минск
- Контактная информация:
Ну к примеру создаём в запросе пару полей (even, odd), в которых будет 1 для чётного и нечётного соответственно (можно сделать калькулируемое поле в дельфях). Ну и вешаем наши Футеры на кажде из полей. Не забыть выставить у футера ValueType = fvtCount
Вот на этом подробнее
Уменя запрос возаращает 1 колнку номер + N колонок для которых надо вывести сумму мне для каждой надо "Ну к примеру создаём в запросе пару полей (even, odd)"
Вот на этом подробнее
Уменя запрос возаращает 1 колнку номер + N колонок для которых надо вывести сумму мне для каждой надо "Ну к примеру создаём в запросе пару полей (even, odd)"
Просто набрать исходники может и любая обезьяна, а придумать и отладить не каждый человек.
- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
Так, стоп. Не внимательно просмотрел условие 
Тебе надо посчитать по колонке сумму, а так же суммы при чётных и нечётных значениях номера.
Значиццо так... Забил табличку в акцессе указанного вида.
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
и так далее - если непонятно могу форму кинуть

Тебе надо посчитать по колонке сумму, а так же суммы при чётных и нечётных значениях номера.
Значиццо так... Забил табличку в акцессе указанного вида.
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
и так далее - если непонятно могу форму кинуть


-
- Сообщения: 340
- Зарегистрирован: 22 ноя 2004, 19:15
- Откуда: Минск
- Контактная информация:
Дело в том что колонок не 2 это я для примера привелИгорь Акопян писал(а):Так, стоп. Не внимательно просмотрел условие
Тебе надо посчитать по колонке сумму, а так же суммы при чётных и нечётных значениях номера.
Значиццо так... Забил табличку в акцессе указанного вида.
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
и так далее - если непонятно могу форму кинуть![]()

И во творых если пользователь будет редактировать значения сумма же меняться не будет

Просто набрать исходники может и любая обезьяна, а придумать и отладить не каждый человек.