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

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

как реализовать в Gride выборку отдельных записей CheckBox'ом [D7, IB6.x]


MZ ©   (2007-03-28 09:07:00) 

Уважаемые мастера. Использую DBGridEh.
надо сделать экпорт нескольких записей. Нужные записи пользователь выбирает CheckBox'ом
Пробовал:
(DBGridEh1.Columns[0].CheckBoxes:=true)
Запрос:
Select *, false as IS_ADD
from /Table/
Не получается...
Что я не так делаю?


Ильш   (2007-03-28 11:10:00) [1]

ну check-rb намного нагляднее и юзабилити выше...
позырил щас свои проекты
Select *, 0  as IS_ADD
from /Table/

вот в этом духе у меня... но тока вот грид DevExpress...


Jan   (2007-03-28 11:05:00) [2]

вообще всегда такие вещи делались через SelectedRows.


Ильш   (2007-03-28 11:00:00) [3]

да процедура ваще ахтунг... а в этом GridEh нету что ли такой фичи как DevExpress там можно присвоить занчения при которых chek или uncheck, по сути позволяется использовать для логического поля любый значения...


MZ   (2007-03-28 10:18:00) [4]


> А зачем эта процедура вообще нужна?
>

Пробовал и с ней и без нее - результат такой же.


Sergey13   (2007-03-28 10:14:00) [5]

> procedure TSverkaForm.DBGridEh1CellClick(Column: TColumnEh);
А зачем эта процедура вообще нужна?


MZ   (2007-03-28 10:08:00) [6]


> Sergey13 ©   (28.03.07 09:53) [5]
>
> > [4] MZ   (28.03.07 09:50)
>
> Я тоже не понял как у тебя что работает. Я же твоего кода
> не видел.
>

Есть набор записей (Select *, cast(0 as integer) as IS_ADD  from /Table/) который отображается в DBGridEh.
DBGridEh1.Columns[0].CheckBoxes:=true;
DBGridEh1.Columns[0].FieldName:='IS_ADD';
В свойстве KeyList стоит 1 для true и 0 для false,
на событии OnCellClick
procedure TSverkaForm.DBGridEh1CellClick(Column: TColumnEh);
begin
if Column.FieldName='IS_ADD' then
begin
IDM.dsSverka.Edit;
if IDM.dsSverkaIS_ADD.Value=0 then
  IDM.dsSverkaIS_ADD.Value:=1 else
  IDM.dsSverkaIS_ADD.Value:=0;
IDM.dsSverka.Post;
end;
end;


Пользователь должен выбрать интересующие его записи CheckBox'ом. Затем
if IDM.dsSverkaIS_ADD.Value=1 then import...

Кликаю по записи-CheckBox cтановиться в True, но как только кликаю по другой записи CheckBox становиться в false...


Sergey13   (2007-03-28 09:53:00) [7]

> [4] MZ   (28.03.07 09:50)

Я тоже не понял как у тебя что работает. Я же твоего кода не видел.


MZ   (2007-03-28 09:50:00) [8]


> Sergey13 ©   (28.03.07 09:48) [3]

Не понял... Поясни...


Sergey13   (2007-03-28 09:48:00) [9]

> [2] MZ   (28.03.07 09:42)

Ну значит ошибка в 17 строке.


MZ   (2007-03-28 09:42:00) [10]


> Sergey13 ©   (28.03.07 09:26) [1]
>
> > Не получается...
> Вписать в программу не можешь или что не получается?
>
> Select *, cast(0 as integer) as IS_ADD
> from /Table/
>
> Попробуй так. Может и без cast пройдет - не помню.
>


Увы, не получается. Как только кликаешь по следующей записи, CheckBox становиться false...


Sergey13   (2007-03-28 09:26:00) [11]

> Не получается...
Вписать в программу не можешь или что не получается?

Select *, cast(0 as integer) as IS_ADD
from /Table/

Попробуй так. Может и без cast пройдет - не помню.


Наверх

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