|
|
|
Поиск записи
|
|||
|---|---|---|---|
|
#18+
FoxPro 6.0 Моя форма содержит всякие "text box"-ы, "combo box"-ы, вобщем я там созада кнопочку "Поиск" Код: plaintext 1. 2. 3. 4. 5. 6. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2005, 06:30:45 |
|
||
|
Поиск записи
|
|||
|---|---|---|---|
|
#18+
K_MariaFoxPro 6.0 Моя форма содержит всякие "text box"-ы, "combo box"-ы, вобщем я там созада кнопочку "Поиск" Код: plaintext 1. 2. 3. 4. 5. 6. Код: plaintext 1. 2. 3. Ну что же... Начнем обучение орфографии. Урок первый 1. Команда LOCATE ищет от начала до конца файла. Для того, чтобы найти последовательно все вхождения искомого значения, необходимо продолжить поиск командой CONTINUЕ. Т.е. имеем примерно такой код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Т.е. Код: plaintext 1. 2. 3. 4. 5. 6. 7. Т.е. Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2005, 07:16:32 |
|
||
|
Поиск записи
|
|||
|---|---|---|---|
|
#18+
Станислав C. 3. Чтобы искать запись при помощи SEEK необходимо иметь индекс по условию поиска. (Он может быть и неактивным в данный момент). Т.е. Код: plaintext 1. 2. 3. Поправка. Индекс должен быть активным (!)... Т.е. Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2005, 07:46:12 |
|
||
|
Поиск записи
|
|||
|---|---|---|---|
|
#18+
Станислав C. Поправка. Индекс должен быть активным (!)... Не обязательно! Для этого в команде seek есть допольнительные параметры: Код: plaintext 1. 2. Всеравно seek всегда находит первую запись, в данном случае locate предпочительнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2005, 08:59:15 |
|
||
|
Поиск записи
|
|||
|---|---|---|---|
|
#18+
Samvel Всеравно seek всегда находит первую запись, в данном случае locate предпочительнее. Так ведь у нас индекс! Тогда имеем следующий алгоритм: Находим первую запись. По skip переходим на следующую (по индексу!) запись. Таким образом, если записей с одинаковым индексным выражением несколько, то последовательными skip'ами (или в цикле scan - endscan) их все можно пройти... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2005, 09:55:00 |
|
||
|
Поиск записи
|
|||
|---|---|---|---|
|
#18+
спасибо вам, у меня вроде получилось, skip использовала, но я так подумала, что неудобно в использовании такой вариант, т.к. thisform.txtName надо постоянно затирать и вводить свой текст, теперь решила при нажатии кнопки запустиь форму poisk, где будет грид, отображающий все записи, отвечающие критерию. Но у меня опять ничего не получается, забиваю данные в cursor, а потом как заполнить этот грид? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2005, 10:12:12 |
|
||
|
Поиск записи
|
|||
|---|---|---|---|
|
#18+
K_Mariaспасибо вам, у меня вроде получилось, skip использовала, но я так подумала, что неудобно в использовании такой вариант, т.к. thisform.txtName надо постоянно затирать и вводить свой текст, теперь решила при нажатии кнопки запустиь форму poisk, где будет грид, отображающий все записи, отвечающие критерию. Но у меня опять ничего не получается, забиваю данные в cursor, а потом как заполнить этот грид? Select-SQL спасет Вас от головной боли... А затем (после получения курсора) все делается так же, как и при использовании таблицы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2005, 10:44:29 |
|
||
|
Поиск записи
|
|||
|---|---|---|---|
|
#18+
Я не использую SQL, пока для меня это слишком сложно, а вообще как бы в плане есть. Я сейчас сделала так, есить кнопка "поиск" Код: plaintext 1. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2005, 11:01:46 |
|
||
|
Поиск записи
|
|||
|---|---|---|---|
|
#18+
K_MariaЯ не использую SQL, пока для меня это слишком сложно, а вообще как бы в плане есть. Я сейчас сделала так, есить кнопка "поиск" Код: plaintext 1. Код: plaintext 1. 2. 1. Если Вы пишете в 6-м Фоксе, то надо обязательно (!) учить SQL - избавитесь от многих проблем в будущем. И легче будет осваивать SQL Server, Oracle, MySQL и т.д. 2. Фильтрация записей работает относительно "хорошо" (невидимо для пользователя) для небольших наборов данных (до 100-1000 записей). Дальше - начинаются жуткие тормоза, когда надо сидеть и гадать - зависла твоя программа или еще нет 3. По теме: при использовании переменной text_poisk в таком контексте она должна иметь глобальную область видимости (т.е. обязательно (!) должна быть объявлена как public !) 4. Может быть, где-то в форме prosm_res встречается команда clear events? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2005, 11:15:27 |
|
||
|
Поиск записи
|
|||
|---|---|---|---|
|
#18+
Станислав еще раз спасибо, в основной программе объявила переменную text_poisk , всё чики-пуки, и еще неплохо было бы освоить Ваш совет, но знаете многие вещи до меня туго доходят, вот вроде и Лису учу уже как 2 месяца, и проблемы совсем пустяковые самостоятельно не могу решить, хорошо, что есть форум. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2005, 11:41:26 |
|
||
|
Поиск записи
|
|||
|---|---|---|---|
|
#18+
SELECT katalog str_fltr=upper(alltrim(thisform.zakladka1.page2.txtname.value)) set filter to str_fltr$upper(alltrim(katalog.name)) thisform.refresh НО : 1. оператор Upper на некоторых русских символах работает некорректно 2. неоптимизируется, хотя работает довольно быстро... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2005, 15:25:46 |
|
||
|
Поиск записи
|
|||
|---|---|---|---|
|
#18+
gotko1. оператор Upper на некоторых русских символах работает некорректно Зависит от версии FoxPro, кодовой страницы файла DBF и факт наличия CONFIG.FPW со строкой CODEPAGE=... Т.е. это не ошибка собственно функции UPPER(), а конфликт использования нескольких кодовых страниц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2005, 15:51:12 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33339397&tid=1593182]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 187ms |
| total: | 311ms |

| 0 / 0 |
