View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0000390 | Производство | General | public | 2012-09-19 15:34 | 2012-12-07 11:43 |
| Reporter | ruslan | Assigned To | barry | ||
| Priority | high | Severity | feature | Reproducibility | always |
| Status | closed | Resolution | fixed | ||
| Platform | КСАП Гранит | OS | Windows | ||
| Summary | 0000390: +Производство - закладка Заказы - Панель "быстрого" фильтра | ||||
| Description | Нужно поле для ввода параметров поиска/универсального фильтра рядом с панелью инструментов(типа, как поиск по Номеру в Складе в Заказах). 1. Фильтрация должна происходить по любому из полей таблицы мастер(Заказы)и изделия в Заказе(детайл), по щелчку допустим на колонке меняется категория поиска. 2. Категория поиска должна запоминаться и при повторном входе в модуль подсвечиваться рядом с полем поиска и искать по той категории, с которой был завершен модуль. 3. Поиск не должен зависеть от сортировки. Возможно реализовать такую функциональность? | ||||
| Tags | No tags attached. | ||||
|
|
Что такое "категория поиска"? Я ничего не понял. |
|
|
Категория поиска - это поле по которому осуществляется поиск. Идея какая - организовать поле для Поиска - ввод тестовых символов(или правильней сказать фильтра, т.к. вариант поиска перемещением курсора в некоторых случаях думаю будет проблематично реализовать). В панели инструментов над окном Заказы(например дальше кнопок или как-то ниже его разместить), чтоб можно было искать по любому полю в гриде Заказов и Изделий в заказе. Менять поле поиска щелчком на соответствующей колонке грида(как поиск в Товара в наличии), но не только на гриде Заказов, но и на гриде Изделия в Заказе. |
|
|
Ну для разных гридов по крайней мере два отдельных поля надо, иначе непонятно в каком гриде хотят искать. Для изделий видимо панель над списком изделий - с полем поиска. |
|
|
Нет, идея именно в ЕДИНОМ окне для ввода параметров, для идентификации Грида можно использовать в названии поля признак. Например, "Заказ:ID", "Заказ:Номер", "Изделия:IDGDS", "Изделия:Наименование" |
|
|
Можно в принципе и так, т.е. ты хочешь чтобы поле поиска идентифировалось по последней сортировке. Я имел ввиду не только интерфейсное отображение где будет искать, но и как просто и понятно указать где мы хотим искать. Без объяснений никто не догадается сам, что чтобы искать по такому-то полю - нужно отсортировать по нему. |
|
|
И что значит "поиск не должен зависеть от сортировки", если мы сортировкой активируем соотв. поле для поиска. |
|
|
В том смысле, что не давно помнишь, когда мы делали аналогичную фичу для формы накладной выписанной из заказа для добавления поз. в накладную, ты мне заявил, когда Поиск по непонятным мне причинам не работал, что Поиск зависит от сортировки, и типа что он работает только при определенной сортировке, типа от А к Я а наоборот - нет. Так вот такого эффекта быть не должно, какая бы сортировка в поле не была - Поиск должен работать. |
|
|
Цитата: "Можно в принципе и так, т.е. ты хочешь чтобы поле поиска идентифировалось по последней сортировке. Я имел ввиду не только интерфейсное отображение где будет искать, но и как просто и понятно указать где мы хотим искать. Без объяснений никто не догадается сам, что чтобы искать по такому-то полю - нужно отсортировать по нему." Ну активация поиска по колонке - в Граните одинаковая - Щелчок на колонке для смены Поля для поиска... думаю пользователи будут работать с этим единообразно и вопросов не будет, то что происходит сортировка в данном случае для пользователя просто побочный эффект. |
|
|
Фильтровка от сортировки по идее не зависит. Все зависит от конкретных датасетов, там по моему в TMemoryTable не то какие-то косяки, не то ограничения в этом плане. А в целом когда накладывается куча всяких извратных требований к датасету (перерасчеты, взаимных перемещения), Обеспечить работу всего этого во всех аспектах бывает весьма проблемно |
|
|
Ладно, я попробую поглубже поковыряться в компонентах на предмет более тесной увязки с гридом. В принципе это больше времени займет, чем местная увязка, но даст глобальное преимущество (если каменный цветок получится). |
|
|
Борь, ты б пока сделал поле для Поиска без глобального перывания компонент... путь бы пока так работало, хотя б по гриду Заказы... а то там часто путаница бывает с Заказами на призводстве а так по штрих-коду ИД сканером искать заказы для печатников легче было бы... |
|
|
Везде одно и то же. |
|
|
work32.zip поюзать |
|
|
|
|
|
|
|
|
По ИД не ищет :-( ищет из всего списка полей только по номеру... |
|
|
work32.zip |
|
|
Сделай поиск в поле Поиска не зависимым от списка в гриде, т.е. чтоб Поиск работал по всем заказам по-умолчанию и не надо было бы сбрасывать фильтр постоянно. Как поиск по Номеру в складских Заказах |
|
|
Ничего не понял. Только по заказам чтобы работал, по изделиям не надо? |
|
|
Фильтр(поиск) должен работать ТОЛЬКО по производственным Заказам, если в качестве поля для поиска будет одно из полей - Изделия в Заказе, то соответственно должны отбираться Заказы, где встречается значение этого поля. И поиск должен не зависеть от встроенного фильтра по дате, от значения Фильтра, который в данный момент наложен на список..., т.е. поиск должен осуществляться по ВСЕМУ списку Заказов. |
|
|
Так а чего ты сразу это не написал, и не сказал когда был... это все переделывать. |
|
|
Да, это уточнение я не описал..нигде хотя именно про поиск(фильтрацию) производственных Заказов писал :-( |
|
|
work32.zip |
|
|
хорошо написал... значит я не нашел |
|
|
При попытке искать по полю SZGDSID из списка Изделий в Заказе - ошибка. Я понимаю, что это поле не из таблицы Изделия в Заказе...а можно добавить его тоже? Произошла ошибка: Dynamic SQL Error SQL error code = -206 Column unknown M.SZGDSID At line 19, column 25 Select Z.ID, Z.DAT_, Z.Nbr, Z.STOR, Z.Comment, Z.bDate, Z.eDate, Z.UserName, Z.LastEdit, S.Name SNAME, Z.ZSReady, Z.ZMReady, Z.ZTrash, Z.ZakazMap, Z.InpStor1, Z.InpStor2, Z.ReadyPDate, Z.WDate, Z.FTIME, (Select Cast(1 as integer) from Rdb$Database where exists (Select DD1.ID from DgvDt DD1 where DD1.ZID=Z.ID and DD1.SubTyp=1)) ZSlvInp, (Select Cast(1 as integer) from Rdb$Database where exists (Select DD2.ID from DgvDt DD2 where DD2.ZID=Z.ID and DD2.SubTyp=2)) ZSlvOut, (Select Cast(1 as integer) from Rdb$Database where exists (Select KK1.ID from DgvKt KK1 where KK1.ZID=Z.ID and KK1.Typ=4)) ZMstOut, (Select Cast(1 as integer) from Rdb$Database where exists (Select C.ID from WorkZCutting C where C.ZID=Z.ID)) ZCutting From WorkZakaz Z Left Join StorList S on S.ID=Z.Stor Left Join UserStor US on US.Stor_ID=Z.Stor AND US.User_ID=1 where Z.OurOrgnID+0 = 6046 and (Z.Stor is Null OR US.ID is Not Null) AND EXISTS(SELECT M.ID FROM WorkZMst M WHERE M.ZID=Z.ID AND M.SZGDSID containing '22988' ) Order By Z.DAT_ desc, Z.ID desc Производство Application.MainForm: FormWork(TFormWork) XE2 Производство: Твин-Друк ЗАО ПП (ТВИН-ДРУК АО ПП) [Администратор Системы] ActiveForm: FormWork(TFormWork) XE2 Производство: Твин-Друк ЗАО ПП (ТВИН-ДРУК АО ПП) [Администратор Системы] ActiveCustomForm: FormWork(TFormWork) XE2 Производство: Твин-Друк ЗАО ПП (ТВИН-ДРУК АО ПП) [Администратор Системы] |
|
|
И еще маленькое уточнение...поиск должен происходить в контексте Складов к которым у текущего пользователя есть доступ... я смотрю там у тебя есть left join с таблицей UserStor...однако, почему left? |
|
|
Ты закрывал задачу по доступу: http://barry.exp-host.ru/tracker/view.php?id=210 Следовательно это работало, ну и следовательно ты заказал по каким-то причинам чтоб показывало все, я бы просто так JOIN на LEFT JOIN не менял. Мне неохота перерывать произв. задачи - ищи и вспоминай сам... |
|
|
В 976 комментарии к этой задаче есть действительно фраза "И поиск должен не зависеть от встроенного фильтра по дате, от значения Фильтра, который в данный момент наложен на список..., т.е. поиск должен осуществляться по ВСЕМУ списку Заказов."... я не сделал уточнение, что по всему списку заказов, к которому есть доступ у пользователя в контексте доступа по Складам.. иначе противоречие с правами получиться, а это не к чему. |
|
|
work32.zip SZGDSID |
|
|
Ну склад в заказе не обязателен. И раньше там доступ был, потом я отключал по твоей просьбе, ты даже это чем-то мотивировал, но я не помню чем. |
|
|
И ты уверен что он не работает? ...and (Z.Stor is Null OR US.ID is Not Null) |
|
|
Убери пожалуйста форму сообщения с запросом, которую ты выводил для отладки --------------------------- Производство --------------------------- Select Z.ID, Z.DAT_, Z.Nbr, Z.STOR, Z.Comment, Z.bDate, Z.eDate, Z.UserName, Z.LastEdit, S.Name SNAME, Z.ZSReady, Z.ZMReady, Z.ZTrash, Z.ZakazMap, Z.InpStor1, Z.InpStor2, Z.ReadyPDate, Z.WDate, Z.FTIME, (Select Cast(1 as integer) from Rdb$Database where exists (Select DD1.ID from DgvDt DD1 where DD1.ZID=Z.ID and DD1.SubTyp=1)) ZSlvInp, (Select Cast(1 as integer) from Rdb$Database where exists (Select DD2.ID from DgvDt DD2 where DD2.ZID=Z.ID and DD2.SubTyp=2)) ZSlvOut, (Select Cast(1 as integer) from Rdb$Database where exists (Select KK1.ID from DgvKt KK1 where KK1.ZID=Z.ID and KK1.Typ=4)) ZMstOut, (Select Cast(1 as integer) from Rdb$Database where exists (Select C.ID from WorkZCutting C where C.ZID=Z.ID)) ZCutting From WorkZakaz Z Left Join StorList S on S.ID=Z.Stor Left Join UserStor US on US.Stor_ID=Z.Stor AND US.User_ID=1 where Z.OurOrgnID+0 = 6046 and (Z.Stor is Null OR US.ID is Not Null) AND EXISTS(SELECT M.ID FROM WORKZMST M JOIN WorkRequestGds WG ON WG.ID=M.WRGDSID JOIN WorkRequest WR ON WR.ID=WG.WRID JOIN StorZakazDt SZ on SZ.ID=WR.SZID JOIN STORZDTGDS SZG ON SZG.SZID=SZ.ID and SZG.GodsID=WG.GodsID WHERE M.ZID=Z.ID AND SZG.ID containing '41' ) Order By Z.DAT_ desc, Z.ID desc --------------------------- OK --------------------------- |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2012-09-19 15:34 | ruslan | New Issue | |
| 2012-09-19 15:39 | ruslan | Relationship added | related to 0000391 |
| 2012-09-26 10:11 | barry | Note Added: 0000854 | |
| 2012-09-26 15:25 | ruslan | Note Added: 0000856 | |
| 2012-11-08 10:07 | barry | Note Added: 0000923 | |
| 2012-11-08 10:07 | barry | Assigned To | => barry |
| 2012-11-08 10:07 | barry | Status | new => acknowledged |
| 2012-11-08 11:07 | ruslan | Note Added: 0000927 | |
| 2012-11-08 17:59 | barry | Note Added: 0000938 | |
| 2012-11-08 18:07 | barry | Note Added: 0000939 | |
| 2012-11-08 18:21 | ruslan | Note Added: 0000940 | |
| 2012-11-08 18:27 | ruslan | Note Added: 0000942 | |
| 2012-11-08 18:42 | barry | Note Added: 0000943 | |
| 2012-11-08 19:42 | barry | Note Added: 0000944 | |
| 2012-11-09 00:21 | ruslan | Note Added: 0000945 | |
| 2012-11-09 00:22 | ruslan | Note Edited: 0000945 | View Revisions |
| 2012-11-09 14:10 | barry | Note Added: 0000946 | |
| 2012-11-09 14:11 | barry | Note Added: 0000947 | |
| 2012-11-09 16:12 | ruslan | File Added: Производство Поиск в Заказах 1Экран.JPG | |
| 2012-11-09 16:13 | ruslan | File Added: Производство Поиск в Заказах 2Экран.JPG | |
| 2012-11-09 16:14 | ruslan | Note Added: 0000948 | |
| 2012-11-12 20:49 | barry | Note Added: 0000970 | |
| 2012-11-12 20:49 | barry | Status | acknowledged => resolved |
| 2012-11-12 20:49 | barry | Resolution | open => fixed |
| 2012-11-14 15:24 | ruslan | Note Added: 0000971 | |
| 2012-11-14 15:24 | ruslan | Status | resolved => feedback |
| 2012-11-14 15:24 | ruslan | Resolution | fixed => reopened |
| 2012-11-14 15:26 | ruslan | Note Edited: 0000971 | View Revisions |
| 2012-11-17 22:08 | barry | Note Added: 0000974 | |
| 2012-11-18 20:29 | ruslan | Note Added: 0000976 | |
| 2012-11-18 20:29 | ruslan | Status | feedback => assigned |
| 2012-11-18 21:03 | barry | Note Added: 0000979 | |
| 2012-11-18 22:24 | ruslan | Note Added: 0000980 | |
| 2012-11-18 23:07 | barry | Note Added: 0000981 | |
| 2012-11-18 23:09 | barry | Note Added: 0000982 | |
| 2012-11-19 13:17 | ruslan | Note Added: 0000989 | |
| 2012-11-19 13:18 | ruslan | Note Edited: 0000989 | View Revisions |
| 2012-11-19 13:18 | ruslan | Note Added: 0000990 | |
| 2012-11-20 17:59 | barry | Note Added: 0001003 | |
| 2012-11-20 18:03 | ruslan | Note Added: 0001004 | |
| 2012-11-20 18:04 | barry | Note Added: 0001005 | |
| 2012-11-20 18:04 | barry | Status | assigned => resolved |
| 2012-11-20 18:04 | barry | Resolution | reopened => fixed |
| 2012-11-20 19:42 | barry | Note Added: 0001006 | |
| 2012-11-20 19:44 | barry | Note Added: 0001007 | |
| 2012-11-21 16:25 | ruslan | Note Added: 0001019 | |
| 2012-11-21 16:25 | ruslan | Status | resolved => feedback |
| 2012-11-21 16:25 | ruslan | Resolution | fixed => reopened |
| 2012-11-28 10:27 | ruslan | Status | feedback => resolved |
| 2012-11-28 10:27 | ruslan | Resolution | reopened => fixed |
| 2012-12-07 11:43 | ruslan | Status | resolved => closed |