Здравствуйте, у меня есть программа и внутри есть таблица к которой подключена база данных.
Программа построена на PyQt5(UI), Python(Code), Database(PostgreSQL)
У меня в программе есть фильтры и поиск, поиск должен при вводе него значения отображать найденные результаты он это делает но не совсем.
А так же слева есть фильтры, при выборе к примере Труба-бесшовная в таблице должны отобразиться все бесшовные трубы.
Как можно это сделать? Потому что мой код это делает но не совсем правильно:
При вводе Труба (Screenshot_1) он выдает все товары которые называются труба (Screenshot_2).
Но если я хочу написать Труба бесшовная (Screenshot_3) то он выдает пустую таблицу и не находит (Screenshot_4).
Если писать бесшовная и больше ничего то он выдает все где есть слово бесшовная (Screenshot_5 и Screenshot_6).
Вот если я напишу труба и размер ф105*8 как указано в базе то он не выдает и выдает пустую таблицу. (Screenshot_7 и должен показывать Screenshot_8)
Вот фильтр по той же схеме. Выбираешь Труба он выдает весь список с трубой и при отдельном выборе к примеру профильная он должен выдавать трубы профильные но не делает этого. Screenshot_9 а должен так выводить Screenshot_11
Как сделать поиск который будет находить подходящие значения а не только одно значение если указано как я понял.
Вот код поиска:
Программа построена на PyQt5(UI), Python(Code), Database(PostgreSQL)
У меня в программе есть фильтры и поиск, поиск должен при вводе него значения отображать найденные результаты он это делает но не совсем.
А так же слева есть фильтры, при выборе к примере Труба-бесшовная в таблице должны отобразиться все бесшовные трубы.
Как можно это сделать? Потому что мой код это делает но не совсем правильно:
При вводе Труба (Screenshot_1) он выдает все товары которые называются труба (Screenshot_2).
Но если я хочу написать Труба бесшовная (Screenshot_3) то он выдает пустую таблицу и не находит (Screenshot_4).
Если писать бесшовная и больше ничего то он выдает все где есть слово бесшовная (Screenshot_5 и Screenshot_6).
Вот если я напишу труба и размер ф105*8 как указано в базе то он не выдает и выдает пустую таблицу. (Screenshot_7 и должен показывать Screenshot_8)
Вот фильтр по той же схеме. Выбираешь Труба он выдает весь список с трубой и при отдельном выборе к примеру профильная он должен выдавать трубы профильные но не делает этого. Screenshot_9 а должен так выводить Screenshot_11
Как сделать поиск который будет находить подходящие значения а не только одно значение если указано как я понял.
Вот код поиска:
Python:
self.btn_search.clicked.connect(self.OnSearch)
def OnSearch(self):
a = self.le_search.text().lower().split(" ")
name = a[0].lower()
kol_vo = str(a[-1].strip())
if name != kol_vo:
try:
for row in range(self.tableWidget.rowCount()):
item = self.tableWidget.item(row, 0)
item_1 = self.tableWidget.item(row, 4)
if name in item.text().lower() and kol_vo == item_1.text():
pass
else:
self.tableWidget.setRowHidden(row, True)
except Exception as ex:
for row in range(self.tableWidget.rowCount()):
item = self.tableWidget.item(row, 0)
self.tableWidget.setRowHidden(row, name not in item.text().lower())
else:
for row in range(self.tableWidget.rowCount()):
item = self.tableWidget.item(row, 0)
self.tableWidget.setRowHidden(row, name not in item.text().lower())
Вложения
-
Screenshot_1.jpg11,5 КБ · Просмотры: 0
-
Screenshot_2.jpg75,5 КБ · Просмотры: 0
-
Screenshot_3.jpg15 КБ · Просмотры: 0
-
Screenshot_4.jpg9,5 КБ · Просмотры: 0
-
Screenshot_5.jpg12,8 КБ · Просмотры: 0
-
Screenshot_6.jpg148,4 КБ · Просмотры: 0
-
Screenshot_7.jpg13,6 КБ · Просмотры: 0
-
Screenshot_8.jpg7,2 КБ · Просмотры: 0
-
Screenshot_9.jpg80,7 КБ · Просмотры: 0
-
Screenshot_11.jpg169,6 КБ · Просмотры: 0