|
|
|
TcxGridTableView + FindPanel
|
|||
|---|---|---|---|
|
#18+
Добрый день. Для работы с различными справочниками используется TcxGridTableView (не путать с TcxGridDBTableView), пользователи используют FindPanel, радует то что поиск можно сказать по всем полям. Есть справочники, где записей в них исчисляется десятками тысяч. Когда происходит открытие таких справочников может растягиваться на 10 и более секунд... не шибко "красиво" стало в плане скорости открытия. На данный момент, чтоб много не переделывать, можно открывать такие справочники не закачивая данные, далее пользователь вводит в FindPanel несколько интересующих символов, и тут вопрос: Как правильно отловить событие прекращения ввода символов в FindPanel, после которого происходит поиск? Если такое событие есть, далее при обработки события "закачаю данные" в TcxGridTableView, которые будут удовлетворять данному поиску... далее чем больше букв вводит пользователь тем точнее поиск. Есть у кого какие мысли на этот счёт, очень буду благодарен! Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2019, 16:34 |
|
||
|
TcxGridTableView + FindPanel
|
|||
|---|---|---|---|
|
#18+
Использую версию DevExpress: 18.2 Подключение к БД через FireDAC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2019, 16:35 |
|
||
|
TcxGridTableView + FindPanel
|
|||
|---|---|---|---|
|
#18+
Игорь_UUSпоиск можно сказать по всем полямИгорь_UUS"закачаю данные" в TcxGridTableView, которые будут удовлетворять данному поиску... прямо так Код: plsql 1. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2019, 19:22 |
|
||
|
TcxGridTableView + FindPanel
|
|||
|---|---|---|---|
|
#18+
Игорь_UUS, Так себе решение как мне кажется, понятно что можно извращаться с таймером или OnIdle, но мне кажется само решение автоматически производить поиск при нажатиях клавиш не совсем адекватно в данном случае. Сделайте в лоб, пользователь водит что хочет найти, нажал Enter и вы загрузили данные, привычное поведение стандартных контролов. У вас же все таки десктоп, а не веб, и пользователь будет ожидать обычного для программы поведения. Ваш вариант это скорее поведение контролов в браузере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2019, 20:06 |
|
||
|
TcxGridTableView + FindPanel
|
|||
|---|---|---|---|
|
#18+
Игорь_UUS... ... На данный момент, чтоб много не переделывать, можно открывать такие справочники не закачивая данные, далее пользователь вводит в FindPanel несколько интересующих симв олов, и тут вопрос: Как правильно отловить событие прекращения ввода символов в FindPanel, после которого происходит поиск? Если такое событие есть, далее при обработки события "закачаю данные" в TcxGridTableView, которые будут удовлетворять данному поиску... далее чем больше букв вводит пользователь тем точнее поиск. ... То есть, пока юзер не начал вводить - ничего не доступно? А как ввел хотя бы "а", и затем пауза - сразу все записи, где есть "а"? А потом, по мере ввода, количество записей должно уменьшаться? Намного ли это лучше поведения по умолчанию? Я делал так: сперва ничего нет. Пока юзер не введет запрос в спецпанели панели и не нажмет "хочу". Если он хочет "всё сразу" - то и фик с ним, сам запросил, вот сиди и жди, пока подгрузится. А если ввел "азбука пчеловодства" - то и получит только то, что хочет. И никаких пауз, просто ждем, пока не нажмет на "хочу". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2019, 21:47 |
|
||
|
TcxGridTableView + FindPanel
|
|||
|---|---|---|---|
|
#18+
ma1tusИгорь_UUSпоиск можно сказать по всем полямИгорь_UUS"закачаю данные" в TcxGridTableView, которые будут удовлетворять данному поиску... прямо так Код: plsql 1. ? В DevExpress, кстати, в GridMode не поддерживается FindPanel. Не желают такую дичь громоздить. There is no way to apply this feature to Grid Mode because Find Panel heavily uses the inner TcxGrid filtering capabilities that do not work in Grid Mode. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2019, 21:54 |
|
||
|
TcxGridTableView + FindPanel
|
|||
|---|---|---|---|
|
#18+
Игорь_UUS, если вопрос "как отловить событие" все еще в силе см. OnChanged свойства вью.DataController.Filter Только нафига тебе вообще FindPanel, если ты собираешься сразу отфильтрованные записи грузить. Разве что для подсветки совпадающих фрагментов. Но никто ведь не мешает забацать собственную панель. И по завершению ввода перезаливать данные в твой DataController. Вот тут пишут, как красиво подсвечивать найденные фрагменты: https://www.devexpress.com/Support/Center/Question/Details/K18311/how-to-highlight-found-words-in-cells ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2019, 22:18 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=62&tid=2039036]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 200ms |
| total: | 349ms |

| 0 / 0 |
