求助:嵌套循环如何跳转?

czw8819 2013-10-21 04:33:52
一段代码用到了 两个 SCAN......ENDSCAN,CASE....ENDCASE,FOR....ENDFOR

设计的意愿是:当isOK =1 时,能跳出类别表的循环,返回到产品表继续处理下一条记录
但经测试,用 EXIT 好象不能退出当前的循环,无法回到第一层(即产品表)

求热心人解惑帮助,谢谢!

代码如下(代码已作删减,仅作思路表述):

SELECT 产品表
GO TOP
SCAN
this_cpmc = ALLTRIM(cpmc)

SELECT 类别表
GO TOP
SCAN
this_lbmc= ALLTRIM(pzlbmc)
this_tag = ALLTRIM(lb_tag)

DO CASE
CASE OCCURS(";",this_tag) >0
fuHao_tally = OCCURS(";",this_tag) &&获得 “;”号的个数
tag_count = 0
*--开始截取关键字
FOR tag_sum = 1 TO fuHao_tally
isok = 0
isok = thisForm.截取关键字(lo_tag,this_cpmc)
IF isok = 1
EXIT &&跳出截取关键字
ENDIF
ENDFOR
*--- 结束截取关键字------------------------

IF isok = 1
MESSAGEBOX("找到关键字")
*---退出类别表的循环,跳到产品表继续处理下一条产品记录
EXIT
ENDIF

CASE OCCURS("_",this_tag) >0 AND OCCURS(";",this_tag) =0

isOK = 0
isOK = ThisForm.截取关键字(this_tag,this_cpmc)

IF isOK = 1
EXIT &&退出类别表的循环,跳到产品表继续处理下一条记录
ELSE
LOOP &&返回类别表跳到下条类别记录
ENDIF

OTHERWISE
IF OCCURS(this_tag,this_cpmc)=1
EXIT
ELSE
Loop
ENDIF
ENDCASE

SELECT 类别表
ENDSCAN

SELECT 产品表
ENDSCAN
...全文
96 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
十豆三 2013-10-22
  • 打赏
  • 举报
回复
示例:
Clear
Create Cursor 产品表 (a1 i)
For lnI=1 To 10
	Insert Into 产品表 Values (lnI)
Endfor
Create Cursor 类别表 (b1 i)
For lnI=100 To 105
	Insert Into 类别表 Values (lnI)
Endfor
Select 产品表
Scan
	?a1
	Select 类别表
	Scan
		For lnI=1 To 10
			isok = 0
			isok=b1
			If isok=102
				Exit
			Endif
		Endfor
		If isok=102
			Exit
		Endif
	Endscan
	??b1
Endscan

2,727

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧