Download the free trial version
Basic4android Video
Features
Tutorials and manuals
Showcase
Screenshots

Go Back   Android Development Forum - Basic4android > Foreign Languages > Other languages > Russian Forum
Documentation Wiki Register Members List B4P Search Today's Posts Mark Forums Read

как сделать контекстный поиск?

Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 11-16-2008, 03:33 PM
Newbie
 
Join Date: Nov 2008
Posts: 7
Default как сделать контекстный поиск?

нужно что-то типа такого:
есть таблица. в ней есть колонка "артикул".
и есть поле ввода. Я в нем начинаю вводить артикул, а ниже мне уже должны предлагаться все варианты строк из таблицы, артикул которых начинается на введенные символы. во как. кто знает как это реализовать?

Last edited by vendim : 11-16-2008 at 03:39 PM.
Reply With Quote
  #2 (permalink)  
Old 11-17-2008, 11:54 AM
Newbie
 
Join Date: Nov 2008
Posts: 6
Default

Событие keypress, на текстовом поле, сорт таблицы по указанной колоки с указанным ключем в текстовом поле.
Reply With Quote
  #3 (permalink)  
Old 11-17-2008, 06:40 PM
Newbie
 
Join Date: Nov 2008
Posts: 7
Default

Quote:
Originally Posted by AlexSVC View Post
Событие keypress, на текстовом поле, сорт таблицы по указанной колоки с указанным ключем в текстовом поле.
Спасибо, щаз омсмыслю и прапробою.

А не. Не совсем то что хотелось... бы.

Хочется чтобы под TextBox-ом выпадал ниспадающий список вариантов (че-то типа ListBox-а), а таблица при этом оставалась бы неизменной. Так смогем?

Last edited by vendim : 11-17-2008 at 06:46 PM.
Reply With Quote
  #4 (permalink)  
Old 11-18-2008, 09:46 AM
Newbie
 
Join Date: Nov 2008
Posts: 6
Default

Можно, тока я так не пробывал
На пальцах так:
Копия исходной таблицы с одной колонкой которую будеш выбирать (как и прошлый раз сорт и т.д.), и эта таблица становится видимой только когда нада (т.е. когда в клацать буквы будеш). Исчезать ее можно по таймеру.
Reply With Quote
  #5 (permalink)  
Old 11-18-2008, 05:58 PM
Newbie
 
Join Date: Nov 2008
Posts: 7
Default

[quote=... сорт таблицы по указанной колоки с указанным ключем в текстовом поле.[/QUOTE]

А это как?
Знаю типа:
TableSort("Артикул ASC")

или

TableSort("Артикул DESC")

а вот как предлагается это как?
Reply With Quote
  #6 (permalink)  
Old 11-19-2008, 01:41 AM
Junior Member
 
Join Date: Nov 2008
Posts: 10
Default

Quote:
Originally Posted by vendim View Post
нужно что-то типа такого:
есть таблица. в ней есть колонка "артикул".
и есть поле ввода. Я в нем начинаю вводить артикул, а ниже мне уже должны предлагаться все варианты строк из таблицы, артикул которых начинается на введенные символы. во как. кто знает как это реализовать?
Попробуй повесить обработку запроса на событие MouseUp
*** тут я был категорически не прав...

Last edited by Pavel : 11-20-2008 at 01:53 AM.
Reply With Quote
  #7 (permalink)  
Old 11-19-2008, 11:52 AM
Newbie
 
Join Date: Nov 2008
Posts: 6
Default

Quote:
Originally Posted by vendim View Post
А это как?
Знаю типа:
TableSort("Артикул ASC")

или

TableSort("Артикул DESC")

а вот как предлагается это как?
Sub TextBox1_KeyPress (key)
Table2.TableSort(TextBox1.Text&" DESC")
End Sub
Reply With Quote
  #8 (permalink)  
Old 11-19-2008, 07:32 PM
Newbie
 
Join Date: Nov 2008
Posts: 7
Default

Судя по хелпу аргументом в TableSort("... ASC") может быть только имя колонки таблицы. Да и интерпретатор на предложенную конструкцию ругается. Не поинмаю как туда можно впихнуть свойство .Text другого объекта.
Reply With Quote
  #9 (permalink)  
Old 11-20-2008, 02:04 AM
Junior Member
 
Join Date: Nov 2008
Posts: 10
Default

Решение есть... правда не через TableSort, а через Filter: Table1.Filter ("colFirstName LIKE '*hn')
Для проверки я взял пример из поставки Table.sbp
добавил к форме TextBox3

Неприятная сторона события TextBox.KeyPress(key) заключается в том, что событие происходит до того, как вновь введенный символ присоеденится к содержимому бокса... т.е. если TextBox.Text = "ABC", то после введения символа "D", TextBox.Text = "ABC"

Приходится позаботиться о присоединении введенного символа:

Sub TextBox3_KeyPress (key)
key=TextBox3.Text & key
key="Column1 LIKE '*" & key &"*'"
Table1.Filter(key)
End Sub

для возможности выбора нужного столбца в глобал объявил переменную fc, а в процедуре:

Sub Table1_SelectionChanged (ColName, Row)
fc=ColName
End Sub

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

Sub TextBox3_KeyPress (key)
If Asc(key)<=31 Then
key=TextBox3.Text
Else
key=TextBox3.Text & key
End If
key=fc &" LIKE '*" & key &"*'"
Table1.Filter(key)
End Sub

Last edited by Pavel : 11-20-2008 at 01:34 PM.
Reply With Quote
  #10 (permalink)  
Old 11-23-2008, 06:05 AM
Newbie
 
Join Date: Nov 2008
Posts: 7
Default Спасибо!

Спасибо! Не только работает, но и с фильтрами получилось, я бы сказал, довольно просто и элегантно.
Есть еще вопрос, но лучше я его вынесу в отдельную ветку.
Еще раз спасибо
Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are On


All times are GMT. The time now is 02:53 AM.


Powered by vBulletin® Version 3.6.12
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0