powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Использование команды SEEK c использованием цикла SCAN
5 сообщений из 5, страница 1 из 1
Использование команды SEEK c использованием цикла SCAN
    #36977607
Nissan548
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно написать программу в которой при навигации по таблице 1 соответствующие данные в таблице 2 будут находится при помощи команды Seek c использованием цикла Scan/ENDSCAN.
Вот подобная программа с использованием команды LOCATE:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CLEAR 
USE tb1 IN  1 
USE tbl2 IN  2 
DO WHILE .T.
IF EOF ()
EXIT
ENDIF
SELECT tb1 
LOCATE FOR tb1.nom=tbl2.nom
? nom, sm, ln
SELECT tbl2 
?nom,dt,nm
SKIP
ENDDO 

Попытался сделать примерно так же с использованием SEEK но не вышло:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
CLEAR 
USE tb1 IN  1 
USE tbl2 IN  2 
scan FOR tb1.nom=tbl2.nom
DO while .T.
IF EOF ()
EXIT
ENDIF
SELECT tb1 
STORE a TO lnVal 
SEEK tb1.nom=tbl2.nom
? nom, sm,ln
SELECT tbl2 
?nom,dt,nm
LOOP
ENDDO 
ENDSCAN 

Помогите пожалуйста подкорректировать программу.
...
Рейтинг: 0 / 0
Использование команды SEEK c использованием цикла SCAN
    #36977640
Nissan548,
где Вы берете такие идиотские примеры?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
CLEAR 
USE tb1 IN  1 
USE tbl2 IN  2 
Select tbl
scan
? nom, sm,ln
SELECT tbl2 
SEEK tb1.nom=tbl2.nom
?nom,dt,nm
ENDSCAN 
...
Рейтинг: 0 / 0
Использование команды SEEK c использованием цикла SCAN
    #36978079
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nissan548,

Может банально SET FILTER TO ?
...
Рейтинг: 0 / 0
Использование команды SEEK c использованием цикла SCAN
    #36980825
fore5ta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nissan548Нужно написать ... skip ... команды LOCATE:
для использования SEEK в отличии от LOCATE необходим индекс по полю поиска, все остальное примерно похоже. Подробнее см. справку по SEEK и LOCATE. Измененный каркас примера примерно такой:
Код: 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.
close databases

select  0 
use TBL2
index on NOM to NOMTLB2

select  0 
use TBL1

scan
  ? nom, sm, ln
  select TBL2
  seek TBL1.NOM
  if found()
    ? nom, dt, nm
  else
    ? 'не найдено в TBL2 значение '+ str(TBL1.NOM)
  endif
  select TBL1
endscan
use

select TBL2
use
if file('NOMTLB2.IDX')
  erase NOMTLB2.IDX
endif

return
 
...
Рейтинг: 0 / 0
Использование команды SEEK c использованием цикла SCAN
    #36981425
IP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IP
Гость
Дорогой Nissan548, чтобы ответить Вам более илименее корректно, необходимо сообщать версию FOX.
Поскольку я пользую FOX 9 SP2, тои буду отвечать применительно к ней.
На самомделе все просто:
Код: plaintext
1.
2.
3.
4.
5.
6.
Select TB1
scan
if indexseek(tb1.nom, .T., "tbl2")
?tbl2.nom
endif
endscan
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Использование команды SEEK c использованием цикла SCAN
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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