2016-11-02 75 views
-2

我正在研究一个通过SQL中的链接表从AD中提取数据的程序,并允许用户将电子邮件地址复制到剪贴板。我使用数组来动态显示每一行旁边的按钮。问题是,当我尝试在for循环中放置标签或按钮时,它们不会显示出来。这只是我做错了吗?我的代码如下:AutoIT中阵列末尾的按钮

#include <GUIConstantsEx.au3> 
#include <mssql.au3> 
#include <MsgBoxConstants.au3> 
#include <Array.au3> 
#include <WindowsConstants.au3> 
global $title = "E-Mail address lookup" 
global $sqlCon = _MSSQL_Con("server", "user", "Directory3=", "password") 
global $name = InputBox($title,"Please type the name of the person you wish to find") 
global $result = _MSSQL_GetRecord($sqlCon, "autoit_view","*", "WHERE cn LIKE '%" & StringStripWS($name,3) & "%'") 
if StringLen(StringStripWS($name,3)) < 1 then 
     MsgBox(0, $title, "Name cannot be empty") 
Else 
Global $ControlID = GUICreate($title, 530, 500) 
GUISetState(@SW_SHOW) 
Local $iOldOpt = Opt("GUICoordMode", 2) 
GUICtrlCreateLabel(" ", 0, 0, 80) 
GUICtrlCreateLabel("E-Mail Address", 20, -1, 100) 
GUICtrlCreateLabel("Name", 20, -1, 50) 
GUICtrlCreateLabel("Department", 20, -1, 100) 
GUICtrlCreateLabel("Telephone Number", 20, -1, 200) 
for $i = 1 To UBound($result) Step 1 
     GUICtrlCreateButton("Copy", 0, $i, 30, 20) 
Next 
GUISetState() 

While 1 
     Global $Msg = GUIGetMsg() 
     Switch $Msg 
      Case -3, $ControlID 
     Exit 
     EndSwitch 
WEnd 
EndIf 

我本来期望一个按钮显示在环路的每次迭代新行

回答

0

我会建议使用另一种模式:

#include <GUIConstantsEx.au3> 
;~ #include <mssql.au3> 
#include <MsgBoxConstants.au3> 
#include <Array.au3> 
#include <WindowsConstants.au3> 
Global $title = "E-Mail address lookup" 
;~ global $sqlCon = _MSSQL_Con("server", "user", "Directory3=", "password") 
;~ global $name = InputBox($title,"Please type the name of the person you wish to find") 
;~ global $result = _MSSQL_GetRecord($sqlCon, "autoit_view","*", "WHERE cn LIKE '%" & StringStripWS($name,3) & "%'") 
Global $result = StringSplit('1,2,3,4,5,6,7,8', ',') 
;~ if StringLen(StringStripWS($name,3)) < 1 then 
;~  MsgBox(0, $title, "Name cannot be empty") 
;~ Else 

;~ _ArrayDisplay($result) 
Global $ControlID = GUICreate($title, 530, 500) 
;~ Local $iOldOpt = Opt("GUICoordMode", 2) 
GUICtrlCreateLabel(" ", 0, 0, 80) 
GUICtrlCreateLabel("E-Mail Address", 20, -1, 100) 
GUICtrlCreateLabel("Name", 20, -1, 50) 
GUICtrlCreateLabel("Department", 20, -1, 100) 
GUICtrlCreateLabel("Telephone Number", 20, -1, 200) 
For $i = 1 To UBound($result) - 1 
    GUICtrlCreateButton("Copy", 20, $i * 20, 350, 20) 
Next 

GUISetState() 

While 1 
    $Msg = GUIGetMsg() 
    Switch $Msg 
     Case -3, $ControlID 
      Exit 
    EndSwitch 
WEnd