Сумма в DBGridEH

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Лелик_1044
Сообщения: 339
Зарегистрирован: 22 ноя 2004, 19:15
Откуда: Минск
Контактная информация:

14 мар 2007, 15:42

Есть таблица нужно вывести
Сумму четных и нечетных и общую сумму внизу таблицы
В зависимости от значения поля
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Просто набрать исходники может и любая обезьяна, а придумать и отладить не каждый человек.
namomelkor
Сообщения: 227
Зарегистрирован: 31 авг 2006, 13:11

14 мар 2007, 18:51

Единственное что приходит на ум это проход по всей таблице и считывание по одной записи с последующей проверкой на четность ну и накапливание четных в одной пременной а нечетных в другой.
Лелик_1044
Сообщения: 339
Зарегистрирован: 22 ноя 2004, 19:15
Откуда: Минск
Контактная информация:

14 мар 2007, 19:06

Вот я сейчас и думаю над этим
Но заметно просто как он бегает по таблице
А вот тсандратный сумматорв в dbgrideh рабоатет все четко
Просто набрать исходники может и любая обезьяна, а придумать и отладить не каждый человек.
namomelkor
Сообщения: 227
Зарегистрирован: 31 авг 2006, 13:11

14 мар 2007, 20:03

чтобы небыло заметно можно предватительно таблицу загнать в запрос или другую Table
Аватара пользователя
Игорь Акопян
Сообщения: 1419
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

15 мар 2007, 02:09

Лелик, а что мешает воспользоваться стандартными сумлистами?
Изображение
Лелик_1044
Сообщения: 339
Зарегистрирован: 22 ноя 2004, 19:15
Откуда: Минск
Контактная информация:

15 мар 2007, 13:06

Я что то тыклася но толком ничего не понял
А примеров не нашел
Просто набрать исходники может и любая обезьяна, а придумать и отладить не каждый человек.
Аватара пользователя
Игорь Акопян
Сообщения: 1419
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

16 мар 2007, 10:53

Лелик, там не сложно:
свойство грида FooterRowCount выставляешь нужное кол-во строк итогов, 3 в твоём случае
далее создаёшь колонку в Columns.
Там лезешь в Footers, и создаёшь там 3 строки.
Теперь чтобы отобразить кол-во чётных/нечётных... Ну к примеру создаём в запросе пару полей (even, odd), в которых будет 1 для чётного и нечётного соответственно (можно сделать калькулируемое поле в дельфях). Ну и вешаем наши Футеры на кажде из полей. Не забыть выставить у футера ValueType = fvtCount

вроде ничего не забыл :)
Изображение
Лелик_1044
Сообщения: 339
Зарегистрирован: 22 ноя 2004, 19:15
Откуда: Минск
Контактная информация:

16 мар 2007, 12:03

Ну к примеру создаём в запросе пару полей (even, odd), в которых будет 1 для чётного и нечётного соответственно (можно сделать калькулируемое поле в дельфях). Ну и вешаем наши Футеры на кажде из полей. Не забыть выставить у футера ValueType = fvtCount

Вот на этом подробнее
Уменя запрос возаращает 1 колнку номер + N колонок для которых надо вывести сумму мне для каждой надо "Ну к примеру создаём в запросе пару полей (even, odd)"
Просто набрать исходники может и любая обезьяна, а придумать и отладить не каждый человек.
Аватара пользователя
Игорь Акопян
Сообщения: 1419
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

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

и так далее - если непонятно могу форму кинуть :)
Изображение
Лелик_1044
Сообщения: 339
Зарегистрирован: 22 ноя 2004, 19:15
Откуда: Минск
Контактная информация:

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 это я для примера привел :( их больше
И во творых если пользователь будет редактировать значения сумма же меняться не будет :(
Просто набрать исходники может и любая обезьяна, а придумать и отладить не каждый человек.
Ответить