AS400 PCOMM LOOP

时间:2018-05-29 23:03:23

标签: database vbscript ibm-midrange

我希望在PCOMM AS400 VBscript的宏循环中创建。

循环必须重复,直到达到指定的数字并跳过

每隔一个数字或(步骤2)示例:11到273或10到272

在十位数代码行中,每次只能更改数字的三位数部分; 61106(011-273)AA

之前和之后的宏还有更多内容,但每次上面是我需要变量的唯一数字时,所有内容都会重复。

在VBscript中为next / loop创建工作的任何帮助都将不胜感激。

我已经研究过尝试但未能使其工作。 任何帮助都会受到极大的赞赏。

    `

PCOMM SCRIPT HEADER]
LANGUAGE=VBSCRIPT
DESCRIPTION=
[PCOMM SCRIPT SOURCE]
OPTION EXPLICIT
autECLSession.SetConnectionByName(ThisSessionName)

REM This line calls the macro subroutine
subSub1_

sub subSub1_()
autECLSession.autECLOIA. WaitForAppAvailable

autECLSession.autECLPS.SendKeys "[pf6]"
+
autECLSession.autECLPS.SendKeys For XXX = 011 To 273 Step Two "61106XXXAA"


autECLSession.autECLPS.SendKeys "[ENTER]"

Next

End Sub

缩短了脚本以突出显示相关区域。

1 个答案:

答案 0 :(得分:0)

我猜你想为每个值发送[enter]。我确定您使用的软件会有手册,但我正在使用Windows'因此,VBScript可能会对您的平台产生一些语法或功能可用性差异。

LeadingZeroes用于确保您始终有3个字符。

For ... Each Step语句必须在重复发送密钥语句之外。

&是字符串连接运算符,允许您构建10位代码。

Sub subSub1_()

    autECLSession.autECLOIA.WaitForAppAvailable

    autECLSession.autECLPS.SendKeys "[pf6]"

    For XXX = 11 To 273 Step 2
        x = LeadingZeroes(XXX, 3)
        autECLSession.autECLPS.SendKeys  "61106" & x & "AA"
        autECLSession.autECLPS.SendKeys "[ENTER]"
    Next

End Sub

Function LeadingZeroes(value, width)
    LeadingZeroes = Right(String("0", width) & CStr(value), width)
End Function