|
Поиск по нескольким символам в DDDW
|
|||
---|---|---|---|
#18+
Поиск по нескольким символам в стандартном DDDW осуществляется, если набирать эти символы достаточно быстро. При медленном наборе поиск осуществляется по одному символу. Подскажите, пожалуйста, можно ли как-то повлиять на это время? Или придется свое окно с поиском подставлять в событии pbm_dwndropdown? Заранее спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2006, 15:40 |
|
Поиск по нескольким символам в DDDW
|
|||
---|---|---|---|
#18+
DDDW рисуется через стандартный системный LISTBOX. И таймаут между кнопками, чтобы они обработались как группа, задается глобально для всей ОС. Так что проще всего рисовать собственное окошко на pbm_dwndropdown. Лично я, последнее время, стандартные dddw использую только если количество строк в dddw не превышает десятка и никогда не меняется. Для больших списков всегда рисую собственное окошко. Удобнее получается :) --- http://www.rusug.ru] Портал русскоязычной группы пользователей Sybase ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2006, 18:17 |
|
Поиск по нескольким символам в DDDW
|
|||
---|---|---|---|
#18+
проще ли? дело вкуса. см. PFC dropdown search service. n_cst_dwsrv_dropdownsearch. в двух словах обработка на editchanged и itemchanged поиск подходящего значения в dddw SetText + SelectText. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2006, 18:56 |
|
Поиск по нескольким символам в DDDW
|
|||
---|---|---|---|
#18+
ls_searchtext = data li_searchtextlen = Len (ls_searchtext) ls_dddw_displaycol = dwo.dddw.displaycolumn ls_findexp = "Lower (Left (" + ls_dddw_displaycol + ", " + & String (li_searchtextlen) + ")) = '" + Lower (ls_searchtext) + "'" ll_dddw_rowcount = dwc.rowcount() ll_findrow = dwc.Find (ls_findexp, 0, ll_dddw_rowcount) // Determine if a match was found on the dddw. lb_matchfound = (ll_findrow > 0) Примерно так // Set the found text if found on the dddw. if lb_matchfound then // Get the text found. ls_foundtext = dwc.GetItemString (& ll_findrow, ls_dddw_displaycol) End If // For either dddw or ddlb, check if a match was found. If lb_matchfound Then // Set the text. post SetText (ls_foundtext) // Determine what to highlight or where to move the cursor.. if li_searchtextlen = len(ls_foundtext) THEN // Move the cursor to the end post SelectText (Len (ls_foundtext)+1, 0) else // Hightlight the portion the user has not actually typed. post SelectText (li_searchtextlen + 1, Len (ls_foundtext)) end if end if ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2006, 08:44 |
|
Поиск по нескольким символам в DDDW
|
|||
---|---|---|---|
#18+
Спасибо за подробный ответ! Экспериментирую. Подскажите еще, пожалуйста, как в itemchanged получить набираемую подстроку(текст), т.к. параметр data возвращает хранящийся в поле dddw идентификатор. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2006, 11:21 |
|
Поиск по нескольким символам в DDDW
|
|||
---|---|---|---|
#18+
Уважаемый Spas2001, прошу Вашей помощи по скрипту! В событии itemchanged в параметре data получаю код строки с набираемыми символами, а не сами набираемые символы (ls_searchtext = data). (Т.е. получаю значение из datacolumn, а не из displaycolumn.) Соответсвенно и определяется не кол-во набранных символов, а длина кода (li_searchtextlen = Len (ls_searchtext)). Подскажите, пожалуйста, как получить значение (набор символов) для дальнейшего поиска в displaycolumn. заранее спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2007, 15:57 |
|
Поиск по нескольким символам в DDDW
|
|||
---|---|---|---|
#18+
Воспользуйтесь функцией Find И еще одно замечание - это вставляется в editchanged ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2007, 16:10 |
|
Поиск по нескольким символам в DDDW
|
|||
---|---|---|---|
#18+
Spas2001, спасибо! В editchanged все работает! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2007, 16:10 |
|
Поиск по нескольким символам в DDDW
|
|||
---|---|---|---|
#18+
ПБ 10.2.1 - 9914 скрипт юзера spas2001 пробовал использовать, но обнаружил в нем один недостаток - все хорошо находится, но childdw выпадающий не прокручивается до найденной строки. Тогда по этому рецепту: http://manuals.sybase.com/onlinebooks/group-pb/pbg0900e/pfcug/@Generic__BookTextView/4819;pt=4572;lang=ru попробовал настроить поиск, оказалось, что он прокручивает выпадающий список до нужной строки, но в самой строке поиска добавленная часть текста не выделяется и в итоге при вводе второго символа в строку он просто вставляется между первым введенным и добавленной ранее строкой, и , естесственно, ничего не находит. Подскажите, плиз, в чем может быть дело и есть ли в этом ПФЦ-сервисе в 10 версии ошибка, в 7-ой версии ПБ я этот сервис использовал и все работало нормально. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2009, 11:26 |
|
Поиск по нескольким символам в DDDW
|
|||
---|---|---|---|
#18+
spas2001ls_searchtext = data li_searchtextlen = Len (ls_searchtext) .... спасибо за идею, надоели PFC немног переписал и вот что получилось, может кому и пригодится... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2009, 14:36 |
|
|
start [/forum/topic.php?fid=15&fpage=30&tid=1336152]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 157ms |
0 / 0 |