Вопросы стыковки визуальных компонент (DataControls, EhGrid, VirtualTreeView, DevExpress и т.п.) с данными из БД.
Модераторы: kdv, CyberMax
-
AnryGTR
- Сообщения: 116
- Зарегистрирован: 15 янв 2007, 15:58
Сообщение
AnryGTR » 29 янв 2007, 18:42
Есть DBGridEh. В нём создаю искуственную колонку с чекбоксами. Но они почему-то не нажимаются
т.е. состояние не меняется у этих чексов, они какбы недоступны, хотя сетка не ReadOnly...

Мне хотелось бы узнать, может кто справлялся с этой задачкой:
мне нужно, чтоб я отметил сколько угодно строк по этой колонке, а потом допустим, по нажатию
батона - в массив передались бы ID тех записей, которые были отмечены по этой искуственной
колонке...
Заранее Благодарен всем кто откликнется!
-
WildSery
- Заслуженный разработчик
- Сообщения: 1738
- Зарегистрирован: 05 июн 2006, 16:19
Сообщение
WildSery » 29 янв 2007, 19:32
Что такое "искусственная колонка с чекбоксами"?
-
AnryGTR
- Сообщения: 116
- Зарегистрирован: 15 янв 2007, 15:58
Сообщение
AnryGTR » 30 янв 2007, 06:14
Эта колонка которая добавляется с помощью Add в design-time, не указывает на какое-то конкретное поле...
-
CyberMax
- Заслуженный разработчик
- Сообщения: 638
- Зарегистрирован: 31 янв 2006, 09:05
Сообщение
CyberMax » 30 янв 2007, 09:43
Вариант 1. В запросе добавь:
Код: Выделить всё
0 AS SELECTED -- Флажок выключен по дефолту
либо
Код: Выделить всё
1 AS SELECTED -- Флажок включен по дефолту
Вариант 2. В ран-тайме создавай BooleanField:
Код: Выделить всё
SelField := TBooleanField.Create(Owner);
... // Инициализация поля
Field.Add(SelField);
Единственно, будет вызываться обновляющий запрос. Поэтому придется подавлять его вызов.
Последний раз редактировалось
CyberMax 30 янв 2007, 11:45, всего редактировалось 1 раз.
-
WildSery
- Заслуженный разработчик
- Сообщения: 1738
- Зарегистрирован: 05 июн 2006, 16:19
Сообщение
WildSery » 30 янв 2007, 10:49
CyberMax писал(а):1. В запросе добавь:
Ты и меня запутал своей нумерацией. Надо было так и написать "вариант 1", а то эти "1, 2" выглядят как очерёдность действий

-
CyberMax
- Заслуженный разработчик
- Сообщения: 638
- Зарегистрирован: 31 янв 2006, 09:05
Сообщение
CyberMax » 30 янв 2007, 11:48
WildSery писал(а):Ты и меня запутал своей нумерацией.
Спасибо, поправил

.
-
break
- Сообщения: 58
- Зарегистрирован: 12 май 2005, 11:03
Сообщение
break » 30 янв 2007, 21:25
Я вообще делаю немного по другому: Для каждой формы с гридом есть динамический целочисленный массив и при клике по "искусственной ячейке выделения" сразу заношу очередное выделенное ID в этот массив. А если оно там уже есть убираю от туда. Таким образом не прийдется делать FetchAll для датасета связанного с гридом когда понадобится получить ID всех отмеченных ячеек. А данных иногда бывает много - вполне возможна задержка.
Кстати я вообще не использую Дизайн-тайм поля для датасетов, а сделал бы так
select 0 SEL, t.*
from TABLE t
И создал бы колонку SEL. - Кстати для которой можно перекрыть метод OnDrawColumnCell и выводить какие угодно галочки абсолютно в любом гриде - даже в стандартном. Уменя в программе такая колонка есть практически во всех гридах - для удобства работы пользователей.
-
WildSery
- Заслуженный разработчик
- Сообщения: 1738
- Зарегистрирован: 05 июн 2006, 16:19
Сообщение
WildSery » 31 янв 2007, 11:06
break писал(а):Кстати для которой можно перекрыть метод OnDrawColumnCell и выводить какие угодно галочки абсолютно в любом гриде - даже в стандартном.
Читаем невнимательно или не знаем что такое DBGridEh?
Там встроенная поддержка чекбоксов на любом типе поля.