|
Поиск (снова)
|
|||
---|---|---|---|
#18+
привет всем -я новичок так, что не ругайте Искал я сдесь на форуме (ответы на тему "поиск" но они меня не удовлетворили). а теперь вопрос есть база SAD.DBF И поля dr(nr),fam(c) как мне сделать на форме, точнее организовать его по полю fam 1-есть форма - "Form1", на форме есть listbox -"list1", в свойствах кейпрес на листбоксе мне нужно организовать поиск по буквам, т.е. при вводе буквы "П" все записи которые начинаются в базе на букву "П" остовались далее при нажатии буквы "е" - оставались записи "ПЕ" - и. т.д. я знаю, что в wizarde ЕСТЬ ПРИМЕРЫ и там поиск организован по анг.словам - думал перенести поиск на свою форма не получается ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2003, 10:48 |
|
Поиск (снова)
|
|||
---|---|---|---|
#18+
Мало чего понял, но можно сделать через select Код: plaintext 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2003, 11:05 |
|
Поиск (снова)
|
|||
---|---|---|---|
#18+
вопрос к nnn - а как мне сделать паузу т.е. интервал между нажатием буквы следующей после найденного, а то я при нажитии первой буквы он выводит фамилию первую в найденной и есля я ввожу буквы с паузой он перескакивает на букву которую я ввожу вторую. и еще вопрос а почему этот код не оставляет в листбоксе те фамилии которые остались а просто перескаакивает на ту записть которая соответствует условию.? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2003, 11:36 |
|
Поиск (снова)
|
|||
---|---|---|---|
#18+
Точный код написать не могу т.к. зависит от св-в ListBox'a. Можно Примерно Так: PROC KeyPress LPARAMETERS nKeyCode, nShiftAltCtrl LOCAL lcSearch lcSearch='' DO WHILE BETWEEN(nKeyCode,224,255) && lcSearch=lcSearch+CHR(nKeyCode) && Можно предусмотреть нажатие BackSpace LOCATE FOR ..., SEEK(),INDEXSEEK() - ищем подходящую строку в зав-ти от источника данных, наличия индексов Меняем значения ListBox'a - перемещяем на нужную строку nKeyCode=INKEY(0.5) && Интервал Ожидания Нажатия Клавы ENDDO ENDPROC ИМХО Для табличных данных лутше использовать Грид ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2003, 14:08 |
|
Поиск (снова)
|
|||
---|---|---|---|
#18+
>LOCATE FOR ..., SEEK(),INDEXSEEK() - ищем подходящую строку в зав-ти от источника данных, наличия индексов Извиняюсь. Не обратил внимания что нужна выборка. Конечно же SELECT... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2003, 14:17 |
|
Поиск (снова)
|
|||
---|---|---|---|
#18+
2Гриша Прыжки проиходят из-за того, что при нажатии клавиши происходит переход на элемент, с соотвествующей первой буквой. В принципе, это должно включаться/отключаться через свойство IncrementalSearch (see help for more info) Честно говоря, я не проверил пред. код. След. код у меня работает, предварительно для ListBox установлено. Обрати внимаение на NODEFAULT, он отменяет действие по умолчанию, т.е. эти самые 'прыжки'. .RowSourceType= 3 .RowSource='select fam from sad into cursor temp order by fam' Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2003, 14:37 |
|
Поиск (снова)
|
|||
---|---|---|---|
#18+
СПАСИБО ВСЕМ КТО ОТВЕТИЛ ПОЛУЧИЛОСЬ - ВОПРОСИК ТАКОЙ А ТЕПЕРЬ КАК МОЖНО МНЕ СДЕЛАТЬ: ЧТО БЫ ДВОЙНЫМ ЩЕЛЧКОМ Я ПЕРЕДОДИЛ В СОЗДАННУЮ ФОРМУ И ЭТА ЗАПИСЬ БЫЛА БЫ НА ФОРМЕ? Я ДУМАЮ МОЖЕТ В МЕТОДЕ DOUBLEKEY прописать путь на форму? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2003, 08:53 |
|
Поиск (снова)
|
|||
---|---|---|---|
#18+
>вопрос к nnn - а как мне сделать паузу т.е. интервал между нажатием буквы >следующей после найденного, а то я при нажитии первой буквы он выводит >фамилию первую в найденной и есля я ввожу буквы с паузой он .... Скорость обработки можно притормозить так. В gotfocus() ставим системной переменной _dblclick=2.5 в LostFocus() возвращаем зн. по умолчанию _dblclick=0.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2003, 09:20 |
|
Поиск (снова)
|
|||
---|---|---|---|
#18+
2Гриша Ты хочешь, чтобы по двойному щелчку на листбоксе открывалась новая форма? Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2003, 10:36 |
|
Поиск (снова)
|
|||
---|---|---|---|
#18+
что то я вообще запутался -- ???? ставлю последний код в свойства кей пресс при начатии буквы листбокс становится пустым - я неверное что то не то делаю? заранне поставил в RowSourceType= 3 RowSource='select fam from sad into cursor temp order by fam' ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2003, 11:23 |
|
Поиск (снова)
|
|||
---|---|---|---|
#18+
2Гриша > ставлю последний код в свойства кей пресс при начатии буквы листбокс становится пустым - я неверное что то не то делаю? Просто ты наверное вводишь строчную букву, а фамилия у тебя начинается с прописной, вот он ничего ине находит. Попробуй так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2003, 11:38 |
|
Поиск (снова)
|
|||
---|---|---|---|
#18+
Спасибо получилось , но при нажатии на каждую букву "этот код требует чтобы я открывал каждый раз базу sad" т.е. я ставлю букву п у меня выскакивает сообщение "open" И Я ДОЛЖЕН ОТКРЫТЬ ЭТОТ ФАЙЛ А КОГДА Я СТАВЛЮ ВТОРУЮ БУКВУ Т.Е. ПОСЛЕ "П", "Е" - ПРОГРАММА СПРАШИВАЕТ МЕНЯ ОТКРЫТЬ SAD - 2 РАЗА ? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2003, 11:51 |
|
Поиск (снова)
|
|||
---|---|---|---|
#18+
2Гриша Дык надо было открыт таблицу за ранее. Что-то типа: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2003, 11:57 |
|
Поиск (снова)
|
|||
---|---|---|---|
#18+
ПОЛУЧИЛОСЬ ПОЛУЧИЛОСЬ - СПАСИБО ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2003, 12:54 |
|
Поиск (снова)
|
|||
---|---|---|---|
#18+
Ты хочешь, чтобы по двойному щелчку на листбоксе открывалась новая форма? *!* ListBox.DblClick do form NewForm with this.value *!* NewForm.Init lparameters cParam this.Caption=cParam ************************************** НО ПРИ ЗАПУСКЕ НОВОЙ ФОРМЫ ТОЛЬКО НАДПИСЬ ОКНА ОСТАЕТСЯ, А ЗНАЧЕНИЕ В НОВОЙ ФОРМЕ В ТЕХBOX-а высвечиваются первые по записи в базе. а как мне перенисти найденное значение в текстбокс? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2003, 13:31 |
|
Поиск (снова)
|
|||
---|---|---|---|
#18+
ПОМОЩЬ ЕЩЕ НУЖНА!!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2003, 15:16 |
|
Поиск (снова)
|
|||
---|---|---|---|
#18+
2Гриша Если у тебя во втрой форме контролы привязаны к таблице sad, то можно просто переместить указатель в этой таблице. Можно несколько наводящих вопросов? 1. Какая версия vfp? 2. Во второй форме кроме поля fam что-нибудь еще выводится/редактируется? 3. Поле dr уникально? 4. Какие есть индексы? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2003, 15:43 |
|
Поиск (снова)
|
|||
---|---|---|---|
#18+
Если у тебя во втрой форме контролы привязаны к таблице sad, то можно просто переместить указатель в этой таблице. ВОПРОС А КАК ПЕРЕТАЩИТЬ? - "УКАЗАТЕЛЬ" Можно несколько наводящих вопросов? 1. Какая версия vfp? - 8 ЕСТЬ ТАК ЖЕ 6 2. Во второй форме кроме поля fam что-нибудь еще выводится/редактируется? - ДА 3. Поле dr уникально? ДА - 4. Какие есть индексы? ИНДЕКС ПО DR И ПО FAM - REGUL ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2003, 16:49 |
|
Поиск (снова)
|
|||
---|---|---|---|
#18+
Понятнее. Прежде всего нужно измениеть выражение select для rowsource, добавив поле dr (оно не будет выводиться в ListBox, но по нему можно будет ориентироваться) для всех случаев: this.RowSource='select fam from sad, dr into cursor temp order by fam' Перейти к нужной записи в этом случае можно будет с помощью INDEXSEEK(): Код: plaintext 1. 2.
Параметры в этом случае не нужны. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2003, 17:06 |
|
Поиск (снова)
|
|||
---|---|---|---|
#18+
Здравствуйте Прежде всего нужно измениеть выражение select для rowsource, добавив поле dr - сделал this.RowSource='select fam from sad, dr into cursor temp order by fam' Перейти к нужной записи в этом случае можно будет с помощью INDEXSEEK(): но теперь когда я перехожу в выбранную форму - пишет ошибка "Data tupe is invaild for this property" - я не пой му что оно означает - тип дата поврежденный для этого выражения? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2003, 08:40 |
|
Поиск (снова)
|
|||
---|---|---|---|
#18+
2Гриша А на чем спотыкается, в какой строке ошибка? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2003, 14:43 |
|
Поиск (снова)
|
|||
---|---|---|---|
#18+
Здравствуй NNN ПРИ ЗАПУСКЕ ФОРМЫ ПОИСК - МОЖНО Я СКИНУ ТЕБЕ НА ТВОЙ АДРЕС ДВЕ ФОРМЫ И БАЗУ И ТЫ ПОСМОТРИШЬ? РАЗМЕР 44 КБ ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2003, 14:54 |
|
Поиск (снова)
|
|||
---|---|---|---|
#18+
np. top_axe@hotmail.com ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2003, 15:07 |
|
|
start [/forum/topic.php?fid=41&msg=32271118&tid=1587267]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 314ms |
total: | 460ms |
0 / 0 |