![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Всем приииивет и это снова я.
Проблема вот в чём: TreeView фильтрует только по одному значение остальные игнорирует( Использую такой код: Код:
procedure TForm1.TreeView1GetSelectedIndex(Sender: TObject; Node: TTreeNode); begin if DataModule1.ADOQuery2.Active = True then DataModule1.ADOQuery2.Close; DataModule1.ADOQuery2.SQL.Text:= 'SELECT * FROM Работники WHERE Подразделение = "' + TreeView1.Items[TreeView1.Selected.Index].Text + '"'; DataModule1.ADOQuery2.ExecSQL; DataModule1.ADOQuery2.Open; end; Дерево выглядит так: Спецбюро МОП АУП Специалисты При выборе "МОП" в Grid остаются записи у которых столбец "подразделение" имеет текст "МОП". Но при выборе "АУП" или "Специалисты" Grid остаётся пустым. В чём может быть проблема? |
#2
|
|||
|
|||
![]() 1. Используй OnChange event.
2. ... + TreeView1.Selected.Text + ... 3. Ну и TreeView1.Selected не плохо бы проверять на Nil. |
#3
|
||||
|
||||
![]() Цитата:
Сделал но всё ровно осталось также как было =\ |
#4
|
|||
|
|||
![]() Цитата:
Значит что-то не то со значениями. Чудес-то не бывает. Проверь получающиеся запросы "руками". Может у тебя в БД значения написаны не так, как в TreeView. Например, в БД где-то большая буква, а в TreeView маленькая. Или где-то пробел в хвосте торчит. можно для чистоты эксперимента запрос переписать хотя бы вот так (зависит от БД - должна поддерживать соотв. функции): Код:
DataModule1.ADOQuery2.SQL.Text:= 'SELECT * FROM Работники WHERE UPPER(TRIM(Подразделение)) = UPPER(TRIM("' + TreeView1.Selected.Text + '"))'; |
#5
|
||||
|
||||
![]() Цитата:
Нашёл мой косяк =\ Почему то при добавлении "подразделения" через combobox ставит лишний пробел у всех записей кроме "МОП" =\ |
#6
|
||||
|
||||
![]() И ещё вопросик будет.
Как эту ужасную кучу привести в нормальный вид и чтобы это всё добавлялось в таблицу, а то строка с перечислением столбцов выходит за рамки допустимого и программа не хочет компилироваться. Код:
if DataModule1.ADOQuery2.Active = True then DataModule1.ADOQuery2.Close; DataModule1.ADOQuery2.SQL.Text := 'SELECT * FROM Работники'; DataModule1.ADOQuery2.sql.Add ('insert into Работники (Фамилия,Имя,Отчество,Подразделение,Статус_работника,Пол,id_info,Должность,Дата_приёма_на_работу,ИНН,Табельный№,РегПФР,Домашний,Сотовый1,Сотовый2,Д_р_п_ж' +#13+ 'Серия,Номер,дата_рождения,Место_рождения,Тип_документа,Дата_выдачи,Кем_выдан,Индекс_1,Населённый_пункт_1,Улица_1, Дом_1,Корпус_1,Квартира_1,Индекс_2,Населённый_пункт_2,Улица_2,Дом_2,Корпус_2,Квартира_2) values ("' + Edit_fio.Text + '", "' + Edit_name.Text + '", "' + Edit_otch.Text + '", "' + ComboBox1.Text + '", "' + DBLookUpCombobox.Text + '", "' + ComboBox2.Text + '", "' + Inttostr(seInfo.Value) + '", "' + DBLookupComboBox1.Text + '", "' + String(MaskEdit4.Text) + '", "' + Edit7.Text + '", "' + Edit1.Text + '", "' + Edit6.Text + '", "' + String(MaskEdit8.Text) + '", "' + String(MaskEdit5.Text) + '", "' + String(MaskEdit6.Text) + '", "' + String(MaskEdit3.Text) + '", "' + Edit8.Text + '", "' + Edit9.Text + '", "' + String(MaskEdit1.Text) + '", "' + Edit10.Text + '", "' + Edit11.Text + '", "' + String(MaskEdit2.Text) + '", "' + Edit12.Text + '", "' + Edit13.Text + '", "' + Edit14.Text + '", "' + Edit15.Text + '", "' + Edit16.Text + '", "' + Edit17.Text + '", "' + Edit18.Text + '", "' + Edit19.Text + '", "' + Edit20.Text + '", "' + Edit21.Text + '", "' + Edit22.Text + '", "' + Edit23.Text + '", "' + Edit24.Text + '"'); DataModule1.ADOQuery2.ExecSQL; DataModule1.ADOQuery2.sql.Text := 'insert into Работники (Серия, Номер, дата_рождения, Место_рождения, Тип_документа, Дата_выдачи,Кем_выдан,Индекс_1,Населённый_пункт_1,Улица_1, Дом_1,Корпус_1,Квартира_1, Индекс_2,Населённый_пункт_2, Улица_2, Дом_2, Корпус_2, Квартира_2) values ("' + Edit8.Text + '", "' + Edit9.Text + '", "' + String(MaskEdit1.Text) + '", "' + Edit10.Text + '", "' + Edit11.Text + '", "' + String(MaskEdit2.Text) + '", "' + Edit12.Text + '", "' + Edit13.Text + '", "' + Edit14.Text + '", "' + Edit15.Text + '", "' + Edit16.Text + '", "' + Edit17.Text + '", "' + Edit18.Text + '", "' + Edit19.Text + '", "' + Edit20.Text + '", "' + Edit21.Text + '", "' + Edit22.Text + '", "' + Edit23.Text + '", "' + Edit24.Text + '")'; DataModule1.ADOQuery2.ExecSQL; |
#7
|
||||
|
||||
![]() Цитата:
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#8
|
|||
|
|||
![]() Пиши запросы с импользованием параметров.
|
#9
|
||||
|
||||
![]() А можете подсказать как перенести часть этой строки на нижнею:
Код:
'insert into Работники (Фамилия,Имя,Отчество,Подразделение,Статус_работника,Пол,id_info,Должность,Дата_приёма_на_работу,ИНН,Табельный№,РегПФР,Домашний,Сотовый1,Сотовый2,Д_р_п_ж', 'Серия,Номер,дата_рождения,Место_рождения,Тип_документа,Дата_выдачи,Кем_выдан,Индекс_1,Населённый_пункт_1,Улица_1, Дом_1,Корпус_1,Квартира_1,Индекс_2,Населённый_пункт_2,Улица_2,Дом_2,Корпус_2,Квартира_2) values ("' |