2017-05-28 96 views
0

Ekkehard.Horner帮助了我很多与下面的代码(我已经修改)。但是现在我正在寻找一种方法来在每次显示MsgBox "message 1"时添加一个计数器。不同的MsgBox每次迭代后

<html> 
<head> 
<title>Sync Tool</title> 
<HTA:APPLICATION 
    APPLICATIONNAME="Sync Tool" 
    ID="SyncTool" 
    VERSION="1.0.0" 
    BORDER="dialog" 
    MAXIMIZEBUTTON="no" 
    MINIMIZEBUTTON="no" 
    SCROLL="no" 
    SINGLEINSTANCE="yes" 
    CONTEXTMENU="no" 
    SELECTION="no"/> 
</head> 

<script language="VBScript"> 
Set objShell = CreateObject("WScript.Shell") 

Sub Window_OnLoad 
    Dim width, height 
    width = 330 
    height = 310 
    self.ResizeTo width, height 
    self.MoveTo (screen.AvailWidth-width)/2, (screen.AvailHeight-height)/2 
End Sub 

Sub OnClickButtonSyncNow() 
    ' Box A 
    If BoxAA.checked Then 
     MsgBox "BoxAA" 
    Else 
     'Do nothing 
    End If 

    If BoxAB.checked Then 
     MsgBox "BoxAB" 
    Else 
     'Do nothing 
    End If 

    If BoxAC.checked Then 
     MsgBox "BoxAC" 
    Else 
     'Do nothing 
    End If 

    If BoxAD.checked Then 
     MsgBox "BoxAD" 
    Else 
     'Do nothing 
    End If 

    If BoxAE.checked Then 
     MsgBox "BoxAE" 
    Else 
     'Do nothing 
    End If 

    ' Box B 
    If BoxBA.checked Then 
     MsgBox "BoxBA" 
    Else 
     'Do nothing 
    End If 

    If BoxBB.checked Then 
     MsgBox "BoxBB" 
    Else 
     'Do nothing 
    End If 

    If BoxBC.checked Then 
     MsgBox "BoxBC" 
    Else 
     'Do nothing 
    End If 

    If BoxBD.checked Then 
     MsgBox "BoxBD" 
    Else 
     'Do nothing 
    End If 

    If BoxBE.checked Then 
     MsgBox "BoxBE" 
    Else 
     'Do nothing 
    End If 

    Dim bF : bF = False 
    Dim c1 
    For Each c1 In Split("A B C D E F G H I J") 
     Dim n : n = c1 
     Dim b : Set b = document.getElementById(n) 
     If b.Checked Then 
      bF = True 
     End If 
    Next 
    If bF Then 
     MsgBox "all done" 
    Else 
     MsgBox "message 1" 
    End If 
End Sub 

Sub ExitTool() 
    window.close() 
End Sub 
</script> 

<body bgcolor="firebrick"> 
<style type="text/css"> 
.tg {border-collapse:collapse;border-spacing:0;} 
.tg th{font-family:Arial, sans-serif; font-size:14px; font-weight:normal; padding-top:0px ;padding-right:20px; padding-bottom:0px; padding-left:0px ;border-style:solid; border-width:0px; overflow:hidden; word-break:normal;} 
.tg td{font-family:Arial, sans-serif; font-size:14px; padding-top:5px ;padding-right:10px; padding-bottom:0px; padding-left:0px ;border-style:solid; border-width:0px; overflow:hidden; word-break:normal;} 
.tg .tg-header{color:#FFFB00; font-size:22px; font-weight:bold; font-family:Verdana, Geneva, sans-serif !important;} 
.tg .tg-text{color:white; font-family:Verdana, Geneva, sans-serif !important; vertical-align:top} 
.button {height:50px; width:136px; font-weight:bold; background-color:#555555; border: 2px solid #FFFB00; color:white; text-align:center; text-decoration:none; display:inline-block; font-size:16px;} 
</style> 
<table class="tg"> 
    <tr> 
    <th class="tg-header">Box A</th> 
    <th class="tg-header">Box B</th> 
    </tr> 
    <tr> 
    <td class="tg-text"><input type="checkbox" name="BoxAA" id="A">AA</td> 
    <td class="tg-text"><input type="checkbox" name="BoxBA" id="B">BA</td> 
    </tr> 
    <tr> 
    <td class="tg-text"><input type="checkbox" name="BoxAB" id="C">AB</td> 
    <td class="tg-text"><input type="checkbox" name="BoxBB" id="D">BB</td> 
    </tr> 
    <tr> 
    <td class="tg-text"><input type="checkbox" name="BoxAC" id="E">AC</td> 
    <td class="tg-text"><input type="checkbox" name="BoxBC" id="F">BC</td> 
    </tr> 
    <tr> 
    <td class="tg-text"><input type="checkbox" name="BoxAD" id="G">AD</td> 
    <td class="tg-text"><input type="checkbox" name="BoxBD" id="H">BD</td> 
    </tr> 
    <tr> 
    <td class="tg-text"><input type="checkbox" name="BoxAE" id="I">AE</td> 
    <td class="tg-text"><input type="checkbox" name="BoxBE" id="J">BE</td> 
    </tr> 
</table> 
<br> 
<input type="button" class="button" name="SyncNow" id="SyncNow" value="Sync Now" onclick="OnClickButtonSyncNow"> 
<input type="button" class="button" name="Exit" id="Exit" value="Exit" onclick="ExitTool"> 
</body> 
</html> 

我在寻找的结果是这样的:

If bF Then 
    MsgBox "all done" 
    window.close() 
Else 
    MsgBox "message 1" 'counter + 1 
ElseIf counter = 2 Then 
    MsgBox "message 2" 'counter + 1 
ElseIf counter = 3 Then 
    MsgBox "message 3" 'counter + 1 
ElseIf counter = 4 Then 
    MsgBox "message 4" 'counter + 1 
ElseIf counter = 5 Then 
    MsgBox "message 5" 'no more counting needed because of window.close() 
    window.close() 
End If 

我喜欢尝试不同Do..Loop的东西,但我从来没有计数器超出1 真的在努力了解统计的基础知识VBScript中。

+0

当点击一个按钮,所有选项都被取消话,就说明消息1。但我要完成的,是每次按钮显示新邮件点击并且所有复选框仍未选中,并且需要在5封邮件后停止。我将在今晚晚些时候更新我的第一篇文章,以添加整个HTA。 – WatskeBart

+0

刚刚在第一篇文章中加入完整的HTA – WatskeBart

回答

1

您需要一个全局变量来保留过程调用和数组中包含使用计数器作为索引访问的消息的计数。更改您的代码是这样的:

<script language="VBScript"> 
Dim ctr : ctr = 0 
messages = Array("message 1", _ 
    "message 2", _ 
    "message 3", _ 
    "message 4", _ 
    "aborting" 
) 
... 
Sub OnClickButtonSyncNow 
    ... 
    If bF Then 
     MsgBox "all done" 
     window.Close 
    Else 
     MsgBox messages(ctr) 
     If ctr >= 4 Then window.Close 
     ctr = ctr + 1 
    End If 
End Sub 
... 
</script> 
+0

首先,感谢您纠正我的文章,英文不是我的第一语言:) 其次,我想我没有足够的解释我想完成什么,或者我只是看不到/理解你的答案。 当用户点击“SyncNow”按钮并且“bF”为“False”时,会显示一个“MsgBox”,告诉用户忘记选择复选框。我正在寻找的是当用户再次点击'SyncNow'按钮时,它必须显示另一条消息,告诉用户他/她仍然没有选择任何复选框。并且在5条消息之后,我将关闭HTA,因为用户显然不兼容:) – WatskeBart

+0

我认为我谈论一个柜台可能是误导和错误的。 – WatskeBart

+0

@WatskeBart我做了一些小的调整,但是AFAICS的代码应该已经完成​​了刚刚描述的内容。如果它不请描述结果与预期的不同。你是否想要每次迭代都有不同的消息? –