View Issue Details

IDProjectCategoryView StatusLast Update
0000390ПроизводствоGeneralpublic2012-12-07 11:43
Reporterruslan Assigned Tobarry  
PriorityhighSeverityfeatureReproducibilityalways
Status closedResolutionfixed 
PlatformКСАП ГранитOSWindows 
Summary0000390: +Производство - закладка Заказы - Панель "быстрого" фильтра
DescriptionНужно поле для ввода параметров поиска/универсального фильтра рядом с панелью инструментов(типа, как поиск по Номеру в Складе в Заказах).
1. Фильтрация должна происходить по любому из полей таблицы мастер(Заказы)и изделия в Заказе(детайл), по щелчку допустим на колонке меняется категория поиска.
2. Категория поиска должна запоминаться и при повторном входе в модуль подсвечиваться рядом с полем поиска и искать по той категории, с которой был завершен модуль.
3. Поиск не должен зависеть от сортировки.
Возможно реализовать такую функциональность?
TagsNo tags attached.

Relationships

related to 0000391 closedbarry +Производство - закладка Заказы - колонка с полем ИД в список Заказов 

Activities

barry

2012-09-26 10:11

administrator   ~0000854

Что такое "категория поиска"? Я ничего не понял.

ruslan

2012-09-26 15:25

manager   ~0000856

Категория поиска - это поле по которому осуществляется поиск.
 Идея какая - организовать поле для Поиска - ввод тестовых символов(или правильней сказать фильтра, т.к. вариант поиска перемещением курсора в некоторых случаях думаю будет проблематично реализовать). В панели инструментов над окном Заказы(например дальше кнопок или как-то ниже его разместить), чтоб можно было искать по любому полю в гриде Заказов и Изделий в заказе. Менять поле поиска щелчком на соответствующей колонке грида(как поиск в Товара в наличии), но не только на гриде Заказов, но и на гриде Изделия в Заказе.

barry

2012-11-08 10:07

administrator   ~0000923

Ну для разных гридов по крайней мере два отдельных поля надо, иначе непонятно в каком гриде хотят искать. Для изделий видимо панель над списком изделий - с полем поиска.

ruslan

2012-11-08 11:07

manager   ~0000927

Нет, идея именно в ЕДИНОМ окне для ввода параметров, для идентификации Грида можно использовать в названии поля признак. Например, "Заказ:ID", "Заказ:Номер", "Изделия:IDGDS", "Изделия:Наименование"

barry

2012-11-08 17:59

administrator   ~0000938

Можно в принципе и так, т.е. ты хочешь чтобы поле поиска идентифировалось по последней сортировке. Я имел ввиду не только интерфейсное отображение где будет искать, но и как просто и понятно указать где мы хотим искать. Без объяснений никто не догадается сам, что чтобы искать по такому-то полю - нужно отсортировать по нему.

barry

2012-11-08 18:07

administrator   ~0000939

И что значит "поиск не должен зависеть от сортировки", если мы сортировкой активируем соотв. поле для поиска.

ruslan

2012-11-08 18:21

manager   ~0000940

В том смысле, что не давно помнишь, когда мы делали аналогичную фичу для формы накладной выписанной из заказа для добавления поз. в накладную, ты мне заявил, когда Поиск по непонятным мне причинам не работал, что Поиск зависит от сортировки, и типа что он работает только при определенной сортировке, типа от А к Я а наоборот - нет. Так вот такого эффекта быть не должно, какая бы сортировка в поле не была - Поиск должен работать.

ruslan

2012-11-08 18:27

manager   ~0000942

Цитата:
"Можно в принципе и так, т.е. ты хочешь чтобы поле поиска идентифировалось по последней сортировке. Я имел ввиду не только интерфейсное отображение где будет искать, но и как просто и понятно указать где мы хотим искать. Без объяснений никто не догадается сам, что чтобы искать по такому-то полю - нужно отсортировать по нему."
Ну активация поиска по колонке - в Граните одинаковая - Щелчок на колонке для смены Поля для поиска... думаю пользователи будут работать с этим единообразно и вопросов не будет, то что происходит сортировка в данном случае для пользователя просто побочный эффект.

barry

2012-11-08 18:42

administrator   ~0000943

Фильтровка от сортировки по идее не зависит. Все зависит от конкретных датасетов, там по моему в TMemoryTable не то какие-то косяки, не то ограничения в этом плане.
А в целом когда накладывается куча всяких извратных требований к датасету (перерасчеты, взаимных перемещения), Обеспечить работу всего этого во всех аспектах бывает весьма проблемно

barry

2012-11-08 19:42

administrator   ~0000944

Ладно, я попробую поглубже поковыряться в компонентах на предмет более тесной увязки с гридом. В принципе это больше времени займет, чем местная увязка, но даст глобальное преимущество (если каменный цветок получится).

ruslan

2012-11-09 00:21

manager   ~0000945

Last edited: 2012-11-09 00:22

View 2 revisions

Борь, ты б пока сделал поле для Поиска без глобального перывания компонент... путь бы пока так работало, хотя б по гриду Заказы... а то там часто путаница бывает с Заказами на призводстве а так по штрих-коду ИД сканером искать заказы для печатников легче было бы...

barry

2012-11-09 14:10

administrator   ~0000946

Везде одно и то же.

barry

2012-11-09 14:11

administrator   ~0000947

work32.zip
поюзать

ruslan

2012-11-09 16:12

manager  

ruslan

2012-11-09 16:13

manager  

ruslan

2012-11-09 16:14

manager   ~0000948

По ИД не ищет :-( ищет из всего списка полей только по номеру...

barry

2012-11-12 20:49

administrator   ~0000970

work32.zip

ruslan

2012-11-14 15:24

manager   ~0000971

Last edited: 2012-11-14 15:26

View 2 revisions

Сделай поиск в поле Поиска не зависимым от списка в гриде, т.е. чтоб Поиск работал по всем заказам по-умолчанию и не надо было бы сбрасывать фильтр постоянно. Как поиск по Номеру в складских Заказах

barry

2012-11-17 22:08

administrator   ~0000974

Ничего не понял. Только по заказам чтобы работал, по изделиям не надо?

ruslan

2012-11-18 20:29

manager   ~0000976

Фильтр(поиск) должен работать ТОЛЬКО по производственным Заказам, если в качестве поля для поиска будет одно из полей - Изделия в Заказе, то соответственно должны отбираться Заказы, где встречается значение этого поля. И поиск должен не зависеть от встроенного фильтра по дате, от значения Фильтра, который в данный момент наложен на список..., т.е. поиск должен осуществляться по ВСЕМУ списку Заказов.

barry

2012-11-18 21:03

administrator   ~0000979

Так а чего ты сразу это не написал, и не сказал когда был... это все переделывать.

ruslan

2012-11-18 22:24

manager   ~0000980

Да, это уточнение я не описал..нигде хотя именно про поиск(фильтрацию) производственных Заказов писал :-(

barry

2012-11-18 23:07

administrator   ~0000981

work32.zip

barry

2012-11-18 23:09

administrator   ~0000982

хорошо написал... значит я не нашел

ruslan

2012-11-19 13:17

manager   ~0000989

Last edited: 2012-11-19 13:18

View 2 revisions

При попытке искать по полю 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 Производство: Твин-Друк ЗАО ПП (ТВИН-ДРУК АО ПП) [Администратор Системы]

ruslan

2012-11-19 13:18

manager   ~0000990

И еще маленькое уточнение...поиск должен происходить в контексте Складов к которым у текущего пользователя есть доступ... я смотрю там у тебя есть left join с таблицей UserStor...однако, почему left?

barry

2012-11-20 17:59

administrator   ~0001003

Ты закрывал задачу по доступу:
http://barry.exp-host.ru/tracker/view.php?id=210
Следовательно это работало, ну и следовательно ты заказал по каким-то причинам чтоб показывало все, я бы просто так JOIN на LEFT JOIN не менял.
Мне неохота перерывать произв. задачи - ищи и вспоминай сам...

ruslan

2012-11-20 18:03

manager   ~0001004

В 976 комментарии к этой задаче есть действительно фраза "И поиск должен не зависеть от встроенного фильтра по дате, от значения Фильтра, который в данный момент наложен на список..., т.е. поиск должен осуществляться по ВСЕМУ списку Заказов."... я не сделал уточнение, что по всему списку заказов, к которому есть доступ у пользователя в контексте доступа по Складам.. иначе противоречие с правами получиться, а это не к чему.

barry

2012-11-20 18:04

administrator   ~0001005

work32.zip
SZGDSID

barry

2012-11-20 19:42

administrator   ~0001006

Ну склад в заказе не обязателен. И раньше там доступ был, потом я отключал по твоей просьбе, ты даже это чем-то мотивировал, но я не помню чем.

barry

2012-11-20 19:44

administrator   ~0001007

И ты уверен что он не работает?
...and (Z.Stor is Null OR US.ID is Not Null)

ruslan

2012-11-21 16:25

manager   ~0001019

Убери пожалуйста форму сообщения с запросом, которую ты выводил для отладки
---------------------------
Производство
---------------------------
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
---------------------------

Issue History

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