Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос по EhLib [D6, IB6.x]


Dimonka ©   (2002-03-19 12:40:00) 

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


J   (2002-03-19 13:47:00) [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;




Наверх

Титульная страница Поиск, карта сайта Написать письмо