FOR EACH … E N D F O R 命 令

FOR EACH … E N D F O R 命 令 - 图1FOR EACH … E N D F O R 命 令 - 图2对 Visual FoxPro 数组或集合中的每一个元素 依次执行一组命令

语 法

FOR EACH Var IN Group Commands

[EXIT]

[LOOP]

ENDFOR | NEXT [ Var ]

参 数 描 述

Var

FOR EACH … E N D F O R 命 令 - 图3FOR EACH … E N D F O R 命 令 - 图4一 个 变 量 或 数 组 元 素 用 来 依 次 引 用 Group 中 的 每 一 个 元 素

Group

FOR EACH … E N D F O R 命 令 - 图5FOR EACH … E N D F O R 命 令 - 图6可 以 是 一 个 V isual FoxPro 数 组 OLE 数 组 或 是 一 个 V isual FoxPro 集 合 或

FOR EACH … E N D F O R 命 令 - 图7OLE 集 合

Commands

FOR EACH … E N D F O R 命 令 - 图8FOR EACH … E N D F O R 命 令 - 图9FOR EACH … E N D F O R 命 令 - 图10可 以 包 含 任 意 数 目 的 命 令 对 于 Group 中 的 每 一 个 元 素 执 行 这 些 命 令

EXIT

FOR EACH … E N D F O R 命 令 - 图11FOR EACH … E N D F O R 命 令 - 图12跳 出 FOR EACH … ENDFOR 循 环 执 行 ENDFOR 后 的 第 一 条 命 令 EXIT

FOR EACH … E N D F O R 命 令 - 图13可 以 出 现 在 FOR EACH 和 ENDFOR 之 间 的 任 何 地 方

LOOP

FOR EACH … E N D F O R 命 令 - 图14FOR EACH … E N D F O R 命 令 - 图15跳 回 到 FOR EACH 子 句 而 不 去 执 行 LOOP 和 ENDFOR 之 间 的 命 令

FOR EACH … E N D F O R 命 令 - 图16LOOP 可 以 出 现 在 FOR EACH 和 ENDFOR 之 间 的 任 何 地 方

示 例

FOR EACH … E N D F O R 命 令 - 图17以下 示例 演示了如何使用 FOR EACH 语句枚举 Visual FoxPro 数组中的元素 一 个

FOR EACH … E N D F O R 命 令 - 图18OLE 数组和赋给对象数组的一套命令按钮

FOR EACH … E N D F O R 命 令 - 图19以下 示例 中创建了一个 Visual FoxPro 变量并使用 FOR EACH 语句显示数组中每个元素的内容

DIMENSION cMyArray(3) cMyArray[1] = 'A' cMyArray[2] = 'B' cMyArray[3] = 'C'

FOR EACH cMyVar IN cMyArray

? cMyVar ENDFOR

FOR EACH … E N D F O R 命 令 - 图20FOR EACH … E N D F O R 命 令 - 图21FOR EACH … E N D F O R 命 令 - 图22FOR EACH … E N D F O R 命 令 - 图23FOR EACH … E N D F O R 命 令 - 图24在以下 示例 中 创建了一个 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 … E N D F O R 命 令 - 图25FOR EACH … E N D F O R 命 令 - 图26FOR EACH … E N D F O R 命 令 - 图27FOR EACH … E N D F O R 命 令 - 图28在以下 示例 在表单放置了五个命令按钮 使用 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