Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / отчего seek не 'seek'-ает / 14 сообщений из 14, страница 1 из 1
17.11.2006, 11:39
    #34135855
startFOX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отчего seek не 'seek'-ает
Прошу прощения за подобную игру слов, не удержался :)

Проблема вот в чём

Есть форма быстрого поиска: либо по номеру страх. номера, либо по ФИО. Поиск по № пенс. номера проходит на ура, НО

поиск по ФИО в среде VFP работает, а вот если сварить exe-шник и отдельно запустить быстрый
поиск по ФИО, то не позиционируется. В чем может быть дело?

P.S. VFP7
...
Рейтинг: 0 / 0
17.11.2006, 11:41
    #34135868
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отчего seek не 'seek'-ает
set near ...
set exact ...
ну и индекс allt upper lower и само выражение в сике
...
Рейтинг: 0 / 0
17.11.2006, 11:46
    #34135897
Sergey Sizov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отчего seek не 'seek'-ает
И правильные языковые настройки, т.е. config.fpw и т.д.
...
Рейтинг: 0 / 0
17.11.2006, 11:48
    #34135911
startFOX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отчего seek не 'seek'-ает
Прошу прощения, не привел исходники...
Код: 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.
recOld = RECNO()
IF NOT EMPTY(This.Value)
   SET EXACT OFF
   
*----------- НОМЕР ПЕНСИОННОГО АБОНЕНТА   
   IF thisform.optiongroup1.option2.Value =  1  && по № страхового свидетельства
     SET ORDER TO  1    && ALLTRIM(NPSU) 
*     IF NOT SEEK(ALLTRIM(this.Value),'vce', 'npsu_idx') THEN 
     IF NOT SEEK(ALLTRIM(this.Value)) THEN 
       GO recOld
     ELSE 
       thisform.grid2.Refresh && Показывем найденную запись
     ENDIF
   ENDIF   

*----------- ФАМИЛИЯ АБОНЕНТА   
   IF thisform.optiongroup1.option1.Value =  1  && по фамилии абонента
     strFIO = UPPER(ALLTRIM(thisform.edt_snils.Value) + ALLTRIM(thisform.edt_name.Value))
*     IF NOT SEEK(strFIO,'vce', 'fio_d') THEN 
     SET ORDER TO  2    && UPPER(ALLTRIM(FM)+ALLTRIM(IM)+ALLTRIM(OT)) 
     IF NOT SEEK(ALLTRIM(strFIO)) THEN 
       GO recOld
     ELSE 
       thisform.grid2.Refresh && Показывем найденную запись
     ENDIF
   ENDIF   
   
thisform.grid2.SetFocus
this.SetFocus  
thisform.lbl_fio.Caption = ALLTRIM(fm) + ' ' + ALLTRIM(im) +' ' +ALLTRIM(ot)
   
ENDIF
...
Рейтинг: 0 / 0
17.11.2006, 11:53
    #34135935
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отчего seek не 'seek'-ает
почистите свой код
уберите лишние функции - куча аллтримов не нужных
не дергайте тег - там в сике можно указать и алиаз и имя тега

по номеру тега не ссылайтесь - безобразие

сет ниар поставьте
покажите фоксу где остановиться нужно - в хелпе читайте
...
Рейтинг: 0 / 0
17.11.2006, 11:56
    #34135949
startFOX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отчего seek не 'seek'-ает
Э-э-х
"Уж сколько раз твердили миру..."
Sergey Sizov
И правильные языковые настройки, т.е. config.fpw и т.д.


Спасибо, совсем забыл про заветный "config.fpw" . Вопрос исчерпан.
...
Рейтинг: 0 / 0
17.11.2006, 12:04
    #34135989
startFOX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отчего seek не 'seek'-ает
2 alex11100

Так что ли? Будем учиться писать грамотно...

Код: 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.
recOld = RECNO()
IF NOT EMPTY(This.Value)
   SET EXACT OFF
   SET NEAR ON 
   
*----------- ПЕНСИОННЫЙ НОМЕР АБОНЕНТА   
   IF thisform.optiongroup1.option2.Value =  1  && по № страхового свидетельства
     SET ORDER TO ALLTRIM(NPSU) 
     IF NOT SEEK(ALLTRIM(this.Value),'vce', 'npsu_idx') THEN 
       GO recOld
     ELSE 
       thisform.grid2.Refresh && Показывем найденную запись
     ENDIF
   ENDIF   

*----------- ФАМИЛИЯ ИМЯ АБОНЕНТА   
   IF thisform.optiongroup1.option1.Value =  1  && по фамилии абонента
     strFIO = UPPER(ALLTRIM(thisform.edt_snils.Value) + ALLTRIM(thisform.edt_name.Value))
     SET ORDER TO UPPER(ALLTRIM(FM)+ALLTRIM(IM)+ALLTRIM(OT)) 
     IF NOT SEEK(strFIO,'vce', 'fio_d') THEN 
       GO recOld
     ELSE 
       thisform.grid2.Refresh && Показывем найденную запись
     ENDIF
   ENDIF   
   
thisform.grid2.SetFocus
this.SetFocus  
thisform.lbl_fio.Caption = ALLTRIM(fm) + ' ' + ALLTRIM(im) +' ' +ALLTRIM(ot)
   
ENDIF
...
Рейтинг: 0 / 0
17.11.2006, 12:23
    #34136100
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отчего seek не 'seek'-ает
startFOX2 alex11100

Так что ли? Будем учиться писать грамотно...

Код: plaintext
1.
2.
3.
...
     SET ORDER TO ALLTRIM(NPSU) 
...
     SET ORDER TO UPPER(ALLTRIM(FM)+ALLTRIM(IM)+ALLTRIM(OT)) 


Ты думаешь это грамотно? Запусти.
...
Рейтинг: 0 / 0
17.11.2006, 12:29
    #34136120
Владимир СА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отчего seek не 'seek'-ает
startFOXТак что ли? Будем учиться писать грамотно...
1. SET ORDER TO убрать надо, т.к. ты уже определил в функции SEEK по каким индексам идет поиск.
2. SET EXACT OFF
SET NEAR ON
Эти установки лично я делаю в стартовом файле.
...
Рейтинг: 0 / 0
17.11.2006, 12:32
    #34136141
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отчего seek не 'seek'-ает
Крайне не желательно использовать alltrim() в индексных выражениях.
Например в твоем индексе по UPPER(ALLTRIM(FM)+ALLTRIM(IM)+ALLTRIM(OT)) сортировка будет так:
Иванов Андрей
Иванова Анна
Иванов Петр
...
Рейтинг: 0 / 0
17.11.2006, 12:50
    #34136226
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отчего seek не 'seek'-ает
ну до грамотности далеко

thisform.optiongroup1 может одновременно быть надавлено несколько кнопок?
вот у узнавай именно у группы значение

у фокса есть ду кейс


через пол года
ты не разберешься, что в thisform.edt_snils.Value и его тип

ну напиши вверху

local lcFamily
lcFamily = thisform.edt_snils.Value

ну и пользуй дальше переменную,
что ты форму дергаешь, зисформ, зисформ
...
Рейтинг: 0 / 0
19.11.2006, 14:52
    #34139200
ORAselect
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отчего seek не 'seek'-ает
Мужик, а поискать select * from where ... не пробовал? Гарантированая безгемогность!
...
Рейтинг: 0 / 0
19.11.2006, 14:54
    #34139203
ORAselect
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отчего seek не 'seek'-ает
И, кстати, показывать результаты, возвращенные запросом. Совсем красота.
...
Рейтинг: 0 / 0
20.11.2006, 09:13
    #34139889
startFOX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отчего seek не 'seek'-ает
ORAselectМужик, а поискать select * from where ... не пробовал? Гарантированая безгемогность!

Знаете ли, хамить здесь не нужно. А select-ом осуществлять быстрый поиск, кажется, не очень хорошо. По-моему, значительно удобней и практичней использовать индексы.

Остальные замечания постараюсь учесть...
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / отчего seek не 'seek'-ает / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]