返回列表 发帖

[AU3基础] [已解决]list view 讀 txt 檔案數量不對程式產生錯誤

本帖最后由 ipmitool 于 2017-1-4 15:28 编辑

請問我的list view裡面有時候會有3個 txt 檔案, 但是我寫死4個變數, 因此偵測到3個txt檔案的時候, 產生錯誤. 不曉得這個要怎麼解決呢?



附件: 您需要登录才可以下载或查看附件。没有帐号?加入
Mike Pan

本帖最后由 q410225 于 2016-12-28 19:47 编辑

说实话,看不懂,我运行了一下,一闪而过,出现这样一个错误

比如说这段
  1. Func _add_report_items111()

  2.  

  3.         FileChangeDir("\")

  4.         Local $path, $aFileList, $aNewList[1][2]

  5.         $path = "\"

  6.  

  7.         $aFileList = _FileListToArray($path, "*.txt")

  8. _ArrayDisplay($aFileList)

  9.         If IsArray($aFileList) Then

  10.                 ReDim $aNewList[UBound($aFileList)][17] ;;;[Col count]

  11.                 Local $sComboTxt = "All Member"

  12.                 GUICtrlSetData($idComboBox, "")

  13.                 For $i = 1 To UBound($aFileList) - 1 Step 1

  14.                         $aNewList[0][1] = $i

  15.                         ;$aNewList[$i][0] = $aFileList[$i]

  16.                         $aNewList[$i][1] = FileReadLine($aFileList[$i], 1)

  17.                         $aNewList[$i][2] = FileReadLine($aFileList[$i], 2)

  18.                         $aNewList[$i][3] = FileReadLine($aFileList[$i], 3)

  19.                         $aNewList[$i][4] = FileReadLine($aFileList[$i], 4)

  20.                         $aNewList[$i][5] = FileReadLine($aFileList[$i], 5)

  21.                         $aNewList[$i][6] = FileReadLine($aFileList[$i], 6)

  22.                         $aNewList[$i][7] = FileReadLine($aFileList[$i], 7)

  23.                         $aNewList[$i][8] = FileReadLine($aFileList[$i], 8)

  24.  

  25.                         If Not StringInStr($sComboTxt, $aNewList[$i][13]) Then $sComboTxt &= "|" & $aNewList[$i][13]

  26.  

  27.                 Next

复制代码 高亮切换


按我的理解,是读取TXT文件到$aFileList 数组,
但你后面的  FileReadLine($aFileList[$i], 1)又是什么意思

还有这个$path = "\",

TOP

本帖最后由 chzj589 于 2016-12-28 20:04 编辑

回复 1# ipmitool

把以下注释掉就能运行
;lseIf $aNewList2[3][2] = "Preparing" or $aNewList2[3][2] = "Testing" Then
;dlibRegister("Timer4")

附件: 您需要登录才可以下载或查看附件。没有帐号?加入

TOP

回复 3# chzj589


    可是這行是必要的, 因為要判斷第二欄的狀態...

TOP

回复 2# q410225


    您好,
    FileReadLine($aFileList[$i], 1) 是讀取txt檔案的內容
     $path="\" 是要讀取txt檔案的位置嘍~

TOP

回复 5# ipmitool


    能详细说一下整个程序的结构,实现的功能吗?

TOP

回复 6# q410225




這是一個排程執行程式的工具, 如圖解說,
紅框框內的是會去讀取資料夾內的txt檔案,
並且讀取txt檔案的第一行內容, txt 第二行是 狀態有四種: ---, preparing, testing, done

程式每5秒鐘會去掃 ListView 中的 status 欄位,
當遇到第一個狀態為 ---, 就會去讀取左邊的欄位, 並且執行AC_PDU.exe

下一次5秒會再掃描一次Status, 如果第一個為Preparing或是Testing, 就不做任何動作,
等待Status為Done的時候, 再往下掃status, 遇到下一個 --- 的時候, 再執行左邊欄位 Warmboot.exe
直到所有狀態都為Done就停止計時器Total Time.
附件: 您需要登录才可以下载或查看附件。没有帐号?加入
Mike Pan

TOP

回复 7# ipmitool
对比两张图



我运行的图



这样好象没有读取配置文件testconfig.ini
附件: 您需要登录才可以下载或查看附件。没有帐号?加入

TOP

回复 7# ipmitool


你应该是考虑复杂了,

$aNewList这个数组很重要,因为他保存了TXT的数据

而后面的判断,只需要判断前一项是不是done和这一项是不是---


  1. $j= UBound($aNewList)-1

  2. If $aNewList[$j][2]='done' Then

  3. MsgBox(0,"","全部是done了,可以注销了")


  4.  

  5. $aNewList[0][2]='done'

  6.  

  7. For $j=1 To UBound($aNewList)-1

  8.         If $aNewList[$j][2]="---" And $aNewList[$j-1][2]="done" Then

  9.         MsgBox(0,"","程序准备完成,可以运行了") 

  10.                 ExitLoop

  11.         EndIf


复制代码 高亮切换
附件: 您需要登录才可以下载或查看附件。没有帐号?加入

TOP

本帖最后由 q410225 于 2016-12-29 15:37 编辑

应该和你心中想的有很大的出入,这还需要你自己完善了,

TOP

回复 10# q410225


    大哥您改完之後我覺得更加复杂了...
    看不懂了...哈哈哈...

TOP

回复 11# ipmitool

消息循环buttone1,我删除了一些,实际上,我想只保留
AdlibRegister('_add_report_items111', 59925 / 10)

的,但是怕和下面的函数有关联.

然后注释了_Checkitems1的注册,也就是_Checkitems1彻底没用啦,然后我在_add_report_items111函数的最下面加了我上面的判断语句,来代替_Checkitems1的作用

TOP

本帖最后由 q410225 于 2016-12-29 19:08 编辑

回复 11# ipmitool

好了,就是这意思了, 你的意思我也差不多明白了,但实话说,这个程序的结构是不是有问题啊,总觉得不合理,




  1. #include <ini.au3>

  2. #include <File.au3>

  3. #include <Date.au3>

  4. #include <Array.au3>

  5. #include <Excel.au3>

  6. #include <Constants.au3>

  7. #include <GuiListView.au3>

  8. #include <GuiImageList.au3>

  9. #include <GuiStatusBar.au3>

  10. #include <FileConstants.au3>

  11. #include <GUIConstantsEx.au3>

  12. #include <MsgBoxConstants.au3>

  13. #include <WindowsConstants.au3>

  14.  

  15. Global $g_hTimer0, $g_iSecs0, $g_iMins0, $g_iHour0, $g_sTime0

  16. Global $g_hTimer1, $g_iSecs1, $g_iMins1, $g_iHour1, $g_sTime1

  17. Global $g_hTimer2, $g_iSecs2, $g_iMins2, $g_iHour2, $g_sTime2

  18. Global $g_hTimer3, $g_iSecs3, $g_iMins3, $g_iHour3, $g_sTime3

  19. Global $g_hTimer4, $g_iSecs4, $g_iMins4, $g_iHour4, $g_sTime4

  20.  

  21. $Form1_1 = GUICreate("Test Schedule Management", 350, 330)

  22. $hListView = GUICtrlCreateListView("", 5, 5, 335, 245) ;, $LVS_SHOWSELALWAYS, $LVS_EX_GRIDLINES + $LVS_EX_FULLROWSELECT + $LVS_EX_DOUBLEBUFFER

  23.  

  24.  

  25. Global $sItemText ;this will store the text of the last right-clicked item.

  26. Global $sItemTextFilename111

  27. Global $sItemTextFilenameTester

  28. Global $sItemTextFilename1

  29. Global $sItemTextFilename4

  30. Global $sItemTextFilename5

  31. Global $sItemTextFilename7

  32.  

  33.  

  34. Global $aNewList[1000][1000]

  35. $aNewList[0][0] = 300

  36. ;===================================================================

  37. $Button1 = GUICtrlCreateButton("View", 360, 15, 73, 33)

  38. ;$Button2 = GUICtrlCreateButton("Done", 300, 362, 73, 33)

  39. $export = GUICtrlCreateButton("Export to Excel", 100, 562, 100, 33)

  40. $export2 = GUICtrlCreateButton("Export to HTML", 220, 562, 100, 33)

  41.  

  42. $cInput_Filter = GUICtrlCreateInput("", 11, 620, 140, 20)

  43. $cButton_Filter = GUICtrlCreateButton("Filter", 160, 618, 75, 23)

  44. $cButton_All = GUICtrlCreateButton("Refresh", 360, 60, 73, 33)

  45. GUICtrlCreateLabel('Input Test Case, Product, Serial Number or Tester to filter data', 11, 650, 300, 100)

  46. ;===================================================================

  47. $idComboBox = GUICtrlCreateCombo("", 17, 1000, 135, 33)

  48.  

  49. ;$analyze = GUICtrlCreateButton("Analyze", 940, 562, 100, 33)

  50.  

  51. Local $hGUI, $ahIcons[2], $StatusBar0

  52. Local $aParts[4] = [900, 1160, 1380, 2500]

  53.  

  54. $StatusBar0 = _GUICtrlStatusBar_Create($Form1_1)

  55. _GUICtrlStatusBar_SetParts($StatusBar0, $aParts)

  56. _GUICtrlStatusBar_SetText($StatusBar0, 'Tool will auto execute!!!')

  57. _GUICtrlStatusBar_SetText($StatusBar0, 'Foxconn@SIT1', 1)

  58. _GUICtrlStatusBar_SetText($StatusBar0, " Version: v1.0 ", 2)

  59.  

  60. _GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES, $LVS_EX_SUBITEMIMAGES))

  61.  

  62.  

  63.  

  64. ;;;;;;;;; Read testconfig.ini ;;;;;;;;;

  65. ;;;;;;;;; Read testconfig.ini ;;;;;;;;;

  66. ;;;;;;;;; Read testconfig.ini ;;;;;;;;;

  67.  

  68. $testerread = _IniReadSection_line(@ScriptDir & '\testconfig.ini', 'TestConfig')

  69. $tester = $testerread[1]

  70.  

  71. ;;;;;;;;; Read testconfig.ini ;;;;;;;;;

  72. ;;;;;;;;; Read testconfig.ini ;;;;;;;;;

  73. ;;;;;;;;; Read testconfig.ini ;;;;;;;;;

  74.  

  75.  

  76.  


  77.  


  78.  

  79. _GUICtrlListView_AddColumn($hListView, "File Name", 0) ;disappear file name

  80. _GUICtrlListView_AddColumn($hListView, "Test Case", 140)

  81. _GUICtrlListView_AddColumn($hListView, "Status", 80)

  82. _GUICtrlListView_AddColumn($hListView, "Process Time", 100)

  83.  

  84.  


  85.  

  86.  

  87. ControlClick("Test Schedule Management", "", "[CLASS:Button; TEXT:View; INSTANCE:1]")

  88.  

  89.  


  90.  

  91.         GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") ;Double click value get

  92.  

  93.         Switch GUIGetMsg()

  94.  

  95.  

  96.  

  97.                 Case $GUI_EVENT_CLOSE

  98.                         Exit (_GUICtrlListView_UnRegisterSortCallBack($hListView))

  99.                         ExitLoop

  100.  

  101.  

  102.  

  103.                 Case $hListView

  104.                         _GUICtrlListView_SortItems($hListView, GUICtrlGetState($hListView))

  105.  

  106.  

  107.  

  108.                 Case $Button1

  109.                         $g_hTimer0 = TimerInit()

  110.                                                 $g_hTimer1=TimerInit()

  111.                                                 $g_hTimer2=TimerInit()

  112.                                                 $g_hTimer3=TimerInit()

  113.                                                 $g_hTimer4=TimerInit()

  114.                         ;GUICtrlSetState($Button1,$gui_disable)

  115.                         GUICtrlSetState($cButton_All, $gui_enable)

  116.  

  117.                         ProgressOn("Test Management Progress Meter", "Progress...", "0%")

  118.                         Sleep(100)

  119.  

  120.                         ProgressSet(0, "0%")

  121.  

  122.                         ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 10mins time count

  123.                         Dim $tl = GUICtrlCreateLabel('00 min, 00 sec', 10000, 10000, 150, 15)

  124.                         GUISetState()

  125.                         Dim $timer = TimerInit(), $Day = 0

  126.                                                

  127.                         AdlibRegister('Timer0', 500)

  128.                         AdlibRegister("Timer1",500)

  129.                         AdlibRegister("Timer2",500)

  130.                         AdlibRegister("Timer3",500)

  131.                         AdlibRegister("Timer4",500)

  132.                         Local $hGUI, $ahIcons[2], $StatusBar1

  133.                         Local $aParts[4] = [900, 1160, 1380, 2500]

  134.                         $StatusBar1 = _GUICtrlStatusBar_Create($Form1_1)

  135.                         _GUICtrlStatusBar_SetParts($StatusBar1, $aParts)

  136.                         _GUICtrlStatusBar_SetText($StatusBar1, 'Tool will auto execute!!!')

  137.                         _GUICtrlStatusBar_SetText($StatusBar1, 'Foxconn@SIT1', 1)

  138.                         _GUICtrlStatusBar_SetText($StatusBar1, " Version: v1.0 ", 2)

  139.                         ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 10 mins time count

  140.            

  141.                         Dim $OldList = "", $aNewList2 = ""

  142.                         AdlibRegister('_add_report_items111', 5000) ;reflash every 10min is 59925

  143.                         ProgressSet(100, "100%")

  144.                         Sleep(500)

  145.                         ProgressOff()

  146.  

  147.  

  148.  

  149.                 Case $export

  150.                         MsgBox(0, "Export", "Export list view data to Excel", 1)

  151.                         exporttoexcel()

  152.  

  153.  

  154.  

  155.                 Case $export2

  156.                         FileChangeDir(@DesktopDir)

  157.                         FileWrite("TestStatus_Export_" & @YEAR & @MON & @MDAY & @HOUR & @MIN & @SEC & ".html", _ListViewToHTMLTable($hListView))

  158.                         MsgBox(0, "", "Dump html file to: " & @DesktopDir & "\" & "table" & @YEAR & @MON & @MDAY & @HOUR & @MIN & ".html", 1)

  159.  

  160.  

  161.         EndSwitch


  162.  

  163.  

  164. Func Timer1()

  165.  

  166.         _TicksToTime(Int(TimerDiff($g_hTimer1)), $g_iHour1, $g_iMins1, $g_iSecs1)

  167.         Local $sTime1 = $g_sTime1 ; save current time to be able to test and avoid flicker..

  168.         $g_sTime1 = StringFormat("%02i:%02i:%02i", $g_iHour1, $g_iMins1, $g_iSecs1)

  169.         If $sTime1 <> $g_sTime1 Then _GUICtrlListView_SetItemText($hListView, 1, $g_sTime1, 3)

  170.  

  171. EndFunc   ;==>Timer1

  172.  

  173.  

  174.  

  175. Func Timer2()

  176.  

  177.         _TicksToTime(Int(TimerDiff($g_hTimer2)), $g_iHour2, $g_iMins2, $g_iSecs2)

  178.         Local $sTime2 = $g_sTime2 ; save current time to be able to test and avoid flicker..

  179.         $g_sTime2 = StringFormat("%02i:%02i:%02i", $g_iHour2, $g_iMins2, $g_iSecs2)

  180.         If $sTime2 <> $g_sTime2 Then _GUICtrlListView_SetItemText($hListView, 2, $g_sTime2, 3)

  181.  

  182. EndFunc   ;==>Timer2

  183.  

  184.  

  185.  

  186. Func Timer3()

  187.  

  188.         _TicksToTime(Int(TimerDiff($g_hTimer3)), $g_iHour3, $g_iMins3, $g_iSecs3)

  189.         Local $sTime3 = $g_sTime3 ; save current time to be able to test and avoid flicker..

  190.         $g_sTime3 = StringFormat("%02i:%02i:%02i", $g_iHour3, $g_iMins3, $g_iSecs3)

  191.         If $sTime3 <> $g_sTime3 Then _GUICtrlListView_SetItemText($hListView, 3, $g_sTime3, 3)

  192.  

  193. EndFunc   ;==>Timer3

  194.  

  195.  

  196.  

  197. Func Timer4()

  198.  

  199.         _TicksToTime(Int(TimerDiff($g_hTimer4)), $g_iHour4, $g_iMins4, $g_iSecs4)

  200.         Local $sTime4 = $g_sTime4 ; save current time to be able to test and avoid flicker..

  201.         $g_sTime4 = StringFormat("%02i:%02i:%02i", $g_iHour4, $g_iMins4, $g_iSecs4)

  202.         If $sTime4 <> $g_sTime4 Then _GUICtrlListView_SetItemText($hListView, 4, $g_sTime4, 3)

  203.  

  204. EndFunc   ;==>Timer4

  205.  

  206.  

  207.  

  208. Func _ListViewToHTMLTable($hList)

  209.         Local $sHTML, $iColCount, $iRowCount

  210.         $iColCount = _GUICtrlListView_GetColumnCount($hList)

  211.  

  212.         $sHTML = "<P></P><B>Test Management Tool Report</B>" & "<P></P>" & "<table width='1500' border='2' BGColor='#c4d6f6'>" & @LF & "<tr>" & @LF

  213.         ;创建表头

  214.         For $i = 0 To $iColCount - 1

  215.                 $aInfo = _GUICtrlListView_GetColumn($hList, $i)

  216.                 $sHTML = $sHTML & "<th scope='col' BGColor='#FFFFFF'>" & $aInfo[5] & "</th>" & @LF

  217.         Next

  218.         ;添加数据

  219.         $iRowCount = _GUICtrlListView_GetItemCount($hList)

  220.         For $i = 0 To $iRowCount - 1

  221.                 $sHTML = $sHTML & "<tr>" & @LF

  222.                 For $j = 0 To $iColCount - 1

  223.                         $aInfo = _GUICtrlListView_GetItem($hList, $i, $j)

  224.                         $sHTML = $sHTML & "<th>" & $aInfo[3] & "</th>" & @LF

  225.                 Next

  226.                 $sHTML = $sHTML & "</tr>" & @LF

  227.         Next

  228.  

  229.         $sHTML = $sHTML & "</table>"

  230.         ;MsgBox(0,"",$sHTMl)

  231.         Return $sHTML

  232. EndFunc   ;==>_ListViewToHTMLTable

  233.  

  234.  

  235.  

  236.  

  237. Func _add_report_items111()

  238.  

  239.         FileChangeDir("\")

  240.         Local $path, $aFileList, $aNewList[1][2]

  241.         $path = "\"

  242.  

  243.         $aFileList = _FileListToArray($path, "*.txt")

  244.  

  245.         If IsArray($aFileList) Then

  246.                 ReDim $aNewList[UBound($aFileList)][17] ;;;[Col count]

  247.                 Local $sComboTxt = "All Member"

  248.                 GUICtrlSetData($idComboBox, "")

  249.                 For $i = 1 To UBound($aFileList) - 1 Step 1

  250.                         $aNewList[0][1] = $i

  251.                         ;$aNewList[$i][0] = $aFileList[$i]

  252.                         $aNewList[$i][1] = FileReadLine($aFileList[$i], 1)

  253.                         $aNewList[$i][2] = FileReadLine($aFileList[$i], 2)

  254.                         $aNewList[$i][3] = "---"

  255.                         $aNewList[$i][4] = FileReadLine($aFileList[$i], 4)

  256.                         $aNewList[$i][5] = FileReadLine($aFileList[$i], 5)

  257.                         $aNewList[$i][6] = FileReadLine($aFileList[$i], 6)

  258.                         $aNewList[$i][7] = FileReadLine($aFileList[$i], 7)

  259.                         $aNewList[$i][8] = FileReadLine($aFileList[$i], 8)

  260.  

  261.                         If Not StringInStr($sComboTxt, $aNewList[$i][13]) Then $sComboTxt &= "|" & $aNewList[$i][13]

  262.  

  263.                 Next

  264.  

  265.                 _GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($hListView))

  266.                 _GUICtrlListView_AddArray($hListView, $aNewList)

  267.  

  268.                 For $j = 0 To UBound($aNewList) - 1 Step 1

  269.                         _GUICtrlListView_SetItemText($hListView, $j + 1, " ", 7)

  270.                 Next

  271.  

  272. ;~                                                                       $aNewList=$aNewList2

  273.                 GUICtrlSetData($idComboBox, $sComboTxt, "All Member")

  274.         EndIf

  275.         $j = UBound($aNewList) - 1

  276.         If $aNewList[$j][2] = 'done' Then

  277.                 MsgBox(0, "", "全部是done了,可以注销了")

  278.                 AdlibUnRegister('_add_report_items111')

  279.         EndIf

  280.         $aNewList[0][2] = 'done'

  281.         For $j = 1 To UBound($aNewList) - 1

  282.                 If $aNewList[$j][2] = "done" Then

  283.                         AdlibUnRegister("Timer" & $j)

  284.                         _GUICtrlListView_SetItemText($hListView, $j, "完成", 3)

  285.                 EndIf

  286.                 If $aNewList[$j][2] = "---" And $aNewList[$j - 1][2] = "done" Then

  287.                         MsgBox(0, "", "程序准备完成,可以运行" & $aNewList[$j][1])

  288.                         ExitLoop

  289.                 EndIf

  290.  

  291.         Next

  292. EndFunc   ;==>_add_report_items111

  293.  

  294.  

  295.  

  296.  

  297. Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)

  298.  

  299.         #forceref $hWnd, $iMsg, $iwParam

  300.         Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView, $tInfo

  301.  

  302.         $hWndListView = GUICtrlGetHandle($hListView)

  303.         $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)

  304.         $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))

  305.         $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")

  306.         $iCode = DllStructGetData($tNMHDR, "Code")

  307.         ;$Index = GUICtrlRead($hListView)

  308.  

  309.  

  310.         Switch $hWndFrom

  311.                 Case $hWndListView

  312.  

  313.  

  314.                         Switch $iCode

  315.                                 Case $NM_DBLCLK

  316.                                         $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)

  317.                                         $Index = DllStructGetData($tInfo, "Index")

  318.                                         $DoubleClick = _GUICtrlListView_GetItemText($hListView, $Index, 1) ;GetItemText IP address

  319.                                         MsgBox(0, "Message", $DoubleClick)

  320.  

  321.  

  322.                                 Case $NM_RCLICK

  323.                                         $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)

  324.                                         $Index = DllStructGetData($tInfo, "Index")

  325.                                         $SubItem = DllStructGetData($tInfo, "SubItem")

  326.                                         ;$sItemText =  _GUICtrlListView_GetItemText($hWndListView, $Index, $SubItem) ;GetItemText every location

  327.                                         $sItemText = _GUICtrlListView_GetItemText($hListView, $Index, 12)

  328.                                         $sItemTextFilename111 = _GUICtrlListView_GetItemText($hListView, $Index, 3)

  329.                                         $sItemTextFilenameTester = _GUICtrlListView_GetItemText($hListView, $Index, 13)

  330.  

  331.                                         $sItemTextFilename1 = _GUICtrlListView_GetItemText($hListView, $Index, 1)

  332.                                         $sItemTextFilename4 = _GUICtrlListView_GetItemText($hListView, $Index, 4)

  333.                                         $sItemTextFilename5 = _GUICtrlListView_GetItemText($hListView, $Index, 5)

  334.                                         $sItemTextFilename7 = _GUICtrlListView_GetItemText($hListView, $Index, 7)

  335.  

  336.  

  337.  

  338.                                 Case $NM_CUSTOMDRAW

  339.                                         Local $tCustDraw = DllStructCreate($tagNMLVCUSTOMDRAW, $ilParam)

  340.                                         Local $iDrawStage = DllStructGetData($tCustDraw, "dwDrawStage")

  341.                                         If $iDrawStage = $CDDS_PREPAINT Then Return $CDRF_NOTIFYITEMDRAW

  342.                                         If $iDrawStage = $CDDS_ITEMPREPAINT Then Return $CDRF_NOTIFYSUBITEMDRAW

  343.                                         Local $iItem = DllStructGetData($tCustDraw, "dwItemSpec")

  344.                                         Local $iSubItem = DllStructGetData($tCustDraw, "iSubItem")

  345.                                         Local $sComboRead = GUICtrlRead($idComboBox)

  346.  

  347.                         EndSwitch

  348.         EndSwitch

  349.         Return $GUI_RUNDEFMSG

  350.  

  351. EndFunc   ;==>WM_NOTIFY

  352.  

  353.  

  354.  

  355. Func _ShowText()

  356.         If $sItemText <> "" Then MsgBox(0, "Test", $sItemText)

  357. EndFunc   ;==>_ShowText

  358.  

  359.  

  360.  

  361. Func exporttoexcel() ;EXPORT TO EXCEL

  362.         $col = 0

  363.         $count = _GUICtrlListView_GetItemCount($hListView)

  364.         GUICtrlSetState($export, $gui_enable)

  365.  

  366.  

  367.  

  368.         $excel = _ExcelBookNew()

  369.         $oWorkbook = _Excel_BookNew($excel)

  370.  

  371.  

  372.         _ExcelWriteCell($excel, "1", 2, 2)

  373.         _ExcelWriteCell($excel, "2", 2, 3)

  374.         _ExcelWriteCell($excel, "3", 2, 4)

  375.         _ExcelWriteCell($excel, "4", 2, 5)

  376.         _ExcelWriteCell($excel, "5", 2, 6)

  377.         _ExcelWriteCell($excel, "6", 2, 7)

  378.         _ExcelWriteCell($excel, "7", 2, 8)

  379.         _ExcelWriteCell($excel, "8", 2, 9)

  380.         _ExcelWriteCell($excel, "9", 2, 10)

  381.  

  382.         For $colexcel = 0 To $col

  383.  

  384.                 $i = 0

  385.                 Do

  386.                         _ExcelWriteCell($excel, _GUICtrlListView_GetItemText($hListView, $i, 0), 3 + $i, 1)

  387.                         _ExcelWriteCell($excel, _GUICtrlListView_GetItemText($hListView, $i, 1), 3 + $i, 2)

  388.                         _ExcelWriteCell($excel, _GUICtrlListView_GetItemText($hListView, $i, 2), 3 + $i, 3)

  389.                         _ExcelWriteCell($excel, _GUICtrlListView_GetItemText($hListView, $i, 3), 3 + $i, 4)

  390.                         _ExcelWriteCell($excel, _GUICtrlListView_GetItemText($hListView, $i, 4), 3 + $i, 5)

  391.                         _ExcelWriteCell($excel, _GUICtrlListView_GetItemText($hListView, $i, 5), 3 + $i, 6)

  392.                         _ExcelWriteCell($excel, _GUICtrlListView_GetItemText($hListView, $i, 6), 3 + $i, 7)

  393.                         _ExcelWriteCell($excel, _GUICtrlListView_GetItemText($hListView, $i, 7), 3 + $i, 8)

  394.                         _ExcelWriteCell($excel, _GUICtrlListView_GetItemText($hListView, $i, 8), 3 + $i, 9)

  395.  

  396.                         $i = $i + 1

  397.                 Until $i = $count

  398.         Next

  399.  

  400.  

  401.         MsgBox(64, "Message", "Export completed!" & @CRLF _

  402.                          & " " & @CRLF _

  403.                          & "Output excel file on your Desktop!", 2)

  404.  

  405.         _Excel_BookSaveAs($oWorkbook, @DesktopDir & "\TestStatus_Export_" & @YEAR & @MON & @MDAY & "_" & @HOUR & @MIN & @SEC & ".xlsx", Default, False)

  406.         _Excel_Close($excel, True, True)

  407.  

  408. EndFunc   ;==>exporttoexcel

  409.  

  410.  

  411.  

  412. Func _ExcelBookNew($fVisible = 0)

  413.         Local $oExcel = ObjCreate("Excel.Application")

  414.         If Not IsObj($oExcel) Then Return SetError(1, 0, 0)

  415.         If Not IsNumber($fVisible) Then Return SetError(2, 0, 0)

  416.         If $fVisible > 1 Then $fVisible = 1

  417.         If $fVisible < 0 Then $fVisible = 0

  418.         With $oExcel

  419.                 .Visible = $fVisible

  420.                 .WorkBooks.Add

  421.                 .ActiveWorkbook.Sheets(1).Select()

  422.         EndWith

  423.         Return $oExcel

  424.  

  425.  

  426. EndFunc   ;==>_ExcelBookNew

  427.  

  428.  

  429.  

  430. Func _ExcelWriteCell($oExcel, $sValue, $sRangeOrRow, $iColumn = 1)

  431.         If Not IsObj($oExcel) Then Return SetError(1, 0, 0)

  432.         If Not StringRegExp($sRangeOrRow, "[A-Z,a-z]", 0) Then

  433.                 If $sRangeOrRow < 1 Then Return SetError(2, 0, 0)

  434.                 If $iColumn < 1 Then Return SetError(2, 1, 0)

  435.                 $oExcel.Activesheet.Cells($sRangeOrRow, $iColumn).Value = $sValue

  436.                 Return 1

  437.         Else

  438.                 $oExcel.Activesheet.Range($sRangeOrRow).Value = $sValue

  439.                 Return 1

  440.         EndIf

  441. EndFunc   ;==>_ExcelWriteCell

  442.  

  443.  

  444.  

  445. Func Timer0()

  446.  

  447.         _TicksToTime(Int(TimerDiff($g_hTimer0)), $g_iHour0, $g_iMins0, $g_iSecs0)

  448.         Local $sTime0 = $g_sTime0 ; save current time to be able to test and avoid flicker..

  449.         $g_sTime0 = StringFormat("Total Time: %02s hour, %02s min, %02s sec", $g_iHour0, $g_iMins0, $g_iSecs0)

  450.         If $sTime0 <> $g_sTime0 Then _GUICtrlStatusBar_SetText($StatusBar1, $g_sTime0)

  451.  

  452. EndFunc   ;==>Timer0

复制代码 高亮切换
附件: 您需要登录才可以下载或查看附件。没有帐号?加入

TOP

回复 13# q410225


    感謝您的幫忙, 快要成功了,
想問一下計時器的部分怪怪的, 沒有辦法這樣嗎 ---> $g_sTime & $j
  1. #include <ini.au3>
  2. #include <File.au3>
  3. #include <Date.au3>
  4. #include <Array.au3>
  5. #include <Excel.au3>
  6. #include <Constants.au3>
  7. #include <GuiListView.au3>
  8. #include <GuiImageList.au3>
  9. #include <GuiStatusBar.au3>
  10. #include <FileConstants.au3>
  11. #include <GUIConstantsEx.au3>
  12. #include <MsgBoxConstants.au3>
  13. #include <WindowsConstants.au3>

  14. Global $g_hTimer0, $g_iSecs0, $g_iMins0, $g_iHour0, $g_sTime0
  15. Global $g_hTimer1, $g_iSecs1, $g_iMins1, $g_iHour1, $g_sTime1
  16. Global $g_hTimer2, $g_iSecs2, $g_iMins2, $g_iHour2, $g_sTime2
  17. Global $g_hTimer3, $g_iSecs3, $g_iMins3, $g_iHour3, $g_sTime3
  18. Global $g_hTimer4, $g_iSecs4, $g_iMins4, $g_iHour4, $g_sTime4

  19. $Form1_1 = GUICreate("Test Schedule Management", 350, 330)
  20. $hListView = GUICtrlCreateListView("", 5, 5, 335, 245) ;, $LVS_SHOWSELALWAYS, $LVS_EX_GRIDLINES + $LVS_EX_FULLROWSELECT + $LVS_EX_DOUBLEBUFFER


  21. Global $sItemText ;this will store the text of the last right-clicked item.
  22. Global $sItemTextFilename111
  23. Global $sItemTextFilenameTester
  24. Global $sItemTextFilename1
  25. Global $sItemTextFilename4
  26. Global $sItemTextFilename5
  27. Global $sItemTextFilename7


  28. Global $aNewList[1000][1000]
  29. $aNewList[0][0] = 300
  30. ;===================================================================
  31. $Button1 = GUICtrlCreateButton("View", 360, 15, 73, 33)
  32. ;$Button2 = GUICtrlCreateButton("Done", 300, 362, 73, 33)
  33. $export = GUICtrlCreateButton("Export to Excel", 100, 562, 100, 33)
  34. $export2 = GUICtrlCreateButton("Export to HTML", 220, 562, 100, 33)

  35. $cInput_Filter = GUICtrlCreateInput("", 11, 620, 140, 20)
  36. $cButton_Filter = GUICtrlCreateButton("Filter", 160, 618, 75, 23)
  37. $cButton_All = GUICtrlCreateButton("Refresh", 360, 60, 73, 33)
  38. GUICtrlCreateLabel('Input Test Case, Product, Serial Number or Tester to filter data', 11, 650, 300, 100)
  39. ;===================================================================
  40. $idComboBox = GUICtrlCreateCombo("", 17, 1000, 135, 33)

  41. ;$analyze = GUICtrlCreateButton("Analyze", 940, 562, 100, 33)

  42. Local $hGUI, $ahIcons[2], $StatusBar0
  43. Local $aParts[4] = [900, 1160, 1380, 2500]

  44. $StatusBar0 = _GUICtrlStatusBar_Create($Form1_1)
  45. _GUICtrlStatusBar_SetParts($StatusBar0, $aParts)
  46. _GUICtrlStatusBar_SetText($StatusBar0, 'Tool will auto execute!!!')
  47. _GUICtrlStatusBar_SetText($StatusBar0, 'Foxconn@SIT1', 1)
  48. _GUICtrlStatusBar_SetText($StatusBar0, " Version: v1.0 ", 2)

  49. _GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES, $LVS_EX_SUBITEMIMAGES))



  50. ;;;;;;;;; Read testconfig.ini ;;;;;;;;;
  51. ;;;;;;;;; Read testconfig.ini ;;;;;;;;;
  52. ;;;;;;;;; Read testconfig.ini ;;;;;;;;;

  53. $testerread = _IniReadSection_line(@ScriptDir & '\testconfig.ini', 'TestConfig')
  54. $tester = $testerread[1]

  55. ;;;;;;;;; Read testconfig.ini ;;;;;;;;;
  56. ;;;;;;;;; Read testconfig.ini ;;;;;;;;;
  57. ;;;;;;;;; Read testconfig.ini ;;;;;;;;;



  58. GUISetState()

  59. _GUICtrlListView_RegisterSortCallBack($hListView)

  60. _GUICtrlListView_AddColumn($hListView, "File Name", 0) ;disappear file name
  61. _GUICtrlListView_AddColumn($hListView, "Test Case", 140)
  62. _GUICtrlListView_AddColumn($hListView, "Status", 80)
  63. _GUICtrlListView_AddColumn($hListView, "Process Time", 100)


  64. _GUICtrlListView_SetItemCount($hListView, 5000)


  65. ControlClick("Test Schedule Management", "", "[CLASS:Button; TEXT:View; INSTANCE:1]")


  66. While 1

  67.         GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") ;Double click value get

  68.         Switch GUIGetMsg()



  69.                 Case $GUI_EVENT_CLOSE
  70.                         Exit (_GUICtrlListView_UnRegisterSortCallBack($hListView))
  71.                         ExitLoop



  72.                 Case $hListView
  73.                         _GUICtrlListView_SortItems($hListView, GUICtrlGetState($hListView))



  74.                 Case $Button1
  75.                         $g_hTimer0 = TimerInit()
  76.                                                                 $g_hTimer1=TimerInit()
  77.                                                                 $g_hTimer2=TimerInit()
  78.                                                                 $g_hTimer3=TimerInit()
  79.                                                                 $g_hTimer4=TimerInit()
  80.                         ;GUICtrlSetState($Button1,$gui_disable)
  81.                         GUICtrlSetState($cButton_All, $gui_enable)

  82.                         ProgressOn("Test Management Progress Meter", "Progress...", "0%")
  83.                         Sleep(100)

  84.                         ProgressSet(0, "0%")

  85.                         ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 10mins time count
  86.                         Dim $tl = GUICtrlCreateLabel('00 min, 00 sec', 10000, 10000, 150, 15)
  87.                         GUISetState()
  88.                         Dim $timer = TimerInit(), $Day = 0

  89.                         AdlibRegister('Timer0', 500)

  90.                         ;AdlibRegister("Timer2",500)
  91.                         ;AdlibRegister("Timer3",500)
  92.                         ;AdlibRegister("Timer4",500)

  93.                         Local $hGUI, $ahIcons[2], $StatusBar1
  94.                         Local $aParts[4] = [900, 1160, 1380, 2500]
  95.                         $StatusBar1 = _GUICtrlStatusBar_Create($Form1_1)
  96.                         _GUICtrlStatusBar_SetParts($StatusBar1, $aParts)
  97.                         _GUICtrlStatusBar_SetText($StatusBar1, 'Tool will auto execute!!!')
  98.                         _GUICtrlStatusBar_SetText($StatusBar1, 'Foxconn@SIT1', 1)
  99.                         _GUICtrlStatusBar_SetText($StatusBar1, " Version: v1.0 ", 2)
  100.                         ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 10 mins time count

  101.                         Dim $OldList = "", $aNewList2 = ""


  102.                         AdlibRegister('_add_report_items111', 5000) ;reflash every 10min is 59925
  103.                         ProgressSet(100, "100%")
  104.                         Sleep(500)

  105.                         ProgressOff()

  106.                                                 _add_report_items111()


  107.                 Case $export
  108.                         MsgBox(0, "Export", "Export list view data to Excel", 1)
  109.                         exporttoexcel()



  110.                 Case $export2
  111.                         FileChangeDir(@DesktopDir)
  112.                         FileWrite("TestStatus_Export_" & @YEAR & @MON & @MDAY & @HOUR & @MIN & @SEC & ".html", _ListViewToHTMLTable($hListView))
  113.                         MsgBox(0, "", "Dump html file to: " & @DesktopDir & "\" & "table" & @YEAR & @MON & @MDAY & @HOUR & @MIN & ".html", 1)


  114.         EndSwitch
  115. WEnd





  116. Func _add_report_items111()

  117.         FileChangeDir(@ScriptDir)
  118.         Local $path, $aFileList, $aNewList[1][2]
  119.         $path = @ScriptDir

  120.         $aFileList = _FileListToArray($path, "*.txt")

  121.         If IsArray($aFileList) Then
  122.                 ReDim $aNewList[UBound($aFileList)][17] ;;;[Col count]
  123.                 Local $sComboTxt = "All Member"
  124.                 GUICtrlSetData($idComboBox, "")
  125.                 For $i = 1 To UBound($aFileList) - 1 Step 1
  126.                         $aNewList[0][1] = $i
  127.                         ;$aNewList[$i][0] = $aFileList[$i]
  128.                         $aNewList[$i][1] = FileReadLine($aFileList[$i], 1)
  129.                         $aNewList[$i][2] = FileReadLine($aFileList[$i], 2)
  130.                         $aNewList[$i][3] = ""
  131.                         $aNewList[$i][4] = FileReadLine($aFileList[$i], 4)
  132.                         $aNewList[$i][5] = FileReadLine($aFileList[$i], 5)
  133.                         $aNewList[$i][6] = FileReadLine($aFileList[$i], 6)
  134.                         $aNewList[$i][7] = FileReadLine($aFileList[$i], 7)
  135.                         $aNewList[$i][8] = FileReadLine($aFileList[$i], 8)

  136.                         If Not StringInStr($sComboTxt, $aNewList[$i][13]) Then $sComboTxt &= "|" & $aNewList[$i][13]

  137.                 Next

  138.                 _GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($hListView))
  139.                 _GUICtrlListView_AddArray($hListView, $aNewList)

  140.                 For $j = 0 To UBound($aNewList) - 1 Step 1
  141.                         _GUICtrlListView_SetItemText($hListView, $j + 1, " ", 7)
  142.                 Next

  143. ;~                                                                       $aNewList=$aNewList2
  144.                 ;GUICtrlSetData($idComboBox, $sComboTxt, "All Member")
  145.                 EndIf

  146.         $j = UBound($aNewList) - 1


  147.         If $aNewList[$j][2] = 'done' Then
  148.                 MsgBox(0, "", "全部是done了,可以注销了")
  149.                 AdlibUnRegister('_add_report_items111')
  150.                                 AdlibUnRegister('Timer0')
  151.                 EndIf



  152.         $aNewList[0][2] = 'done'  ;先設第一個為Done

  153.         For $j = 1 To UBound($aNewList) - 1
  154.                 If $aNewList[$j][2] = "done" Then
  155.                         AdlibUnRegister("Timer" & $j)
  156.                         _GUICtrlListView_SetItemText($hListView, $j, $g_sTime1, 3)
  157.                                                         ;$g_hTimer0=TimerInit()
  158.                                                          ;        $g_hTimer1=TimerInit()
  159.                                                         ;        $g_hTimer2=TimerInit()
  160.                                                         ;        $g_hTimer3=TimerInit()
  161.                                                         ;        $g_hTimer4=TimerInit()
  162.                                 EndIf

  163.                                 If $aNewList[$j][2] = "Preparing" Then
  164.                         AdlibRegister("Timer" & $j)
  165.                         _GUICtrlListView_SetItemText($hListView, $j, $g_sTime&$j, 3)
  166.                                                 ;AdlibRegister("Timer" & $j,500)
  167.                                                         ;$g_hTimer0=TimerInit()
  168.                                                          ;        $g_hTimer1=TimerInit()
  169.                                                         ;        $g_hTimer2=TimerInit()
  170.                                                         ;        $g_hTimer3=TimerInit()
  171.                                                         ;        $g_hTimer4=TimerInit()
  172.                                 EndIf

  173.                 If $aNewList[$j][2] = "---" And $aNewList[$j - 1][2] = "done" Then
  174.                         MsgBox(0, "", "程序准备完成,可以运行" & $aNewList[$j][1],1)
  175.                                                 run("_"&$aNewList[$j][1]&".exe")


  176.                         ExitLoop
  177.                 EndIf

  178.         Next
  179. EndFunc   ;==>_add_report_items111







  180. Func Timer1()

  181.         _TicksToTime(Int(TimerDiff($g_hTimer1)), $g_iHour1, $g_iMins1, $g_iSecs1)
  182.         Local $sTime1 = $g_sTime1 ; save current time to be able to test and avoid flicker..
  183.         $g_sTime1 = StringFormat("%02i:%02i:%02i", $g_iHour1, $g_iMins1, $g_iSecs1)
  184.         If $sTime1 <> $g_sTime1 Then _GUICtrlListView_SetItemText($hListView, 1, $g_sTime1, 3)

  185. EndFunc   ;==>Timer1



  186. Func Timer2()

  187.         _TicksToTime(Int(TimerDiff($g_hTimer2)), $g_iHour2, $g_iMins2, $g_iSecs2)
  188.         Local $sTime2 = $g_sTime2 ; save current time to be able to test and avoid flicker..
  189.         $g_sTime2 = StringFormat("%02i:%02i:%02i", $g_iHour2, $g_iMins2, $g_iSecs2)
  190.         If $sTime2 <> $g_sTime2 Then _GUICtrlListView_SetItemText($hListView, 2, $g_sTime2, 3)

  191. EndFunc   ;==>Timer2



  192. Func Timer3()

  193.         _TicksToTime(Int(TimerDiff($g_hTimer3)), $g_iHour3, $g_iMins3, $g_iSecs3)
  194.         Local $sTime3 = $g_sTime3 ; save current time to be able to test and avoid flicker..
  195.         $g_sTime3 = StringFormat("%02i:%02i:%02i", $g_iHour3, $g_iMins3, $g_iSecs3)
  196.         If $sTime3 <> $g_sTime3 Then _GUICtrlListView_SetItemText($hListView, 3, $g_sTime3, 3)

  197. EndFunc   ;==>Timer3



  198. Func Timer4()

  199.         _TicksToTime(Int(TimerDiff($g_hTimer4)), $g_iHour4, $g_iMins4, $g_iSecs4)
  200.         Local $sTime4 = $g_sTime4 ; save current time to be able to test and avoid flicker..
  201.         $g_sTime4 = StringFormat("%02i:%02i:%02i", $g_iHour4, $g_iMins4, $g_iSecs4)
  202.         If $sTime4 <> $g_sTime4 Then _GUICtrlListView_SetItemText($hListView, 4, $g_sTime4, 3)

  203. EndFunc   ;==>Timer4



  204. Func _ListViewToHTMLTable($hList)
  205.         Local $sHTML, $iColCount, $iRowCount
  206.         $iColCount = _GUICtrlListView_GetColumnCount($hList)

  207.         $sHTML = "<P></P><B>Test Management Tool Report</B>" & "<P></P>" & "<table width='1500' border='2' BGColor='#c4d6f6'>" & @LF & "<tr>" & @LF
  208.         ;创建表头
  209.         For $i = 0 To $iColCount - 1
  210.                 $aInfo = _GUICtrlListView_GetColumn($hList, $i)
  211.                 $sHTML = $sHTML & "<th scope='col' BGColor='#FFFFFF'>" & $aInfo[5] & "</th>" & @LF
  212.         Next
  213.         ;添加数据
  214.         $iRowCount = _GUICtrlListView_GetItemCount($hList)
  215.         For $i = 0 To $iRowCount - 1
  216.                 $sHTML = $sHTML & "<tr>" & @LF
  217.                 For $j = 0 To $iColCount - 1
  218.                         $aInfo = _GUICtrlListView_GetItem($hList, $i, $j)
  219.                         $sHTML = $sHTML & "<th>" & $aInfo[3] & "</th>" & @LF
  220.                 Next
  221.                 $sHTML = $sHTML & "</tr>" & @LF
  222.         Next

  223.         $sHTML = $sHTML & "</table>"
  224.         ;MsgBox(0,"",$sHTMl)
  225.         Return $sHTML
  226. EndFunc   ;==>_ListViewToHTMLTable







  227. Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)

  228.         #forceref $hWnd, $iMsg, $iwParam
  229.         Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView, $tInfo

  230.         $hWndListView = GUICtrlGetHandle($hListView)
  231.         $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
  232.         $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
  233.         $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
  234.         $iCode = DllStructGetData($tNMHDR, "Code")
  235.         ;$Index = GUICtrlRead($hListView)


  236.         Switch $hWndFrom
  237.                 Case $hWndListView


  238.                         Switch $iCode
  239.                                 Case $NM_DBLCLK
  240.                                         $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
  241.                                         $Index = DllStructGetData($tInfo, "Index")
  242.                                         $DoubleClick = _GUICtrlListView_GetItemText($hListView, $Index, 1) ;GetItemText IP address
  243.                                         MsgBox(0, "Message", $DoubleClick)


  244.                                 Case $NM_RCLICK
  245.                                         $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
  246.                                         $Index = DllStructGetData($tInfo, "Index")
  247.                                         $SubItem = DllStructGetData($tInfo, "SubItem")
  248.                                         ;$sItemText =  _GUICtrlListView_GetItemText($hWndListView, $Index, $SubItem) ;GetItemText every location
  249.                                         $sItemText = _GUICtrlListView_GetItemText($hListView, $Index, 12)
  250.                                         $sItemTextFilename111 = _GUICtrlListView_GetItemText($hListView, $Index, 3)
  251.                                         $sItemTextFilenameTester = _GUICtrlListView_GetItemText($hListView, $Index, 13)

  252.                                         $sItemTextFilename1 = _GUICtrlListView_GetItemText($hListView, $Index, 1)
  253.                                         $sItemTextFilename4 = _GUICtrlListView_GetItemText($hListView, $Index, 4)
  254.                                         $sItemTextFilename5 = _GUICtrlListView_GetItemText($hListView, $Index, 5)
  255.                                         $sItemTextFilename7 = _GUICtrlListView_GetItemText($hListView, $Index, 7)



  256.                                 Case $NM_CUSTOMDRAW
  257.                                         Local $tCustDraw = DllStructCreate($tagNMLVCUSTOMDRAW, $ilParam)
  258.                                         Local $iDrawStage = DllStructGetData($tCustDraw, "dwDrawStage")
  259.                                         If $iDrawStage = $CDDS_PREPAINT Then Return $CDRF_NOTIFYITEMDRAW
  260.                                         If $iDrawStage = $CDDS_ITEMPREPAINT Then Return $CDRF_NOTIFYSUBITEMDRAW
  261.                                         Local $iItem = DllStructGetData($tCustDraw, "dwItemSpec")
  262.                                         Local $iSubItem = DllStructGetData($tCustDraw, "iSubItem")
  263.                                         Local $sComboRead = GUICtrlRead($idComboBox)

  264.                         EndSwitch
  265.         EndSwitch
  266.         Return $GUI_RUNDEFMSG

  267. EndFunc   ;==>WM_NOTIFY



  268. Func _ShowText()
  269.         If $sItemText <> "" Then MsgBox(0, "Test", $sItemText)
  270. EndFunc   ;==>_ShowText



  271. Func exporttoexcel() ;EXPORT TO EXCEL
  272.         $col = 0
  273.         $count = _GUICtrlListView_GetItemCount($hListView)
  274.         GUICtrlSetState($export, $gui_enable)



  275.         $excel = _ExcelBookNew()
  276.         $oWorkbook = _Excel_BookNew($excel)


  277.         _ExcelWriteCell($excel, "1", 2, 2)
  278.         _ExcelWriteCell($excel, "2", 2, 3)
  279.         _ExcelWriteCell($excel, "3", 2, 4)
  280.         _ExcelWriteCell($excel, "4", 2, 5)
  281.         _ExcelWriteCell($excel, "5", 2, 6)
  282.         _ExcelWriteCell($excel, "6", 2, 7)
  283.         _ExcelWriteCell($excel, "7", 2, 8)
  284.         _ExcelWriteCell($excel, "8", 2, 9)
  285.         _ExcelWriteCell($excel, "9", 2, 10)

  286.         For $colexcel = 0 To $col

  287.                 $i = 0
  288.                 Do
  289.                         _ExcelWriteCell($excel, _GUICtrlListView_GetItemText($hListView, $i, 0), 3 + $i, 1)
  290.                         _ExcelWriteCell($excel, _GUICtrlListView_GetItemText($hListView, $i, 1), 3 + $i, 2)
  291.                         _ExcelWriteCell($excel, _GUICtrlListView_GetItemText($hListView, $i, 2), 3 + $i, 3)
  292.                         _ExcelWriteCell($excel, _GUICtrlListView_GetItemText($hListView, $i, 3), 3 + $i, 4)
  293.                         _ExcelWriteCell($excel, _GUICtrlListView_GetItemText($hListView, $i, 4), 3 + $i, 5)
  294.                         _ExcelWriteCell($excel, _GUICtrlListView_GetItemText($hListView, $i, 5), 3 + $i, 6)
  295.                         _ExcelWriteCell($excel, _GUICtrlListView_GetItemText($hListView, $i, 6), 3 + $i, 7)
  296.                         _ExcelWriteCell($excel, _GUICtrlListView_GetItemText($hListView, $i, 7), 3 + $i, 8)
  297.                         _ExcelWriteCell($excel, _GUICtrlListView_GetItemText($hListView, $i, 8), 3 + $i, 9)

  298.                         $i = $i + 1
  299.                 Until $i = $count
  300.         Next


  301.         MsgBox(64, "Message", "Export completed!" & @CRLF _
  302.                          & " " & @CRLF _
  303.                          & "Output excel file on your Desktop!", 2)

  304.         _Excel_BookSaveAs($oWorkbook, @DesktopDir & "\TestStatus_Export_" & @YEAR & @MON & @MDAY & "_" & @HOUR & @MIN & @SEC & ".xlsx", Default, False)
  305.         _Excel_Close($excel, True, True)

  306. EndFunc   ;==>exporttoexcel



  307. Func _ExcelBookNew($fVisible = 0)
  308.         Local $oExcel = ObjCreate("Excel.Application")
  309.         If Not IsObj($oExcel) Then Return SetError(1, 0, 0)
  310.         If Not IsNumber($fVisible) Then Return SetError(2, 0, 0)
  311.         If $fVisible > 1 Then $fVisible = 1
  312.         If $fVisible < 0 Then $fVisible = 0
  313.         With $oExcel
  314.                 .Visible = $fVisible
  315.                 .WorkBooks.Add
  316.                 .ActiveWorkbook.Sheets(1).Select()
  317.         EndWith
  318.         Return $oExcel


  319. EndFunc   ;==>_ExcelBookNew



  320. Func _ExcelWriteCell($oExcel, $sValue, $sRangeOrRow, $iColumn = 1)
  321.         If Not IsObj($oExcel) Then Return SetError(1, 0, 0)
  322.         If Not StringRegExp($sRangeOrRow, "[A-Z,a-z]", 0) Then
  323.                 If $sRangeOrRow < 1 Then Return SetError(2, 0, 0)
  324.                 If $iColumn < 1 Then Return SetError(2, 1, 0)
  325.                 $oExcel.Activesheet.Cells($sRangeOrRow, $iColumn).Value = $sValue
  326.                 Return 1
  327.         Else
  328.                 $oExcel.Activesheet.Range($sRangeOrRow).Value = $sValue
  329.                 Return 1
  330.         EndIf
  331. EndFunc   ;==>_ExcelWriteCell



  332. Func Timer0()

  333.         _TicksToTime(Int(TimerDiff($g_hTimer0)), $g_iHour0, $g_iMins0, $g_iSecs0)
  334.         Local $sTime0 = $g_sTime0 ; save current time to be able to test and avoid flicker..
  335.         $g_sTime0 = StringFormat("Total Time: %02s hour, %02s min, %02s sec", $g_iHour0, $g_iMins0, $g_iSecs0)
  336.         If $sTime0 <> $g_sTime0 Then _GUICtrlStatusBar_SetText($StatusBar1, $g_sTime0)

  337. EndFunc   ;==>Timer0
复制代码

TOP

回复 14# ipmitool

你可以用Eval('g_sTime' & $j)

TOP

返回列表