Guest User

Live Filter

a guest
Feb 20th, 2013
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
AutoIt 2.20 KB | None | 0 0
  1. #include <GUIConstants.au3>
  2. #include <Excel.au3>
  3. #include <Array.au3>
  4. #include <GuiListview.au3>
  5.  
  6.  
  7. Global $filter1, $filter2, $filter3, $filter4
  8.  
  9.  
  10. $oExcel = _ExcelBookOpen(@ScriptDir & "\test.xls", 0, False, "", "")
  11. $aSheet = _ExcelReadSheetToArray($oExcel, 2, 1, 5, 4, True)
  12. _ExcelBookClose($oExcel)
  13. GUICreate("", 450, 200)
  14. GUICtrlCreateLabel("Test 01", 10, 10)
  15. GUICtrlCreateLabel("Test 02", 120, 10)
  16. GUICtrlCreateLabel("Test 03", 230, 10)
  17. GUICtrlCreateLabel("Test 04", 340, 10)
  18. $01 = GUICtrlCreateInput("", 10, 25, 100, 22)
  19. $02 = GUICtrlCreateInput("", 120, 25, 100, 22)
  20. $03 = GUICtrlCreateInput("", 230, 25, 100, 22)
  21. $04 = GUICtrlCreateInput("", 340, 25, 100, 22)
  22. $ListView = GUICtrlCreateListView("Test 01|Test 02|Test 03|Test 04", 10, 60, 430, 130)
  23. For $i = 1 To UBound($aSheet) - 1
  24.     GUICtrlCreateListViewItem($aSheet[$i][0] & "|" & $aSheet[$i][1] & "|" & $aSheet[$i][2] & "|" & $aSheet[$i][3], $ListView)
  25. Next
  26. GUISetState()
  27. While 1
  28.     $iMsg = GUIGetMsg()
  29.     Switch $iMsg
  30.         Case $GUI_EVENT_CLOSE
  31.             Exit
  32.     EndSwitch
  33.  
  34.     If GUICtrlRead($01) <> $filter1 Or GUICtrlRead($02) <> $filter2 Or GUICtrlRead($03) <> $filter3 Or GUICtrlRead($04) <> $filter4 Then ; Wenn sich der Text in einem der Inputs geändert hat dann
  35.         $filter1 = GUICtrlRead($01) ; werden diese
  36.         $filter2 = GUICtrlRead($02) ; vier Variablen
  37.         $filter3 = GUICtrlRead($03) ; auf den Inhalt
  38.         $filter4 = GUICtrlRead($04) ; des jeweiligen Inputs gesetzt.
  39.         _GUICtrlListView_DeleteAllItems($ListView) ; Dann werden alle Listview items gelöscht.
  40.         For $i = 1 To UBound($aSheet) - 1
  41.             If (StringInStr($aSheet[$i][0], $filter1) Or $filter1 = "") And (StringInStr($aSheet[$i][1], $filter2) Or $filter2 = "") And (StringInStr($aSheet[$i][2], $filter3) Or $filter3 = "") And (StringInStr($aSheet[$i][3], $filter4) Or $filter4 = "") Then ; Hier wird für jeden Filter einzeln überprüft ob er im jeweiligen String drin ist.
  42.                 GUICtrlCreateListViewItem($aSheet[$i][0] & "|" & $aSheet[$i][1] & "|" & $aSheet[$i][2] & "|" & $aSheet[$i][3], $ListView)
  43.             EndIf
  44.         Next
  45.     EndIf
  46.  
  47.  
  48. WEnd
  49.  
  50.  
  51. ;Filter Erklärung
  52. ; Wenn der Filter1 im String1 enthalten ist oder Filter1 garnichts ist  UND  der Filter2 im String2 enthalten ist oder Filter2 garnichts ist UND ...
Add Comment
Please, Sign In to add comment