FOR EACH … E N D F O R 命 令
对 Visual FoxPro 数组或集合中的每一个元素 依次执行一组命令
语 法
FOR EACH Var IN Group Commands
[EXIT]
[LOOP]
ENDFOR | NEXT [ Var ]
参 数 描 述
Var
一 个 变 量 或 数 组 元 素 用 来 依 次 引 用 Group 中 的 每 一 个 元 素
Group
可 以 是 一 个 V isual FoxPro 数 组 OLE 数 组 或 是 一 个 V isual FoxPro 集 合 或
OLE 集 合
Commands
可 以 包 含 任 意 数 目 的 命 令 对 于 Group 中 的 每 一 个 元 素 执 行 这 些 命 令
EXIT
跳 出 FOR EACH … ENDFOR 循 环 执 行 ENDFOR 后 的 第 一 条 命 令 EXIT
可 以 出 现 在 FOR EACH 和 ENDFOR 之 间 的 任 何 地 方
LOOP
跳 回 到 FOR EACH 子 句 而 不 去 执 行 LOOP 和 ENDFOR 之 间 的 命 令
LOOP 可 以 出 现 在 FOR EACH 和 ENDFOR 之 间 的 任 何 地 方
示 例
以下 示例 演示了如何使用 FOR EACH 语句枚举 Visual FoxPro 数组中的元素 一 个
OLE 数组和赋给对象数组的一套命令按钮
以下 示例 中创建了一个 Visual FoxPro 变量并使用 FOR EACH 语句显示数组中每个元素的内容
DIMENSION cMyArray(3) cMyArray[1] = 'A' cMyArray[2] = 'B' cMyArray[3] = 'C'
FOR EACH cMyVar IN cMyArray
? cMyVar ENDFOR
在以下 示例 中 创建了一个 Microsoft Excel 实例 添加了一个新的工作簿 使用 FOR EACH 语句显示工作簿中每个工作表的名称 此 示例 要求在运行示例的机器上正确安装 Microsoft Excel
oExcel = CREATE("Excel.Application") oExcel.Workbooks.ADD
FOR EACH oMyVar IN oExcel.sheets
? oMyVar.name NEXT oMyVar
在以下 示例 在表单放置了五个命令按钮 使用 FOR EACH 命令显示表单上的按钮并指定它们的标题 字体和每个按钮的位置
PUBLIC oMyObject
oMyObject = CREATEOBJECT("frmTest")
oMyObject.SHOW
DEFINE CLASS frmTest AS FORM
Height = 200 DIMENSION MyArray[5]
PROCEDURE Init
FOR i = 1 to 5 THIS.AddObject('THIS.MyArray[i]',;
'COMMANDBUTTON')
ENDFOR
****** FOR EACH - NEXT ******
FOR EACH oButton IN THIS.MyA rray oButton.Visible = .T.
NEXT
****** FOR EACH - NEXT element ****** FOR EACH oButton IN THIS.MyArray
oButton.FontBold = .T.
NEXT obutton
j = 1
****** FOR EACH - ENDFOR ****** FOR EACH oButton IN THIS.MyArray
oButton.top = j * 30
j = j + 1 ENDFOR
****** FOR EACH - ENDFOR element ****** FOR EACH oButton IN THIS.MyArray
oButton.FontItalic = .T. ENDFOR obutton
j = 1
****** EXIT ******
FOR EACH oButton IN THIS.MyArray oButton.Caption = "test" + str(j)
j = j+1 IF j > 3
EXIT ENDIF
NEXT
j = 1
****** LOOP ******
FOR EACH oButton IN THIS.MyArray IF j > 3
LOOP
ENDIF
j = j + 1 oButton.Left = 25
NEXT ENDPROC
ENDDEFINE
请 参 阅
FOR...ENDFOR