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

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

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

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

P.S. VFP7
...
Рейтинг: 0 / 0
отчего seek не 'seek'-ает
    #34135868
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
set near ...
set exact ...
ну и индекс allt upper lower и само выражение в сике
...
Рейтинг: 0 / 0
отчего seek не 'seek'-ает
    #34135897
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И правильные языковые настройки, т.е. config.fpw и т.д.
...
Рейтинг: 0 / 0
отчего seek не 'seek'-ает
    #34135911
startFOX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу прощения, не привел исходники...
Код: 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
отчего seek не 'seek'-ает
    #34135935
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
почистите свой код
уберите лишние функции - куча аллтримов не нужных
не дергайте тег - там в сике можно указать и алиаз и имя тега

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

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


Спасибо, совсем забыл про заветный "config.fpw" . Вопрос исчерпан.
...
Рейтинг: 0 / 0
отчего seek не 'seek'-ает
    #34135989
startFOX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
отчего seek не 'seek'-ает
    #34136100
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
startFOX2 alex11100

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

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


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

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

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


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

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

local lcFamily
lcFamily = thisform.edt_snils.Value

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

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

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


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