Вниз
Скачать: CL | DM;

Вопрос по EhLib   Найти похожие ветки 

 
Dimonka   (2002-03-19 12:40) [0]

Можно в компоненте DBgridEh для footers присвоить свое выражение?
Если можно,то как? В моем случае нужно взять сумму столбца и умножить ее на коэффициент взятый из другой таблицы.


 
J   (2002-03-19 13:47) [1]

Конечно можно. Но в описанном тобой случае есть ньюансы. Если тебе сумму по столбцу выводить не надо, то немного сложней, придется эту сумму считать отдельно (скажем, через Query). Если же сумма не помешает, то твое значение можно вывести во второй строчке (Footers[1]). В любом случае это делается следующим образом. Для соответствующего столбца делаешь настройки

DBGridEh1.Columns[i].Footers[j].ValueType := fvtStaticText.
DBGridEh1.Columns[i].Footers[j].FieldName := "". (пусто)

Затем в соответствующий обработчик (например, DataCourceDataChange) формируем

DBGridEh1.Columns[i].Footers[j].value := FloatToStrF(Suma * Kf,ffNumeric,2)

Коэффициент - знаешь где брать. А вот сумма - как я писал выше:
1. Вычисляешь через Query.
2. Если ты все-таки выводишь ёё в Footers[0], то

Suma := DBGridEh1.Columns[i].Footers[0].value;

3. А можно пойти на хитрость. Добавь в Grid еще раз поле, по которому проводишь суммирование. Но для него сделай Visible := False. Для него настройки Footers сделай следующие:

DBGridEh1.Columns[ii].Footers[0].ValueType := fvtSum.
DBGridEh1.Columns[ii].Footers[0].FieldName := "поле_суммирования".

И тогда

Suma := DBGridEh1.Columns[ii].Footers[0].value;






Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.013 c
1-32756
Евгений-Зеленоград
2002-03-29 21:44
2002.04.11
Математические действия с датой (TdateTime)


6-32917
eblade
2002-01-25 18:56
2002.04.11
Как отправить через TClientSocket несколько запросов подряд?


1-32739
LazorenkoX
2002-03-30 00:09
2002.04.11
Движок БД (file of XXX)


1-32731
rog
2002-03-30 09:06
2002.04.11
Событие OnkeyDown


1-32791
x000d
2002-03-31 04:31
2002.04.11
!!! HELP !!! СРОЧНО ... Вопрос жизни и смерти... =)




   Наверх