![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DbGrid [D5]
Catche © (2003-05-13 08:22:00)У меня есть dbGrid с численными данными, включено MultiSelected, как сделать подсчет суммы при выделении более одной строчки в таблице при момощи клавы, либо мышки, и результат кинуть в СтатусБар (По аналогии MS Excel)?
ЮЮ (2003-05-13 09:15:00) [1]>VAleksey © (13.05.03 09:10)
>В момент, когда тебе нужно посчитать сумму делаешь следующее:
А посколько этот момент не определён однозначно, то прицепить надо на onMouseXXX, onKeyXXX, т.е. при любом двищении по гриду бегать по DataSetу
VAleksey (2003-05-13 09:10:00) [2]В момент, когда тебе нужно посчитать сумму делаешь следующее:
1) Отключаешь визуальные контролы (DataSet.DisableControls)
2) Запоминаешь текущее местоположение (DataSet.GetBookmark)
3) Проходишь по выделенным записям грида считая сумму. (см. пример в хелпе. Св-во SelectedRows.)
4) Возвращаешся на закладку полученную в пункте 2 (DataSet.GotoBookmark(...))
5) Включаешь визуальные контролы.(DataSet.EnableControls)
ЮЮ (2003-05-13 09:02:00) [3]Если по аналогии с MS Excel, то надо использовать не DBGrid, а StringGrid или DrawGrid + обект в памяти, т.к. DBGrid имеет понятие лишь о видимой части датасета да и не информирует о выделении/снятии выделения. Тут нужен более крутой DBGrid, т.к. эту функциональность лучше заложить во-внутрь, а не пытаться отловить снаружи.