0 / 0 / 0
Регистрация: 07.06.2011
Сообщений: 48

Фильтрация по нескольким значениям из нескольких CheckListBox

10.02.2012, 15:18. Показов 2887. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть таблица, заполнянемы по запросу
Delphi
1
SELECT * FROM ZAYAVKA;
Есть несколько чеклистбоксов.
По нажатию кнопки надо выбрать из таблицы записи по значениям нескольких чекбоксов.

Есть такой код

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
procedure TForm1.BitBtn1Click(Sender: TObject);
var n, s: string;
  i : integer;
  begin
  inherited;
  s := ' ';
  if CheckBox2.Checked then
  begin
    n := '';
    for i := 0 to CheckListBox1.Items.Count - 1 do
      if CheckListBox1.Checked[i] then n := n + ',' + inttostr(integer(CheckListBox1.items.objects[i]));
    if Length(n) > 1 then
    begin
      n[1] := ' ';
      if s <> '' then s := s + ' and ';
      s := s + ' IZAYAVKASTATUSID in (' + n + ')'
    end;
  end;
 
  if CheckBox3.Checked then
  begin
    n := '';
    for i := 0 to CheckListBox2.Items.Count - 1 do
      if CheckListBox2.Checked[i] then n := n + ',' + inttostr(integer(CheckListBox2.items.objects[i]));
    if Length(n) > 1 then
    begin
      n[1] := ' ';
      if s <> '' then s := s + ' and ';
      s := s + ' ISTAFFID IN (' + n + ')'
    end;
  end;
fDM.ADOQ_GET_Z.Close;
  fDM.ADOQ_GET_Z.Open;
  if s <> '' then
     fDM.ADOQ_GET_Z.SQL.Add('WHERE' + s);
Ничего не выбирает (показывает все пустое)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.02.2012, 15:18
Ответы с готовыми решениями:

Фильтрация по нескольким значениям
Я хочу провести фильтрацию поля таблицы TDB по нескольким значениям. Есть Dbf1.Filter:='AVERAGESCORE = '+DBComboBox2.Text; Как...

AdoQuery И поиск по нескольким значениям
Добрый день Имеется у меня на форме ADOConnection1 который подключен к Бд, ADOTable1 которые подключен к ADOConnection1, DataSource1...

Обработка по нескольким значениям из ADOQuery (для выделенной в DBGrid строки)
Здравствуйте, возникли затруднения при выполнении определенной задачи в приложении. Есть небольшая БД, содержащая данные по...

10
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
10.02.2012, 16:02
Вы попробуйте после формирования текста SQL выдать его на экран или в лог и посмотрите, что получится.
0
0 / 0 / 0
Регистрация: 07.06.2011
Сообщений: 48
10.02.2012, 16:30  [ТС]
я не знаю как это сделать -_-
0
71 / 71 / 7
Регистрация: 19.07.2011
Сообщений: 357
10.02.2012, 19:23
кладете на форму компонент memo,
после формирования строки запроса записываете ее в мемо - сразу станет понятно где накосячили.
Delphi
1
memo1.lines.add(s);
1
0 / 0 / 0
Регистрация: 07.06.2011
Сообщений: 48
10.02.2012, 23:01  [ТС]
Пабеда! Спасибо большое )
А не подскажете, как можно программно снять выделения в CheckListBox?
Как-то так? Если да, то что вместо многоточек?)
Delphi
1
2
for i := 0 to CheckListBox1.Items.Count - 1 do
      if CheckListBox1.Checked[i] then CheckListBox1.........
0
71 / 71 / 7
Регистрация: 19.07.2011
Сообщений: 357
10.02.2012, 23:51
вроде, работает так

Delphi
1
2
3
4
5
6
7
8
procedure TForm1.Btn1Click(Sender: TObject);
var i: Integer;
begin
    For i:=0 to checklistbox1.Items.Count-1 do
      begin
        If checklistbox1.Checked[i] then checklistbox1.Checked[i]:=False;
      end;
end;
1
0 / 0 / 0
Регистрация: 07.06.2011
Сообщений: 48
11.02.2012, 00:07  [ТС]
Спасибо еще раз)
А не подскажете, что с датами может быть? У меня есть фильтр по дате:

Delphi
1
2
3
4
5
6
 if CheckBox1.Checked then
  begin
    if s <> '' then s := s + ' and ';
    s := s + '(' + ' DTCREATE >''' + DateToStr(DateTimePicker1.Date) + ''''
      + 'and' + ' DTCREATE <''' + DateToStr(DateTimePicker2.Date) + ''')';
      end;
Я проверила - запрос правильно пишет. Вот строчка запроса, которую выводит
Delphi
1
( DTCREATE >'03.02.2012'and DTCREATE <'10.02.2012')
Но выдает ошибку о несоответствии форматов.
В базе поле DTCREATE имеет формат короткой даты (dd.MM.yyyy)
DateTimePicker1.Date тот же формат.
В чем может быть дело?
0
71 / 71 / 7
Регистрация: 19.07.2011
Сообщений: 357
11.02.2012, 00:13
Обычно такая проблема в несоответствии настроек самой системы windows.
Посмотрите в каком формате винда хочет видеть даты в региональных настройках
0
0 / 0 / 0
Регистрация: 07.06.2011
Сообщений: 48
11.02.2012, 00:47  [ТС]
Даже если поставить региональные MM.dd.yy все равно ошибка..
Миниатюры
Фильтрация по нескольким значениям из нескольких CheckListBox  
0
71 / 71 / 7
Регистрация: 19.07.2011
Сообщений: 357
11.02.2012, 01:43
выдавите тут строку sql запроса, которая получается (из memo блока скопируйте).
0
0 / 0 / 0
Регистрация: 07.06.2011
Сообщений: 48
11.02.2012, 01:45  [ТС]
И снова пабеда!

Delphi
1
2
3
4
5
6
7
8
9
10
11
  begin
    if s <> '' then s := s + ' and ';
       s := s + 'INT ([DTCREATE])BETWEEN :date1 and :date2';
   end;
 
 ...
 
     fDM.ADOQ_GET_Z.Parameters.ParamByName('date1').DataType := ftDateTime;
     fDM.ADOQ_GET_Z.Parameters.ParamByName('date2').DataType := ftDateTime;
     fDM.ADOQ_GET_Z.Parameters.ParamByName('date1').Value:=trunc(DateTimePicker1.Date);
     fDM.ADOQ_GET_Z.Parameters.ParamByName('date2').Value:=trunc(DateTimePicker2.Date);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.02.2012, 01:45
Помогаю со студенческими работами здесь

QSortFilterProxyModel фильтрация по нескольким значениям столбца
Есть модель. В одном из столбцов могут быть данные - 1, 2 или 3. Есть форма. На ней tableView, menuBar c добавленными Action типа...

Фильтрация DataGridView по нескольким значениям в одной строке
Есть дата грид со множеством столбцов однородных по содержимому (например ингредиенты для рецептов блюд), как сделать фильтрацию например...

Фильтрация datqagridView по нескольким параметрам, из нескольких столбцов
Здравствйте, собественно по названию понятен вопрос, есть таблица с 5 колноками и мне необходимо что бы производилась фильтрация по...

Фильтрация из нескольких столбцов таблицы по нескольким условиям!
Всех приветствую! Имеется файл MS Access, в нем таблица с 10-ю столбцами. Обращение к таблице через ADOTable. Искомое значение вводим...

Фильтр по нескольким значениям
Здравствуйте, возникла проблема с фильтрацией таблицы. Имеется грид и 6 комбобоксов. Задача: при выборе значений комбобоксов в любых...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru