2017-05-27 2 views
0

Ich bin immer noch neu in HTA, und ich möchte eine Warnung hinzufügen, wenn keine Checkboxen ausgewählt sind und wenn keine Checkboxen ausgewählt sind unterdrückt es die aktuelle MsgBox, die alle Checkboxen sagt verarbeitet werden.HTA: Zeige MsgBox, wenn alle Kästchen deaktiviert sind

Die aktuellen MsgBox's werden durch eine objShell.Run-Zeile (Robocopy) ersetzt.

Ich weiß, dass mein Code wahrscheinlich ein bisschen grundlegend ist, also sind Vorschläge, um es effizienter zu machen, sehr willkommen.

<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 

    MsgBox "All checkboxes are processed" 

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="AA">AA</td> 
    <td class="tg-text"><input type="checkbox" name="BA">BA</td> 
    </tr> 
    <tr> 
    <td class="tg-text"><input type="checkbox" name="AB">AB</td> 
    <td class="tg-text"><input type="checkbox" name="BB">BB</td> 
    </tr> 
    <tr> 
    <td class="tg-text"><input type="checkbox" name="AC">AC</td> 
    <td class="tg-text"><input type="checkbox" name="BC">BC</td> 
    </tr> 
    <tr> 
    <td class="tg-text"><input type="checkbox" name="AD">AD</td> 
    <td class="tg-text"><input type="checkbox" name="BD">BD</td> 
    </tr> 
    <tr> 
    <td class="tg-text"><input type="checkbox" name="AE">AE</td> 
    <td class="tg-text"><input type="checkbox" name="BE">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> 

Antwort

1

ein Flag verwenden (zumindest eine Aktion durchgeführt) und eine Schleife:

Sub OnClickButtonSyncNow() 

    Dim bF : bF = False 
    Dim c1, c2 
    For Each c1 In Split("A B") 
     For Each c2 In Split("A B C D") 
      Dim n : n = c1 & c2 
      Dim b : Set b = document.getElementById(n) 
      If b.Checked Then 
       MsgBox n 
       bF = True 
      End If 
     Next 
    Next 
    If bF Then 
     MsgBox "all done" 
    Else 
     MsgBox "nice try" 
    End If 

End Sub 
+0

Dies funktioniert perfekt für mein gegebenes Beispiel. Aber was, wenn ich den 'name =' Wert zu etwas anderem ändern sollte, z. Daten dies und Daten, die. Ich bin ein bisschen verwirrt, wie das 'document.getElementById (n)' funktioniert, weil es keine 'id =' in meinem HTML-Teil gibt. – WatskeBart

0

My aktuellen Code dank Ekkehard.Horner. Verbesserungsvorschläge sind immer willkommen.

<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 "nothing selected" 
    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> 
Verwandte Themen