Topic: Поиск по чекбоксу

Как осуществлять поиск с учетом чекбокса? При включении  чекбокса в поиск ищет только по чекбоксу, по остальным параметрам поиск пропадает. Версия программы 1.5

Re: Поиск по чекбоксу

Установите свойство чекбокса AllowGrayed=True и свойство DefaultState=Grayed
теперь у чекбокса будет три состояние, одно из них Grayed, которое позволяет игнорировать чекбокс при поиске.

Dmitry.

Re: Поиск по чекбоксу

Спасибо, так работает, хотя не совсем удобно три значения.

Re: Поиск по чекбоксу

Еще вопросик. На главной форме есть таблица в которую выводятся результаты поиска. Во всех примерах значения в такой таблицы кликабельны, т.е. выбираешь строку, появляется форма для редактирования.У меня почему-то нет, вроде бы все параметры такие же. Что влияет на отсутствие такой функции?

Re: Поиск по чекбоксу

Для этого вам необходимо на форме разместить кнопку с действием "Показать запись"

Dmitry.

Re: Поиск по чекбоксу

Дмитрий!
Подскажите пожалуйста, каким образом описать эти три состояния чекбокса в SQL запросе?

Re: Поиск по чекбоксу

ulyanov wrote:

Дмитрий!
Подскажите пожалуйста, каким образом описать эти три состояния чекбокса в SQL запросе?

Пример SQL запроса с использованием всех возможных компонентов, в том числе и для CheckBox (chbSmoke)

SELECT
employees.lastname,
employees.firstname,
strftime('%d.%m.%Y', employees.dateofbirth),
strftime('%H:%M:%S', employees.timefield),
groups.groupname,
(CASE WHEN employees.smoke = 1 THEN 'Yes' WHEN employees.smoke = 0 THEN 'No' END),
employees.id

FROM
employees

LEFT OUTER JOIN groups ON groups.id=employees.id_groups

WHERE

(CASE WHEN '{edLastName}' = '' THEN 1=1 ELSE employees.lastname LIKE '{edLastName}' END) AND
(CASE WHEN '{edFirstName}' <> '' THEN employees.firstname LIKE '%{edFirstName}%'  ELSE 1=1 END) AND
(CASE WHEN {dtDateOfBirth} IS NOT NULL THEN date(employees.dateofbirth) = date({dtDateOfBirth}) ELSE 1=1 END) AND
(CASE WHEN {dtTime} IS NOT NULL THEN time(employees.timefield) = time({dtTime}) ELSE 1=1 END) AND
(CASE WHEN {chbSmoke} IS NOT NULL THEN employees.smoke = {chbSmoke} ELSE 1=1 END) AND
(CASE WHEN {cbGroups} <> -1 THEN employees.id_groups = {cbGroups} ELSE 1=1 END)
Dmitry.

Re: Поиск по чекбоксу

Спасибо, Дмитрий!