Текущий архив: 2003.03.17;
Скачать: CL | DM;
Вниз
DbGridEh - Selected ... Найти похожие ветки
← →
BorisUK © (2003-02-24 14:20) [0]Как в этой библиотеке, а точнее в Grid работать с выделенными записями...
Имеется ввиду, что можно натыкать несколько записей в разнобой (при включенном мультиселект) и затем, например сложить суммы...
Спрашиваю потому, что видел компоненты (грид какойто не помню где... может даже и в Си), имеющие хорошее свойство OnSelectedCountChange и свойство Nodes[i].Items[i], где nodes коллекция ссылок ТОЛЬКО выделенных записей а Items - набор полей .
Получается что очень просто делается цикл ТОЛЬКО по выделенным записям и ТОЛЬКО по событию OnSelectedCountChange !!!
Тоесть ничего лишнего.
Сейчас могу только сделать цикл по всем записям DataSet и в цикле смотреть выделена или нет и складывать сумму и вешать это все на OnClick что как вы сами уже поняли глубоко будет тормозить... Особенно на худых тачках и с маломальски большим набором записе.
Может я туплю - есть путь а я не вижу... Поскажите как реализовать ЭТО правильно ИМЕННО на DbGridEh...?????
Заранее спасибо за участие....
← →
BorisUK © (2003-02-24 15:50) [1]если про DBGridEh конкретно никто не знает...
Скажите про обычный DBGrid... я покопал его там - аналогично.
ЛЮДИИИ!!! Есть ли конкретно правильный путь такое сделать или только такой изврат как я уже описал????
← →
artur11 (2003-02-24 18:55) [2]Пожалуйста!!!Срочно!!!
Если можешь вышли мне код который ты повесил на ONClick для того,чтобы определить какие ячейки выделены!!!
Мне это срочно нужно для того чтобы из одного DBgrida в другой скопировать несколько ячеек.
Очень буду Благодарен!!!!
← →
Nic_B (2003-02-24 19:46) [3]2 artur11 - определить какие ячейки выделены можно так:
if wwDBGrid1.IsSelectedRecord =True then begin
и т.д.
end;
← →
Nic_B (2003-02-24 19:50) [4]2 BorisUK - я в таких случаях делал так (возможно это тупо):
В таблицу добавлял логическое поле (например Flag) при выделении записи заносил туда True а потом простым запросом
select * from mybase where flag=true
выбирал выделенные записи и все проблемы
← →
Романов Р.В. © (2003-02-24 19:58) [5]BorisUK
Если пользуешься стандартным выделением то перемещение можно ускорить если переходить от по закладкам property SelectedRows: TBookmarkList;
Другой вариант создать свой список выделенных записей, в который кроме ссылки на запись помещать значения полей по которым нужно вычислять сумму, либо сразу пересчитывать сумму при добавлении/удалении записи из этого списка.
← →
Andrey V. (2003-02-24 21:31) [6]Для DBGridEh
Мультиселект должен стоять в тру
Смотри свойство SelectedRows.Count
Вот кусочек из моей проги
for i := 0 to onGrid.SelectedRows.Count-1 do begin
onGrid.DataSource.DataSet.Bookmark := onGrid.SelectedRows[i];
CopyObject.AddID(onGrid.DataSource.DataSet.FieldByName"KeyID").AsInteger);
end;
Но маленький прикол : если выделен ВЕСЬ грид ИМХО
SelectedRows.Count вернет ноль , а узнать выделен весь грид
или нет можно проверив Selection.SelectionType=gstAll
← →
BorisUK © (2003-02-25 06:44) [7]ОК
Спасибо всем и особенно
Andrey V. (24.02.03 21:31)
Страницы: 1 вся ветка
Текущий архив: 2003.03.17;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.014 c