Возможности поиска в таблицах, списках и деревьях

Оглавление  Назад  Далее

Возможности поиска в таблицах и пример поиска описаны ниже.

В таблице есть следующие возможности:

фильтрация данных по колонкам;

сквозной поиск по всем видимым колонкам с фильтрацией или показом результатов;

быстрый поиск по выбранной колонки с вводом искомой строки с клавиатуры;

 

 Рассмотрим первый пример. Это форма поиска в БД АльфаЦЕНТР, пользователь набрал строку "100" для поиска. Поиск в БД производится по множеству критериев и в результате были найдены группы 1-го уровня, объекты и фидеры, которые содержали в номер или наименовании строку 100. Результат поиска показан ниже.

 

SearchExample0

Форма "Результаты поиска", поиск строки "100"

 

 Таблица с результатами поиска будет использоваться как пример для дальнейшего поиска в ней с целью уточнения результатов поиска. Далее нам необходимо уточнить поиск. Конечная цель - пользователю требуется найти только фидеры в конкретных объектах, имеющий номер, например, 101. В данном случае существует множество вариантов получения конечного результата в результате поиска, но мы рассматриваем таблицу с результатами поиска по строке "100" как пример для дальнейшего уточнения и поиска требуемого фидера. Рассмотрим следующую возможность таблицы - это фильтрация по колонкам. Эта возможность реализована аналогична фильтрам в MS Excel, т.е. необходимо мышкой в заголовке колонки вызвать фильтр - см. картинку ниже.

SearchExample_ShowFilter

Форма "Результаты поиска", вызов окна для выбора значений для фильтрации по выбранной колонке

 

 В появившемся окне необходимо выбрать те объекты, поиск фидеров в которых нас интересуют. Пусть это будут объекты 1001, 1004, 1006. После выбора наименований объектов выбранные значения для фильтра будут показаны внизу таблицы - см. картинку ниже, она показывает уже все дальнейшие наши действия. Таким образом таблица содержит только фидеры из выбранных объектов (сами объекты - свернутый узел "Тип результата: Объекты не рассматриваем. Чтобы его убрать достаточно отфильтровать по колонке "Тип результата").

 

SearchExample1

Форма "Результаты поиска", применены фильтры по колонке "Объект" и показ результатов поиска по строке "101" в режиме выделения найденного

 

 Далее необходимо найти фидер с номером 101. Существует множество вариантов это сделать:

изначально искать по строке 101 - сейчас не рассматриваем

отфильтровать по номеру фидера - фильтрацию по колонкам мы уже рассмотрели

сквозной поиск по всем видимым колонкам таблицы - рассмотрим ниже.

 Сквозной поиск по таблице производится по всем видимым колонкам таблицы. Вызов панели поиска для ввода строки для поиска производится нажатием клавиш Ctr-F или вызовом локального меню таблицы - правая кнопка мыши, например, на заголовке колонки, пункт меню "Панель поиска". При сквозном поиске найденные результаты могут быть показаны в двух вариантах:

показаны только строки, в которых было найдено искомое выражение - режим фильтрации. Т.е. в таблице дополнительно отфильтрованы только те строки, которые удовлетворяют найденной строке. Поиск производится по видимым колонкам по ранее отфильтрованным строкам. Результат показан ниже.

показаны все строки, но найденные результаты дополнительно посвечены в самой таблице, показано количество найденных строк и текущее положение фокуса среди найденных строк - режим подсветки результатов.

Переключение между режимами сквозного поиска производится через локальное меню таблицы, вызываемое правой кнопкой мыши. Пункт меню "Режим поиска - Поиск" и "Режим поиска - Фильтрация". Заголовок пункта меню показывает в какой режим будет произведено переключение при выборе пункта меню.

Нам необходимо переключиться в режим Поиск. После этого необходимо набрать в панели поиска строку 101 и будут подсвечены две строки, которые имеют строку 101 в какой-либо колонке - в данном случае это колонки "№ фидера", "Наименование фидера", "Диспетчерское наименование". Переходить по найденным результатам можно по кнопкам "∧" и "∨" - будет осуществлен переход на предыдущую/следующую найденную строку, если они не видны на экране, то они будут показаны.

 Таким образом в конечном результате мы имеем на экране найденные фидеры с номером 101.

Если же режим сквозного поиска установлен как фильтрация, то будут показаны только те строки, которые имеют искомую строку. Результат показан на рисунке ниже.

 

SearchExample2

Форма "Результаты поиска", применены фильтры по колонке "Объект" и показ результатов поиска по строке "103" в режиме фильтрации

 

 Режим сквозного поиска производит поиск по всем видимым колонкам. Если же необходимо произвести поиск по одной конкретной колонке, то этот вариант поиска называется быстрый поиск и производится следующим образом - см. картинку ниже.

 

SearchExample3

Форма "Результаты поиска", результаты быстрого поиска по строке "103"

 

 Для осуществления быстрого (или инкрементального поиска) необходима, чтобы колонка по которой будет производится поиск была видна в таблице. Далее необходимо выбрать требуемую колонку - это делается левой кнопкой мыши, достаточно кликнуть в любую ячейку требуемой колонки. Далее для начала поиска необходимо начать на клавиатуре набирать искомую строку, поиск начинается с текущей строки данных и производится вниз. Если искомая строка не найдена ниже текущей, то поиск производится с начала таблицы. По мере набора искомой строки таблица автоматически фокусируется на строке, которая удовлетворяет набранной искомой строке. Таким образом, по мере набора строки "103" сначала фокус перейдет на строку с номером фидера 100 - набрана строка "1", затем останется на этой же строке - набрана строка "10", затем перейдет на строку с номером 103 - набрана строка "103". Если искомых строк несколько, то переход между ними осуществляется по комбинации клавиш Ctrl-Стрелка Вверх и Ctrl-Стрелка Вниз.

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

 

Возможности поиска в деревьях и списках и пример поиска описаны ниже. Возможности поиска в дереве или списка практически полностью совпадают с поиском в таблице. Списки являются вырожденными деревьям, которые имеют только один уровень вложенности, поэтому средства поиска и фильтрации у них одинаковые.

В списке или дереве есть следующие возможности, совпадающие с поиском в таблице:

фильтрация данных по колонкам;

сквозной поиск по всем видимым колонкам с фильтрацией или показом результатов;

быстрый поиск по выбранной колонки с вводом искомой строки с клавиатуры;

 

 Рассмотрим пример поиска фидера или счетчика в форме "Удаление данных". Часть формы показана на рисунке ниже.

 

SearchTreeList0

Форма "Удаление данных", фильтрация и поиск не производились

 

 Как было сказано выше поиск и фильтрация производится по видимым колонкам. Управление видимостью колонок производится или через панель быстрого доступа - показана левым зеленым кругом (символ похожий на ≡) или через локальное меню (вызывается правой кнопкой мыши над заголовком колонки) и пункту меню "Настройка колонок". Формы по настройке колонок и вызове локального меню показаны ниже.

 

SearchTreeList_ShowColumnList

Форма "Удаление данных", вызов меню для управления видимостью колонок

 

SearchTreeList_ShowMenu

Форма "Удаление данных", вызов локального меню списка или дерева

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

 Предположим, что искомый(-ые) фидер(-ы)/счетчик(-и) находятся в известных нам объектах - это объекты и наименованием "Объект № 1001", "Объект "№ 1004" и "Объект № 1005". Отфильтруем все данные в дереве по колонке "Наименование объекта" по требуемым объектам - вызов фильтра и результат показаны на картинке ниже.

 

SearchTreeList_ShowFilter

Форма "Удаление данных", выбор наименования объектов для фильтрации по колонке "Объект"

 

 После выбора наименований объектов для фильтрации результирующий фильтр будет показан внизу дерева/списка. Далее нам необходимо найти фидер, например, с номером 103. Если мы не знаем номер фидера, а знаем наименование фидера, то все действия аналогичны, но производятся по колонке "Наименование фидера". Используем сквозной поиск для поиска фидера с номером 103. В зависимости от режима сквозного поиска (фильтрация или подсветка) будут показаны следующие результаты  - см. картинки ниже. Режим сквозного поиска переключается через локальное меню дерева/списка, вызываемое по правой кнопки мыши.

 

SearchTreeList_Find1

Форма "Удаление данных", результат сквозного поиска по строке 103, режим фильтрации

 

SearchTreeList_Find2

Форма "Удаление данных", результат сквозного поиска по строке 103, режим подсветки

 

 В режиме фильтрации показаны два фидера, которые имеют номер 103. Так же показаны их родительские элементы в дереве. В режиме подсветки результатов поиска показаны все элементы дерева, но найденные элементы подсвечены, показано их количество и текущий номер найденного элемента, переход между найденными элементам осуществляется по кнопкам "∧" и "∨" - будет осуществлен переход на предыдущую/следующую найденную строку, если строки не видны на экране, то они будут показаны.

 Режим сквозного поиска производит поиск по всем видимым колонкам. Если же необходимо произвести поиск по одной конкретной колонке, то этот вариант поиска называется быстрый поиск (инкрементальный) и производится следующим образом - см. картинку ниже.

 

SearchTreeList_IncSearch

Форма "Удаление данных", быстрый поиск по строке "103"

 

 Для осуществления быстрого (или инкрементального поиска) необходима, чтобы колонка по которой будет производится поиск была видна в дереве/списке. Далее необходимо выбрать требуемую колонку - это делается левой кнопкой мыши, достаточно кликнуть в любую ячейку требуемой колонки. Далее для начала поиска необходимо начать на клавиатуре набирать искомую строку, поиск начинается с текущей строки данных и производится вниз. Если искомая строка не найдена ниже текущей, то поиск производится с начала таблицы. По мере набора искомой строки дерево/список автоматически фокусируется на строке, которая удовлетворяет набранной искомой строке. Таким образом, по мере набора строки "103" сначала фокус перейдет на строку с номером фидера 100 - набрана строка "1", затем останется на этой же строке - набрана строка "10", затем перейдет на строку с номером 103 - набрана строка "103". Если искомых строк несколько, то переход между ними осуществляется по комбинации клавиш Ctrl-Стрелка Вверх и Ctrl-Стрелка Вниз.

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

 

 Настройки положения, видимости сортировки колонок, а так же их группировка (справедливо только для таблицы) автоматически сохраняются при закрытии формы и загружаются при открытии формы заново. Настройки фильтрации и сквозного поиска так же автоматически сохраняются и восстанавливаются. Сохраненные настройки могут быть удалены пользователем (закладка "Настройка", кнопка "Параметры приложения", выпадающее меню, пункт меню "Визуальные настройки" или "Параметры по умолчанию") или разработчиками в случае доработок таблиц/деревьев/списков, например, добавление новых колонок или удаление/изменение старых колонок.