Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Использование команды SEEK c использованием цикла SCAN / 5 сообщений из 5, страница 1 из 1
25.11.2010, 17:46
    #36977607
Nissan548
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование команды SEEK c использованием цикла SCAN
Нужно написать программу в которой при навигации по таблице 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
25.11.2010, 17:56
    #36977640
Использование команды SEEK c использованием цикла SCAN
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
26.11.2010, 01:15
    #36978079
AmKad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование команды SEEK c использованием цикла SCAN
Nissan548,

Может банально SET FILTER TO ?
...
Рейтинг: 0 / 0
27.11.2010, 16:14
    #36980825
fore5ta
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование команды SEEK c использованием цикла SCAN
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
28.11.2010, 06:27
    #36981425
IP
IP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование команды SEEK c использованием цикла SCAN
Дорогой 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
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Использование команды SEEK c использованием цикла SCAN / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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