|
![]() |
#1 |
Administrator
|
В Вашей постановке вопроса, на самом деле можно, но долго программируя
![]() Чтобы ответить аргументировано, разобью Вашу задачу на две: 1. Вызов формы поиска, при нажатии Ctrl+F. 2. Обработка результатов ввода в форму поиска. 1 задача менее сложна, так как заключается только в том, чтобы добавить обработку определенной комбинации клавиш в метод task и изменение контекстного меню для конкретного контрола. Однако решить ее в общем случае невозможно (по крайней мере, сейчас я не готов предложить решение). Таким образом, это придется делать для каждой формы и для каждого поля, в котором Вы собираетесь организовывать поиск по значению display-метода. Кроме того, нужны будут некоторые модификации для формы SysFormSearch. 2ую задачу можно решать двумя способами. Первый (наиболее логичный и не всегда применимый) - разбирать значение, которое пришло из SysFormSearch, и на основании этого накладывать фильтр на физически существующие в системе поля. Очевидно, что это сделать можно далеко не всегда. И в каждом случае нужно будет делать свой разбор. Второй - создать временную таблицу с двумя полями: RecId в фильтруемой таблице и значение display-метода. При этом вам нужно будет каждый раз при обработке поиска заполнять эту таблицу для всех (!!!) строк фильтруемой таблицы. Далее, надо будет подсунуть временную таблицу в запрос. Ну и наконец, главная причина, по которой этого делать не стоит: Microsoft сейчас активно изменяет контролы на форме. В частности, в SP3 появилась возможность копировать в буфер обмена значения display-методов (кстати, можете предложить через буфер копировать значения в Excel и делать там Автофильтр ![]() P.S.: Если это настолько критично, добавьте в таблицу нормальное поле, которое будет инициализироваться с помощью display-метода в методах insert() и update() таблицы. Много нервов сэкономите ![]()
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|