Форум сайта python.su
Добрый день!
Можно ли в гриде осуществить фильтрацию по какому нибудь полю? Т.е. в грид выкачиваются данные с какой ниб базы, а затем из выпадающего списка со значениями поля - отфильтровать.
Если есть какой ниб пример, то можно ли его сюда скинуть
Отредактировано (Март 19, 2008 13:22:18)
Офлайн
Можно.
Делается довольно просто.
Но как - не скажу, сам думай :)
PS: в твоем случае я бы просто сделал еще один select из базы, заодно изменения, если такие были, получил бы.
Отредактировано (Март 19, 2008 16:34:09)
Офлайн
Ненужные записи делать высоту строки =0?
PS: а как делать высоту строки ноль?
Отредактировано (Март 20, 2008 11:50:54)
Офлайн
А самому никак? Вопросы из разряда “мне влом доки смотреть”
Есть много полезных свойств и методов.
1. bool IsVisible(self, row, col, wholeCellVisible)
2. SetRowSize(self, row, height)
А вообще - поиск и wx.Grid wxpython api
Отредактировано (Март 20, 2008 15:47:30)
Офлайн
Уважаемый Ferroman!
Если бы Вы сами не поленились и проверили Ваши советы, то увидели бы, что они не работают. В этом я убедилась, прочитав материал из Вашей ссылки. SetRowSize не разрешает значения 0 (программа аварийно закрывается). А IsVisible - это вообще проверка, видна ли ячейка на экране, это свойство не делает ячейку невидимой. Т.к. команда MakeCellVisible передвигает искомую ячейку в видимую область экрана, то можно понять, какой смысл слова visible имеет в виду автор.
Так что вопрос о фильтрации в гриде, не применяя запросов к базе, остается открытым.
Офлайн
2 Ferroman
Форум для того и существует чтобы задавать вопросы и обсуждать проблемы. Где опытные делятся своими знаниями с новичками. И вовсе необязательно из -за этого уменьшать рейтинг, при этом неправильно отвечая на вопросы.
Офлайн
proDivaНеправда. Не закрывается, но уменьшается до размера шрифта. Только что проверил.
Уважаемый Ferroman!
Если бы Вы сами не поленились и проверили Ваши советы, то увидели бы, что они не работают. В этом я убедилась, прочитав материал из Вашей ссылки. SetRowSize не разрешает значения 0 (программа аварийно закрывается).
proDivaВполне возможно, это я действительно не проверял и не пользовал. Просто решил что стоить посмотретьб может имеет отношение.
А IsVisible - это вообще проверка, видна ли ячейка на экране, это свойство не делает ячейку невидимой. Т.к. команда MakeCellVisible передвигает искомую ячейку в видимую область экрана, то можно понять, какой смысл слова visible имеет в виду автор.
proDivaПроблема проста как тапочек, и очень быстро решается простым просмотром api.
Так что вопрос о фильтрации в гриде, не применяя запросов к базе, остается открытым.
self.CreateGrid(25, 25)#, gridlib.Grid.SelectRows) self.SetRowMinimalHeight(0, 0) self.SetRowMinimalAcceptableHeight(0) self.SetCellValue(0, 0, "First cell") self.SetCellValue(0, 4, "Limited text") self.SetRowSize(0, 0) # делаем высоту первого ряда равной 0
Форум для того и существует чтобы задавать вопросы и обсуждать проблемы. Где опытные делятся своими знаниями с новичками. И вовсе необязательно из -за этого уменьшать рейтинг, при этом неправильно отвечая на вопросы.Делится опытом - не значит “сделать за тебя”. Я из твоего поста даже вскользь не заметил что ты вообще предпринимал что-либо. Ты просто сразу попросил готовый ответ.
Отредактировано (Март 21, 2008 16:22:04)
Офлайн
Похоже, вопрос перешел в “политическую” область…
Перво-наперво. Лень неискоренима.
Если она проскакивает даже среди сотрудников - на каком основании “наказывать” провинившегося форумчанина? (лично мне эта отметка не очень важна, но душу немного греет, не спорю…)
Я либо просто пропускаю такие вопросы, либо прошу предоставить короткий неработающий но запускающийся пример, наглядно иллюстрирующий ошибку. (спабибо, ProDiva, твои примеры для вопросов и ответов сейчас замечательные, хоть и редко пишешь).
Лучше проигнорировать, чем ответить излишне резко и тоже неконкретно. Иначе мой рейтинг был бы таким же самым, но со знаком “минус”.
Все ошибаются (сам грешен), но ошибка помноженная на резкость высказывания получила достойный ответ.
Снова повторюсь: если спрашивающий проявляет лень - просьба о хорошей лаконичной иллюстрации снимает множество вопросов.
- чел настолько ленив, что даже пример соорудить не в состоянии.
- пытается сделать пример, и вопрос снимается - такое тоже было.
- выдает хороший пример, ответ на который заключается в модификации пары строк
Примеры. Когда есть хороший пример кода - места для трений не остается.
Офлайн
В целом согласен.
Лучше проигнорировать, чем ответить излишне резко и тоже неконкретно. Иначе мой рейтинг был бы таким же самым, но со знаком “минус”.Мне рейтинг, как таковой, не важен. Мне важно отдельное мнение отдельных людей, мнение которых, я собственно ценю. Я уже писал что я злой дядька, и очень люблю прямоту в разговоре. Кое-кто воспринимает как “грубость”, “резкость” и “некорректность”.
Все ошибаются (сам грешен), но ошибка помноженная на резкость высказывания получила достойный ответ.Я не ошибся. Я просто не “почистил” “разжевал” и не положил результат в рот. Но куда смотреть и что искать я указал.
Офлайн
А я бы не прятал строки, а работал бы с гридом в виртуалном режиме, то есть через wx.grid.PyGridTableBase. Фильтровал бы модель. Так мне кажется более идеологически верно ;)
Офлайн