Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 11, 2017 18:40:47

vic57
Зарегистрирован: 2015-07-07
Сообщения: 909
Репутация: +  127  -
Профиль   Отправить e-mail  

Фильтрация в QTable по дате.

http://doc.crossplatform.ru/qt/4.8.x/html-qt/demos-sqlbrowser.html
хороший пример с исходниками

Офлайн

#2 Фев. 11, 2017 21:18:18

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2756
Репутация: +  184  -
Профиль   Отправить e-mail  

Фильтрация в QTable по дате.

> Ответа на мой вопрос о выборке дат по двум условиям в приведенной вами ссылке не нашел.

Значит плохо искал.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#3 Фев. 11, 2017 23:43:45

Vady
Зарегистрирован: 2015-05-30
Сообщения: 70
Репутация: +  0  -
Профиль   Отправить e-mail  

Фильтрация в QTable по дате.

Rodegast
Значит плохо искал.
Если не желаете помочь человеку конкретным ответом вместо ссылки на документацию, то зачем писать в форум? vic57 мне уже помог со своим более конкретным ответом, так что, спасибо!

Офлайн

#4 Фев. 12, 2017 14:43:32

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2756
Репутация: +  184  -
Профиль   Отправить e-mail  

Фильтрация в QTable по дате.

> Если не желаете помочь человеку конкретным ответом вместо ссылки на документацию, то зачем писать в форум?

1) Если я даю ссылку на документацию, то значит она содержит исчерпывающую информацию на заданный вопрос.
2) Я так понимаю что “конкретный ответ” в твоём понимании означает “напиши за меня программу”. Это никто делать не будет.
3) Тратить на тебя время я больше не буду.

> vic57 мне уже помог со своим более конкретным ответом

QSqlTableModel скрывает строки в QTableView? Это даже не смешно…



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#5 Фев. 12, 2017 19:50:56

Vady
Зарегистрирован: 2015-05-30
Сообщения: 70
Репутация: +  0  -
Профиль   Отправить e-mail  

Фильтрация в QTable по дате.

Rodegast
Если я даю ссылку на документацию, то значит она содержит исчерпывающую информацию на заданный вопрос.
Нет, информация отнюдь не исчерпывающая, нет конкретных примеров. Фильтрация по строковым типам данных - не вариант, тут речь о датах. Погуглил из этой документации несколько методов класса, ничего подходящего не нашел, что и сообщил. И получил ответ: “плохо искал!”

Rodegast
Я так понимаю что “конкретный ответ” в твоём понимании означает “напиши за меня программу”. Это никто делать не будет.
В твоем понимании назвать метод класса или несколько методов класса идентично понятию “написать программу”.

Rodegast
Тратить на тебя время я больше не буду.
Буду рад этому! Сберегу себе время. Здоровья и удачи!

Офлайн

#6 Фев. 12, 2017 20:21:22

vic57
Зарегистрирован: 2015-07-07
Сообщения: 909
Репутация: +  127  -
Профиль   Отправить e-mail  

Фильтрация в QTable по дате.

Vady
vic57 мне уже помог со своим более конкретным ответом, так что, спасибо!
спасибо это гут, а плюс в репу тоже неплохо
1. ты неверно формулируешь свои вопросы -
1.1QTable не существует
1.2 потом оказывается что ты работаешь с БД, это тебе надо знать как запросы к БД делать
1.3 не указаны ни типа БД, ни структура таблицы
Правильный вопрос - 70% правильного ответа, а если ты не знаешь что спросить, то люди не знают, что тебе сказать
для sqlite пример:
 sqlite> sqlite> create table names(id integer primary key autoincrement,name text,begin date,end date);
sqlite> .tables
names
sqlite> .schema names
CREATE TABLE names(id integer primary key autoincrement, name text, begin date, end date);
sqlite> insert into names(name,begin,end) values('vic',date('now'),date('now','+100 days'));
sqlite> insert into names(name,begin,end) values('vic',date('now','-100 days'),date('now'));
sqlite> insert into names(name,begin,end) values('vic',date('now','-100 days'),null);
sqlite> select * from names;
1|vic|2017-02-12|2017-05-23
2|vic|2016-11-04|2017-02-12
3|vic|2016-11-04|
sqlite> select * from names where end <= date('now');
2|vic|2016-11-04|2017-02-12
sqlite> select * from names where end >  date('now');
1|vic|2017-02-12|2017-05-23
sqlite> select * from names where end is null;
3|vic|2016-11-04|
sqlite> select * from names where end is null or end > date('now');
1|vic|2017-02-12|2017-05-23
3|vic|2016-11-04|
sqlite> 



Отредактировано vic57 (Фев. 12, 2017 20:52:57)

Офлайн

#7 Фев. 12, 2017 20:53:15

Vady
Зарегистрирован: 2015-05-30
Сообщения: 70
Репутация: +  0  -
Профиль   Отправить e-mail  

Фильтрация в QTable по дате.

vic57
Еще раз поясню задачу.
При помощи SQL запроса в таблицу программы занес все данные безо всяких условий WHERE.
Таблица редактируемая пользователем. Это значит, если добавил/отредактировал/удалил записи, то при нажатии на кнопку “Сохранить”, изменения должны отразиться на таблице в БД.
То есть селекты с условиями - однозначно не вариант, т.к. всё, что не попадут в эти условия, при нажатии на кнопку “Сохранить”, будут удалены в таблице БД. Да и дополнительные запросы - лишняя нагрузка на сервер.
По этой причине решил использовать модели.
Самый простой вариант для решения задачи - использовать QSortFilterProxyModel.setFilterFixedString(), что и использовал для других столбцов в своей программе. Но это для строковых данных. А тут - ДАТЫ. Причем, не конкретную дату, а всё, что больше текущей, либо пустое значение.
Как написать SQL-запрос, я не спрашивал, т.к. не в этом суть проблемы, но твоё старание я оценил! Еще раз спасибо!
Плюс за ответ на вопрос по теме, конечно, поставлю!

Офлайн

#8 Фев. 13, 2017 00:24:56

vic57
Зарегистрирован: 2015-07-07
Сообщения: 909
Репутация: +  127  -
Профиль   Отправить e-mail  

Фильтрация в QTable по дате.

Vady
Таблица редактируемая пользователем. Это значит, если добавил/отредактировал/удалил записи, то при нажатии на кнопку “Сохранить”, изменения должны отразиться на таблице в БД.
ты по ходу не различаешь select,update и insert

Отредактировано vic57 (Фев. 13, 2017 00:28:11)

Офлайн

#9 Фев. 13, 2017 00:46:51

Vady
Зарегистрирован: 2015-05-30
Сообщения: 70
Репутация: +  0  -
Профиль   Отправить e-mail  

Фильтрация в QTable по дате.

vic57
ты по ходу не различаешь select,update и insert
Различаю. К чему сей пост? Для троллинга?

Офлайн

#10 Фев. 13, 2017 02:17:04

vic57
Зарегистрирован: 2015-07-07
Сообщения: 909
Репутация: +  127  -
Профиль   Отправить e-mail  

Фильтрация в QTable по дате.

Vady
При помощи SQL запроса в таблицу программы занес все данные безо всяких условий WHERE.
1. в insert where не применяется
2. право на изменение/удаление записи в БД должен иметь только админ, юзер может только добавить запись, или у тебя не БД, а полная шняга будет.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version