Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2010, 14:53   #1
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
Вопрос Работа с DBCheckBox

Здравствуйте. Пишу программу и возникла такая трудность. Есть список некоторых услуг на форме в виде CheckBox-ов. Взависимости от ситуации я выбираю те, которые мне нужно и заношу идентификатор выбранной записи в БД. С этим проблем нет. Идентификаторы для своих записей я придумал такие как на скрине "Выборка". Выбрал первы CheckBox - в БД занеслось I и т.д. Результат внесения изображен на скрине "БД". Для отображения записей БД я использую DBCheckBox. Проблема-вопрос в следующем: как мне отобразить только те услуги есть у конкретного человека? (Речь не о запросе). Например, если взять запись, у которой IDFIO=1, то на форме должны активироваться только DBCheckBox-ы для которых есть значения в БД. Вообщем, в данном случае должно отобразиться первая, вторая и седьмая. Вот собственно такая проблемка.
Изображения
Тип файла: png Выборка.png (9.9 Кб, 158 просмотров)
Тип файла: png БД.png (3.5 Кб, 139 просмотров)
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 22.03.2010, 15:08   #2
maLoy*508
Форумчанин
 
Аватар для maLoy*508
 
Регистрация: 28.03.2008
Сообщений: 672
По умолчанию

проверяем нужную запись, и если в полях есть данные то делаем чекбокс видимым... если нет то невидимым...

ну это так, навскидку...
maLoy*508 вне форума Ответить с цитированием
Старый 22.03.2010, 15:09   #3
quit
Я есть!
Форумчанин
 
Аватар для quit
 
Регистрация: 17.02.2008
Сообщений: 318
По умолчанию

Код:
  DBCheckBox1.ValueChecked := 'I';//'II','III' и тд для каждого чекбокса
  DBCheckBox1.ValueUnchecked := '';
или на панели свойств Чекбокса пропиши сразу
©Учиться, учиться и еще раз учиться!
quit вне форума Ответить с цитированием
Старый 22.03.2010, 15:10   #4
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

Примерно так
Код:
procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
  DBCheckBox1.Visible := ADOTable1.FieldByName('YesNo').AsBoolean;
end;
Баламут вне форума Ответить с цитированием
Старый 22.03.2010, 15:10   #5
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
Сообщение от quit Посмотреть сообщение
Код:
  DBCheckBox1.ValueChecked := 'I'//'II','III' и тд для каждого чекбокса
  DBCheckBox1.ValueUnchecked := '';
или на панели свойств Чекбокса пропиши сразу
И куда поместить этот код?)
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 22.03.2010, 15:13   #6
quit
Я есть!
Форумчанин
 
Аватар для quit
 
Регистрация: 17.02.2008
Сообщений: 318
По умолчанию

Цитата:
Сообщение от artemavd Посмотреть сообщение
И куда поместить этот код?)
Object Inspector'e глянь, для каждого чекбокса укажи нужные значения
Изображения
Тип файла: png Untitled.png (10.0 Кб, 137 просмотров)
©Учиться, учиться и еще раз учиться!

Последний раз редактировалось quit; 22.03.2010 в 15:20. Причина: картинка
quit вне форума Ответить с цитированием
Старый 22.03.2010, 15:20   #7
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Я попробовал сделать так:
Код:
procedure TForm1.RzURLLabel2Click(Sender: TObject);
begin
 Form1.TabSheet6.Show;
 if DataSource1.DataSet.FieldByName('KOSMET').AsString = 'I' then
 begin
  DBCheckBox1.Visible:=True; { := DataSource1.DataSet.FieldByName('I').AsString;}
 end;

 if DataSource1.DataSet.FieldByName('KOSMET').AsString <> 'I' then
 begin
  DBCheckBox1.Visible:=False; { := DataSource1.DataSet.FieldByName('I').AsString;}
 end;
end;
Но не проверяются условия и DBCheckBox все равно остается видимым...
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DBCheckBox дурит Haladdin БД в Delphi 1 21.12.2009 23:58
Научите работать с DBCheckBox slipknot666max Помощь студентам 0 21.11.2009 11:40
Работа с webbrowser - Фреймы, работа с конкретным феймом в фрейме NewDelphi Фриланс 2 08.10.2009 11:00