Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.019 c
3-53897
Жук
2003-02-25 13:15
2003.03.17
Отбор записей


14-54298
ig
2003-02-27 21:21
2003.03.17
Ищу DbGrid, в стиле гридов 1С


14-54270
ZeroDivide
2003-02-28 09:18
2003.03.17
С последним днем зимы!


14-54183
Supreme 2
2003-03-01 01:56
2003.03.17
Нужна компанента, которая будет плавно менять картинку на другую.


6-54138
Rater2
2003-01-28 10:56
2003.03.17
Не проходит повторное скачивание с FTP