Каким образом лучше реализовать работу с данными детали

На странице редактирования записи раздела A есть деталь Samples.
Для работы с данными этой детали на странице редактирования разработана специальная функциональность.
Добавлено строковое виртуальное поле [Sample ID] (скрин во вложении). Пользователь бипирует образец с нужным штрихкодом, который вносится в это поле, потом нажимает кнопку [Find sample] и выполняется некоторая функциональность по обработке образца с таким номером, если он найден на данной детали.
Проблема заключается в том, что иногда на детали очень много образцов и нужная запись не всегда находится 'на глазах' у пользователя. Если пользователь будет вручную её искать, то на это будет уходить много времени.
Решением такой проблемы может быть, например, чтобы при нажатии на кнопку [Find sample] накладывался фильтр по полю Sample детали.
При этом важно, чтобы фильтр тоже отображался визуально, аналогично тому, если бы пользователь установил его вручную!
Подскажите, пожалуйста, каким образом может быть реализована такая функциональность?
Также мне не очень нравится тот факт, что при нажатии на кнопку [Find sample] в базу будет идти +1 дополнительный запрос ко всем уже существующим.
Возможно, есть другие варианты решения этой задачи: чтобы изменяемая запись была перед глазами пользователя? Кто-то имел опыт разработки такой функциональности или, возможно, видит другие пути решения?

Прикрепленные файлы

Нравится

1 комментарий

1) В tools детали кладёте textEdit и кнопку. По желанию можно залепить всё это стилями для красоты.

2) По нажатию на кнопку делается reloadGridData()

3) В initQueryFilters считываете значение из поля, если есть пользователь ввел хоть что-то, в esq добавляете свой фильтр (допустим как я делал: по названию, тип сравнения CONTAINS)

Показать все комментарии