1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. TheLuBu

Beiträge von TheLuBu

  • Excel Makro in Autoit umsetzen

    • TheLuBu
    • 15. Februar 2011 um 09:34

    Hallo liebe Community,
    Ich möchte gerne ein Makro, welches von einem ehemaligen Mitarbeiter in Excel verfasst wurde, in ein AutoIt Programm einbauen.

    Hier erstmal das Makro

    Spoiler anzeigen
    Code
    Dim Bereich As Object, Zeile As Object, Zelle As Object
    Dim strTemp As String
    Dim strDateiname As String
    Dim strTrennzeichen As String
    Dim strMappenpfad As String
    
    
    strMappenpfad = ActiveWorkbook.FullName
    strMappenpfad = Replace(strMappenpfad, ".xls", ".csv")
    
    
    strDateiname = InputBox("Wie soll die CSV-Datei heißen (inkl. Pfad)?", "CSV-Export", strMappenpfad)
    If strDateiname = "" Then Exit Sub
    
    
    strTrennzeichen = InputBox("Welches Trennzeichen soll verwendet werden?", "CSV-Export", ",")
    If strTrennzeichen = "" Then Exit Sub
    
    
      Set Bereich = ActiveSheet.UsedRange
    
    
      Open strDateiname For Output As #1
    
    
      For Each Zeile In Bereich.Rows
        For Each Zelle In Zeile.Cells
          If InStr(1, Zelle.Text, strTrennzeichen) > 0 Then
            'Zellen, die ein Trennzeichen beinhalten in Anführungsstriche setzen
            strTemp = strTemp & """" & CStr(Zelle.Text) & """" & strTrennzeichen
          Else
            strTemp = strTemp & CStr(Zelle.Text) & strTrennzeichen
          End If
        Next
        If Right(strTemp, 1) = strTrennzeichen Then strTemp = Left(strTemp, Len(strTemp) - 1)
        Print #1, strTemp
        strTemp = ""
      Next
    
    
      Close #1
      Set Bereich = Nothing
      MsgBox "Datei wurde exportiert nach" & vbCrLf & strDateiname
    
    End Sub
    Alles anzeigen

    DIe Exceldatei, die wir mit diesem Makro umwandeln, wird an einen Auftraggeber gesendet und dort verarbeitet.
    Normalerweise würde ich jetzt testen, ob es klappt, aber das geht eben nicht, weil ich nicht weiß wie die datei verarbeitet wird.

    Hier der Code, den ich bis jetzt übersetzen konnte, aber nun komme ich nicht mehr weiter, da ich die Befehle nicht kenne

    Spoiler anzeigen
    [autoit]

    Dim $strTemp = ""

    [/autoit] [autoit][/autoit] [autoit]

    $strMappenpfad = $oExcel.ActiveWorkBook.FullName
    $strMappenpfad = StringReplace($strMappenpfad, ".xls", ".csv")
    $strDateiname = InputBox("CSV-Export", "Wie soll die CSV-Datei heißen (inkl. Pfad)?", $strMappenpfad)
    If $strDateiname = "" Then Return SetError(1, 0, 0)
    $strTrennzeichen = InputBox("CSV-Export", "Welches Trennzeichen soll verwendet werden?", ",")
    If $strTrennzeichen = "" Then Return SetError(2, 0, 0)
    $Bereich = _ExcelSheetUsedRangeGet($oExcel, $vSheet)

    [/autoit] [autoit][/autoit] [autoit]

    Open strDateiname For Output As #1

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 1 To $Bereich[3]
    For $k = 1 To $Bereich[2]
    $Inhalt = _ExcelReadCell($oExcel, $i, $k)
    If StringInStr($Inhalt, $strTrennzeichen) > 0 Then ; Zellen, die ein Trennzeichen beinhalten in Anführungsstriche setzen
    _ExcelWriteCell($oExcel, '"'&$Inhalt&'"'&$strTrennzeichen, $i, $k)
    Else
    _ExcelWriteCell($oExcel, $Inhalt&$strTrennzeichen, $i, $k)
    EndIf
    Next
    For Each Zeile In Bereich.Rows
    For Each Zelle In Zeile.Cells
    If InStr(1, Zelle.Text, strTrennzeichen) > 0 Then
    'Zellen, die ein Trennzeichen beinhalten in Anführungsstriche setzen
    strTemp = strTemp & """" & CStr(Zelle.Text) & """" & strTrennzeichen
    Else
    strTemp = strTemp & CStr(Zelle.Text) & strTrennzeichen
    End If
    Next
    If Right(strTemp, 1) = strTrennzeichen Then strTemp = Left(strTemp, Len(strTemp) - 1)
    Print #1, strTemp
    strTemp = ""
    Next

    [/autoit] [autoit][/autoit] [autoit]

    Close #1
    Set Bereich = Nothing
    MsgBox "Datei wurde exportiert nach" & vbCrLf & strDateiname

    [/autoit] [autoit][/autoit] [autoit]

    End Sub
    ;===============================================================================
    ;
    ; Description: Return the last cell of the used range in the specified worksheet.
    ; Syntax: $array = _ExcelSheetUsedRangeGet($oExcel, $vSheet)
    ; Parameter(s): $oExcel - An Excel object opened by a preceding call to _ExcelBookOpen() or _ExcelBookNew()
    ; $vSheet - The sheet name or number to be checked.
    ; Requirement(s): None
    ; Return Value(s): On Success - Returns an array of used range values:
    ; $array[0] - The last cell used, in A1 format (if 0 is returned, worksheet is blank)
    ; $array[1] - The last cell used, in R1C1 format
    ; $array[2] - The last column used, as an integer
    ; $array[3] - The last row used, as an integer
    ; On Failure - Returns 0 (as non-array numeric value) and sets @error on errors:
    ; @error=1 - Specified object does not exist
    ; @error=2 - Invalid sheet number
    ; @error=3 - Invalid sheet name
    ; Author(s): DaLiMan, MRDev, SEO <locodarwin at yahoo dot com>
    ; Note(s): Upon return, $array[0] will equal numeric value 0 if the worksheet is blank
    ;
    ;===============================================================================
    Func _ExcelSheetUsedRangeGet($oExcel, $vSheet)
    Local $aSendBack[4], $sTemp, $aSheetList, $fFound = 0
    If NOT IsObj($oExcel) Then Return SetError(1, 0, 0)
    If IsNumber($vSheet) Then
    If $oExcel.ActiveWorkbook.Sheets.Count < $vSheet Then Return SetError(2, 0, 0)
    Else
    $aSheetList = _ExcelSheetList($oExcel)
    For $xx = 1 To $aSheetList[0]
    If $aSheetList[$xx] = $vSheet Then $fFound = 1
    Next
    If NOT $fFound Then Return SetError(3, 0, 0)
    EndIf
    $oExcel.ActiveWorkbook.Sheets($vSheet).Select
    $aSendBack[0] = $oExcel.Application.Selection.SpecialCells($xlCellTypeLastCell).Address
    $aSendBack[1] = $oExcel.Application.Selection.SpecialCells($xlCellTypeLastCell).Address(True, True, $xlR1C1)
    $aSendBack[0] = StringReplace($aSendBack[0], "$", "")
    $sTemp = StringRegExp($aSendBack[1], "[RZ]([^CS]*)[CS](.*)",3)
    $aSendBack[2] = Number($sTemp[1])
    $aSendBack[3] = Number($sTemp[0])
    If $aSendBack[0] = "A1" And $oExcel.Activesheet.Range($aSendBack[0]).Value = "" Then $aSendBack[0] = 0
    Return $aSendBack
    EndFunc ;==>_ExcelSheetUsedRangeGet

    [/autoit]

    Ich würde mich über eine Eingebung freuen ;)

  • Frage zu If...Then

    • TheLuBu
    • 11. Februar 2011 um 12:26

    Ich sehe keine Frage ^^

    [autoit]

    ; Abfragen ob das Programm (Opera) schon installiert wurde.
    For $LV = 1 To 300
    $Regkey = RegEnumKey("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\", $LV)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $Regkey= ' & $Regkey& @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    If $Regkey = "Opera 11.01.1190" Then
    MsgBox(262192, "gefunden", " Das Programm wurde schon installiert !")
    Exit
    EndIf
    Next

    [/autoit]

    Damit kannst eden Fehlercode auslesen, falls du danach suchst ;)

  • Tipp: VBA-Referenz (Word/Excel)

    • TheLuBu
    • 7. Februar 2011 um 22:50

    Ich war schon lange auf der Suche nach sowas,
    Danke dir BugFix

    --EDIT--
    Ich habe noch folgenden Link gefunden:
    _Link
    dort wird die Änderung von Office 2010 bzw. speziell Excel 2010 erklärt
    (Die Excel UDF aus dem Amerikanischen Forum wurde bis jetzt noch nicht angepasst)

    Auch die neue Art und Weise, wie ExcelSave bzw. ExcelSaveAs funktioniert werden verständlich erklärt,
    das dann in Autoit umzusettzen ist ein Kinderspiel

  • 50 oder mehr 0 oder weniger bei ladebalken/guictrlread

    • TheLuBu
    • 7. Februar 2011 um 20:41
    [autoit]

    If $i < 75 AND $i > 50 Then
    MSgBox (0, "", "Zwischen 50 und 75")
    EndIf

    [/autoit]

    Siehe auch http://translation.autoit.de/onlinehilfe/in…g_operators.htm

  • 50 oder mehr 0 oder weniger bei ladebalken/guictrlread

    • TheLuBu
    • 7. Februar 2011 um 20:22

    da du denke ich mal den Status berechnest, kannst du ja direkt die Variable nutzen, um zu überprüfen, ob die kleiner 0 ist

    [autoit]

    $Gui =GUICreate("bla", 100, 100)
    $Progress = GUICtrlCreateProgress(0,0, 90, 90)

    [/autoit][autoit][/autoit][autoit]

    GUISetState(@SW_SHOW, $Gui)

    [/autoit][autoit][/autoit][autoit]

    For $i = 100 To - 100 Step -1
    GUICtrlSetData($Progress, $i)
    Sleep(100)
    If $i < 0 Then
    MSgBox (0, "", "Unter 0")
    ExitLoop
    EndIf
    Next

    [/autoit]
  • Hilfe bei AutoIT

    • TheLuBu
    • 7. Februar 2011 um 15:52
    Zitat von Lupos


    Ich glaube wir reden aneinander vobrei, wollte eigentlich wissen ob ich an deiner Funktion noch was ändern muss und wofür steht bei WDAY die 6 für Samstag? Müsste dort nicht eine 5 stehen für Freitag?
    Zusatz: Verstehe das mit den Sternchen nicht!

    Mit Sternchen meinte er deine Funktion, die um Punkt 1:00 freitags laufen soll
    WDay 6 ist Freitag, da bei AutoIT WDay 1 Sonntag ist

    [autoit]

    Do
    Until _zeit()
    MsgBox(0, "", Es ist jetzt Freitag um genau 1:00 Uhr)
    Func _zeit()
    If @WDAY = 6 and @hour = 1 and @MIN = 0 and @sec = 0 Then return true ;das Programm ausführen
    return false
    endfunc

    [/autoit]
  • Obfuscator Error 2047 Solver

    • TheLuBu
    • 2. Februar 2011 um 12:34

    Ich hatte folgenden Fehler beim Obfuscator für mein Programm

    Zitat

    !File contains records longer than 2047 .. stopping process.
    !Ending Obfuscator program.

    Da ich sehr viele Includes hatte, mein Hauptscript aber in Ordnung war, habe ich ein kleines Script geschrieben, was alle Includes, die im Hauptscript angegeben sind und das Hauptscript selbst, durchsucht und die entsprechende Zeile und Datei ausgibt.
    Vielleicht kann es jemand nutzen!

    Spoiler anzeigen
    [autoit]

    #Include <File.au3>
    #Include <Array.au3>
    opt("MustDeclareVars", 1)
    Local $aArray2[1], $s1, $Scriptpath, $rows, $search, $split, $trim

    [/autoit] [autoit][/autoit] [autoit]

    $s1 = Stringsplit(@AutoItExe, "autoit3.exe", 1 )
    $Scriptpath = FileOpenDialog("Script öffnen", @DesktopDir&"\", "Scriptfile (*.au3)" )
    $rows =_FileCountLines($Scriptpath)
    Local $aArray[$rows + 1]
    _FileReadToArray($Scriptpath, $aArray)
    $search = _ArrayFindAll($aArray, "#include", 0,0,0,1)
    For $k = 1 To $aArray[0]
    If StringLen($aArray[$k]) >= 2047 Then
    MsgBox(0, "2047", "Zeile "&$k&" in der Datei "&@ScriptName&" ist länger als 2047 Zeichen")
    EndIf
    Next
    For $i = 0 To UBound($search) -1
    $split = Stringsplit($aArray[$search[$i]], "<")
    $trim = Stringtrimright($split[2], 1)
    $rows =_FileCountLines($s1[1]&"Include\"&$trim)
    ReDim $aArray2[$rows + 1]
    _FileReadToArray($s1[1]&"Include\"&$trim, $aArray2)
    For $k = 1 To $aArray2[0]
    If StringLen($aArray2[$k]) >= 2047 Then
    MsgBox(0, "2047", "Zeile "&$k&" in der Datei "&$trim&" ist länger als 2047 Zeichen")
    EndIf
    Next
    Next

    [/autoit]

    Zum kürzen der Zeile ist

    [autoit]

    "Anzahl der Zeichen bis 2044"&_
    "zeichen Ab 2045"

    [/autoit]


    zu benutzen ( nur 2044, da "&_ noch hinzugefügt werden müssen)

  • _GUICtrlListView_SetItemText funktioniert nicht

    • TheLuBu
    • 26. Januar 2011 um 13:01

    Hallöchen ihr lieben,
    ich sitze gerade an einem Listview, eher gesagt an 2 Listviews.
    Im Linken Listview stehen Usernamen, im rechten einige Daten zu diesen Usern.
    Ich möchte nun das rechte Listview sortierbar machen mit

    [autoit]

    _GUICtrlListView_RegisterSortCallBack
    _GUICtrlListView_SortItems

    [/autoit]

    Soweit klappt es auch, nur ändern sich dadurch ja nicht die Einträge des ersten Listviews.
    Ich habe jetzt eine Möglichkeit gefunden (dachte ich ^^), das erste Listview ebenfalls umzustellen.
    Allerdings klappt dabei _GUICtrlListView_SetItemText nicht

    Hier ein Beispielscript

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <TabConstants.au3>
    #include <WindowsConstants.au3>
    #include <ListviewConstants.au3>
    #include <GuiListView.au3>
    #include <Date.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $Kampcode[15][3], $newarray[16][15], $AgentKamp[15], $iActiveAgent, $iActiveTab, $Sortarray[1][2]

    [/autoit] [autoit][/autoit] [autoit]

    $Datumsplitnow = StringSplit(_NowCalcDate(), "/")
    $iDay = $Datumsplitnow[3]
    $iMonth = $Datumsplitnow[2]
    $iYear = $Datumsplitnow[1]
    $Yearsplit = StringSplit($iYear, "")
    $DatumJJ = $Yearsplit[3] & $Yearsplit[4]

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 1 To 14
    For $k = 1 To 14
    $newarray[$i][$k] = Random(0, 9999, 1)
    Next
    Next
    _ArrayDisplay($newarray)
    $newarray[15][13] = "Suche1"
    $newarray[15][12] = "Suche2"
    $newarray[15][11] = "Suche3"
    $newarray[15][9] = "Suche4"
    $newarray[1][1] = "A"
    $newarray[2][1] = "B"
    $newarray[3][1] = "C"
    $newarray[4][1] = "D"
    $newarray[5][1] = "E"
    $newarray[6][1] = "F"
    $newarray[7][1] = "G"
    $newarray[8][1] = "H"
    $newarray[9][1] = "I"
    $newarray[10][1] = "J"
    $newarray[11][1] = "K"
    $newarray[12][1] = "L"
    $newarray[13][1] = "M"
    $newarray[14][1] = "N"
    _ArrayDisplay($newarray)
    $AgentKamp[1] = "|A|B|C|D|E|F|G|"
    $AgentKamp[2] = "|A|B|C|D|E|F|G|H|I|J|K|L|M"
    $AgentKamp[3] = "|A|B|C|D|E|F|G|"
    $AgentKamp[4] = "|A|B|C|D|E|F|G|"
    $AgentKamp[5] = "|A|B|C|D|E|F|G|"
    $AgentKamp[6] = "|A|B|C|D|E|F|G|H|I|J|K|L|M|N|"
    $AgentKamp[7] = "|A|B|C|D|E|F|G|"
    $AgentKamp[8] = "|A|B|C|D|E|F|G|"
    $AgentKamp[9] = "|A|B|C|D|E|F|G|"
    $AgentKamp[10] = "|A|B|C|D|E|F|G|H|I|J|K|L|M|N|"
    $AgentKamp[11] = "|A|B|C|D|E|F|G|"
    $AgentKamp[12] = "|A|B|C|D|E|F|G|H|I|J|K|L|M|N|"
    $AgentKamp[13] = "|A|B|C|D|E|F|G|"
    $AgentKamp[14] = "|A|B|C|D|E|F|G|"

    [/autoit] [autoit][/autoit] [autoit]

    $Kampcode[1][2] = '1_' & $iMonth & '_' & $DatumJJ
    $Kampcode[2][2] = '2_' & $iMonth & '_' & $DatumJJ
    $Kampcode[3][2] = '3_' & $iMonth & '_' & $DatumJJ
    $Kampcode[4][2] = '4_' & $iMonth & '_' & $DatumJJ
    $Kampcode[5][2] = '5_' & $iMonth & '_' & $DatumJJ
    $Kampcode[6][2] = '6_' & $iMonth & '_' & $DatumJJ
    $Kampcode[7][2] = '7_' & $iMonth & '_' & $DatumJJ
    $Kampcode[8][2] = '8_' & $iMonth & '_' & $DatumJJ
    $Kampcode[9][2] = '9_' & $iMonth & '_' & $DatumJJ
    $Kampcode[10][2] = '10_' & $iMonth & '_' & $DatumJJ
    $Kampcode[11][2] = '11_' & $iMonth & '_' & $DatumJJ
    $Kampcode[12][2] = '12_' & $iMonth & '_' & $DatumJJ
    $Kampcode[13][2] = '13_' & $iMonth & '_' & $DatumJJ
    $Kampcode[14][2] = '14_' & $iMonth & '_' & $DatumJJ

    [/autoit] [autoit][/autoit] [autoit]

    Dim $Tabs[UBound($Kampcode)]
    Dim $LV_Kontakt[UBound($Kampcode)]
    Dim $LV_Agent[UBound($Kampcode)]
    Dim $hLV_Kontakt[UBound($Kampcode)]
    Dim $hLV_Agent[UBound($Kampcode)]
    Dim $Kampkennzahl[UBound($Kampcode)]

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To UBound($LV_Agent) - 1
    $LV_Agent[$i] = -9999
    $LV_Kontakt[$i] = -9999
    Next

    [/autoit] [autoit][/autoit] [autoit]

    $Viewgui = GUICreate("Tabbed Monitoring Dialog", 407, 438, 193, 85)
    $PageControl1 = GUICtrlCreateTab(8, 8, 396, 384, $WS_VSCROLL)
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
    $Zeile = UBound($newarray) - 1
    #region Suche
    $List1 = _Array2DSearch($newarray, "Suche1", -1, UBound($newarray) - 2, 0, 0, False, True)
    $s1 = StringSplit($List1[0], "|")

    [/autoit] [autoit][/autoit] [autoit]

    $List2 = _Array2DSearch($newarray, "Suche2", -1, UBound($newarray) - 2, 0, 0, False, True)
    $s2 = StringSplit($List2[0], "|")

    [/autoit] [autoit][/autoit] [autoit]

    $List3 = _Array2DSearch($newarray, "Suche3", -1, UBound($newarray) - 2, 0, 0, False, True)
    $s3 = StringSplit($List3[0], "|")

    [/autoit] [autoit][/autoit] [autoit]

    $List4 = _Array2DSearch($newarray, "Suche4", -1, UBound($newarray) - 2, 0, 0, True, False)
    #endregion Suche
    For $i = 1 To UBound($Kampcode) - 1
    $Tabs[$i] = GUICtrlCreateTabItem($Kampcode[$i][2])
    $data = StringSplit($AgentKamp[$i], "|")
    $LV_Agent[$i] = GUICtrlCreateListView("Agent ", 16, 160, 128, 224, -1, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_TRACKSELECT))
    _GUICtrlListView_RegisterSortCallBack($LV_Agent[$i])
    $hLV_Agent[$i] = GUICtrlGetHandle($LV_Agent[$i])
    GUICtrlSetBkColor($LV_Agent[$i], 0xFFFFFF)
    GUICtrlSetBkColor($LV_Agent[$i], $GUI_BKCOLOR_LV_ALTERNATE)
    For $k = 2 To $data[0]
    GUICtrlCreateListViewItem($data[$k], $LV_Agent[$i])
    GUICtrlSetBkColor(-1, 0xFFDEAD)
    Next
    $LV_Kontakt[$i] = GUICtrlCreateListView("Spalte 1|Spalte 2|Spalte 3|Spalte 4|Spalte 5", 145, 160, 238, 224, -1, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_TRACKSELECT))
    _GUICtrlListView_RegisterSortCallBack($LV_Kontakt[$i])
    $hLV_Kontakt[$i] = GUICtrlGetHandle($LV_Kontakt[$i])

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlSetBkColor($LV_Kontakt[$i], 0xFFFFFF)
    GUICtrlSetBkColor($LV_Kontakt[$i], $GUI_BKCOLOR_LV_ALTERNATE)
    For $k = 2 To $data[0]
    $Agent = _Array2DSearch($newarray, $data[$k], -1, 0, 0, 0, False, True)
    $a = StringSplit($Agent[0], "|")
    If $a[1] <> -1 Then

    [/autoit] [autoit][/autoit] [autoit]

    $VaraB = "0"
    For $e = 1 To UBound($List4) - 1
    $s4 = StringSplit($List4[$e], "|")
    $VaraB += $newarray[$a[1]][$s4[2]]
    Next
    $Quote = $VaraB / $newarray[$a[1]][$s1[2]] * 100
    $Quote = Round($Quote, 2)
    $List5 = $newarray[$a[1]][$s1[2]] / $newarray[$a[1]][$s2[2]] * 60
    $List5 = Round($List5, 2)

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlCreateListViewItem($newarray[$a[1]][$s1[2]] & "|" & $List5 & "|" & $VaraB & "|" & $newarray[$a[1]][$s3[2]] & "|" & $Quote, $LV_Kontakt[$i])
    GUICtrlSetBkColor(-1, 0xFFDEAD)
    Else
    GUICtrlCreateListViewItem("0|0|0|0|0", $LV_Kontakt[$i])
    GUICtrlSetBkColor(-1, 0xFFDEAD)
    EndIf
    Next
    Next
    GUICtrlCreateTabItem("")

    [/autoit] [autoit][/autoit] [autoit]

    $Button1 = GUICtrlCreateButton("&OK", 94, 408, 75, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("&Cancel", 174, 408, 75, 25, $WS_GROUP)
    $Button3 = GUICtrlCreateButton("&Help", 256, 408, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    $iActiveTab = GUICtrlRead($PageControl1) + 1
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_HIDE)
    GUIDelete($Viewgui)
    ExitLoop
    Case $PageControl1
    $iActiveTab = GUICtrlRead($PageControl1) + 1
    ConsoleWrite("Aktiver Tab " & $iActiveTab & @CRLF)
    Case $Button1
    GUISetState(@SW_HIDE)
    GUIDelete($Viewgui)
    ExitLoop
    Case $Button2
    GUISetState(@SW_HIDE)
    GUIDelete($Viewgui)
    ExitLoop
    Case $Button3
    GUISetState(@SW_HIDE)
    GUIDelete($Viewgui)
    ExitLoop

    [/autoit] [autoit][/autoit] [autoit]

    EndSwitch
    ;~ For $i = 1 To UBound($LV_Agent)
    ;~ if _GUICtrlListView_GetTopIndex($hLV_Kontakt[$i])<_GUICtrlListView_GetTopIndex($hLV_Agent[$i]) then
    ;~ _GUICtrlListView_Scroll($hLV_Agent[$i], 0, -12)
    ;~ elseif _GUICtrlListView_GetTopIndex($hLV_Kontakt[$i])>_GUICtrlListView_GetTopIndex($hLV_Agent[$i]) then
    ;~ _GUICtrlListView_Scroll($hLV_Agent[$i], 0, +12)
    ;~ EndIf
    ;~ Next
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Array2DSearch($avArray, $vWhat2Find, $iDim = -1, $iStart = 0, $iEnd = 0, $iCaseSense = 0, $fPartialSearch = False, $1stFound = False)
    Local $error = 0, $1D, $arFound[1] = [0]
    If $1stFound Then $arFound[0] = -1
    If (Not IsArray($avArray)) Then
    SetError(1)
    Return 0
    EndIf
    Local $UBound2nd = UBound($avArray, 2)
    If @error = 2 Then $1D = True
    If ($iEnd = 0) Or ($iEnd = -1) Then $iEnd = UBound($avArray) - 1
    If $iStart = -1 Then $iStart = 0
    If $iCaseSense = -1 Then $iCaseSense = 0
    If $iCaseSense <> 0 Then $iCaseSense = 1
    Select
    Case ($iDim > $UBound2nd) Or ($iDim < -1)
    $error += 2
    Case ($iStart < 0) Or ($iStart > UBound($avArray) - 1)
    $error += 4
    Case ($iEnd < $iStart) Or ($iEnd > UBound($avArray) - 1)
    $error += 8
    EndSelect
    If $error <> 0 Then
    SetError($error)
    Return 0
    EndIf
    If $fPartialSearch <> True Then $fPartialSearch = False
    If $1D Then
    For $i = $iStart To $iEnd
    Select
    Case $iCaseSense = 0 And (Not $fPartialSearch)
    If $avArray[$i] = $vWhat2Find Then
    If $1stFound Then
    $arFound[0] = $i
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i
    $arFound[0] += 1
    EndIf
    EndIf
    Case $iCaseSense = 1 And (Not $fPartialSearch)
    If $avArray[$i] == $vWhat2Find Then
    If $1stFound Then
    $arFound[0] = $i
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i
    $arFound[0] += 1
    EndIf
    EndIf
    Case $iCaseSense = 0 And $fPartialSearch
    If StringInStr($avArray[$i], $vWhat2Find) Then
    If $1stFound Then
    $arFound[0] = $i
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i
    $arFound[0] += 1
    EndIf
    EndIf
    Case $iCaseSense = 1 And $fPartialSearch
    If StringInStr($avArray[$i], $vWhat2Find, 1) Then
    If $1stFound Then
    $arFound[0] = $i
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i
    $arFound[0] += 1
    EndIf
    EndIf
    EndSelect
    Next
    Else
    For $i = $iStart To $iEnd
    If $iDim = -1 Then
    Select
    Case $iCaseSense = 0 And (Not $fPartialSearch)
    For $k = 0 To $UBound2nd - 1
    If $avArray[$i][$k] = $vWhat2Find Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $k
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i & '|' & $k
    $arFound[0] += 1
    EndIf
    EndIf
    Next
    Case $iCaseSense = 1 And (Not $fPartialSearch)
    For $k = 0 To $UBound2nd - 1
    If $avArray[$i][$k] == $vWhat2Find Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $k
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i & '|' & $k
    $arFound[0] += 1
    EndIf
    EndIf
    Next
    Case $iCaseSense = 0 And $fPartialSearch
    For $k = 0 To $UBound2nd - 1
    If StringInStr($avArray[$i][$k], $vWhat2Find) Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $k
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i & '|' & $k
    $arFound[0] += 1
    EndIf
    EndIf
    Next
    Case $iCaseSense = 1 And $fPartialSearch
    For $k = 0 To $UBound2nd - 1
    If StringInStr($avArray[$i][$k], $vWhat2Find, 1) Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $k
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i & '|' & $k
    $arFound[0] += 1
    EndIf
    EndIf
    Next
    EndSelect
    Else
    Select
    Case $iCaseSense = 0 And (Not $fPartialSearch)
    If $avArray[$i][$iDim] = $vWhat2Find Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $iDim
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i & '|' & $iDim
    $arFound[0] += 1
    EndIf
    EndIf
    Case $iCaseSense = 1 And (Not $fPartialSearch)
    If $avArray[$i][$iDim] == $vWhat2Find Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $iDim
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i & '|' & $iDim
    $arFound[0] += 1
    EndIf
    EndIf
    Case $iCaseSense = 0 And $fPartialSearch
    If StringInStr($avArray[$i][$iDim], $vWhat2Find) Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $iDim
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i & '|' & $iDim
    $arFound[0] += 1
    EndIf
    EndIf
    Case $iCaseSense = 1 And $fPartialSearch
    If StringInStr($avArray[$i][$iDim], $vWhat2Find, 1) Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $iDim
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i & '|' & $iDim
    $arFound[0] += 1
    EndIf
    EndIf
    EndSelect
    EndIf
    Next
    EndIf
    Return $arFound
    EndFunc ;==>_Array2DSearch

    [/autoit] [autoit][/autoit] [autoit]

    Func WM_NOTIFY($hWnd, $msgID, $wParam, $lParam)
    Local $tagNMHDR, $event, $hwndFrom, $code, $aItems
    $tagNMHDR = DllStructCreate("int;int;int", $lParam)
    $code = DllStructGetData($tagNMHDR, 3)
    If @error Then Return 0
    ;ConsoleWrite($wParam & " " & $LV_Agent[$iActiveTab] & @CRLF)
    Switch $wParam
    Case $LV_Agent[$iActiveTab]
    Switch $code
    Case $NM_CLICK
    $iActiveAgent = GUICtrlRead($LV_Agent[$iActiveTab])
    $aItems = _GUICtrlListView_GetSelectedIndices($LV_Agent[$iActiveTab],True)
    If IsArray($aItems) And $aItems[0] <> 0 Then
    $iActiveAgent = $aItems[1]
    ;ConsoleWrite($iActiveAgent & " Name " & GUICtrlRead($iActiveAgent) & @CRLF)
    _GUICtrlListView_EnsureVisible($LV_Kontakt[$iActiveTab], $iActiveAgent)
    _GUICtrlListView_SetItemSelected($LV_Kontakt[$iActiveTab], $iActiveAgent)
    EndIf
    Case $LVN_HOTTRACK
    $iActiveAgent = GUICtrlRead($LV_Agent[$iActiveTab])
    $aItems = _GUICtrlListView_GetSelectedIndices($LV_Agent[$iActiveTab],True)
    If IsArray($aItems) ANd $aItems[0] <> 0 Then
    $iActiveAgent = $aItems[1]
    ;ConsoleWrite($iActiveAgent & " Name " & GUICtrlRead($iActiveAgent) & @CRLF)
    _GUICtrlListView_EnsureVisible($LV_Kontakt[$iActiveTab], $iActiveAgent)
    _GUICtrlListView_SetItemSelected($LV_Kontakt[$iActiveTab], $iActiveAgent)
    If _GUICtrlListView_GetTopIndex($LV_Agent[$iActiveTab]) > _GUICtrlListView_GetTopIndex($LV_Kontakt[$iActiveTab]) Then
    _GUICtrlListView_Scroll($LV_Kontakt[$iActiveTab], 0, +12)
    EndIf
    EndIf
    EndSwitch
    Case $LV_Kontakt[$iActiveTab]
    Switch $code
    Case $NM_CLICK
    $iActiveAgent = GUICtrlRead($LV_Kontakt[$iActiveTab])
    $aItems = _GUICtrlListView_GetSelectedIndices($LV_Kontakt[$iActiveTab],True)
    If IsArray($aItems) And $aItems[0] <> 0 Then
    $iActiveAgent = $aItems[1]
    ;ConsoleWrite($iActiveAgent & " Name " & GUICtrlRead($iActiveAgent) & @CRLF)
    _GUICtrlListView_EnsureVisible($LV_Agent[$iActiveTab], $iActiveAgent)
    _GUICtrlListView_SetItemSelected($LV_Agent[$iActiveTab], $iActiveAgent)
    EndIf
    Case $LVN_HOTTRACK
    $iActiveAgent = GUICtrlRead($LV_Kontakt[$iActiveTab])
    $aItems = _GUICtrlListView_GetSelectedIndices($LV_Kontakt[$iActiveTab],True)
    If IsArray($aItems) ANd $aItems[0] <> 0 Then
    $iActiveAgent = $aItems[1]
    ;ConsoleWrite($iActiveAgent & " Name " & GUICtrlRead($iActiveAgent) & @CRLF)
    _GUICtrlListView_EnsureVisible($LV_Agent[$iActiveTab], $iActiveAgent)
    _GUICtrlListView_SetItemSelected($LV_Agent[$iActiveTab], $iActiveAgent)
    if _GUICtrlListView_GetTopIndex($LV_Kontakt[$iActiveTab])<_GUICtrlListView_GetTopIndex($LV_Agent[$iActiveTab]) then
    _GUICtrlListView_Scroll($LV_Agent[$iActiveTab], 0, -12)
    EndIf
    EndIf
    Case $LVN_COLUMNCLICK ; Eine Spalte wurde angeklickt
    $Anzahl = _GUICtrlListView_GetItemCount($LV_Agent[$iActiveTab])
    For $i = 1 To $Anzahl
    $Item = _GUICtrlListView_GetItemText($LV_Agent[$iActiveTab],$i-1) ; Agent
    $Subitem = _GUICtrlListView_GetItemText($LV_Kontakt[$iActiveTab],$i-1) ;
    _Array2DAdd($Sortarray, $Item &"|"&$Subitem)
    Next
    _GUICtrlListView_BeginUpdate($LV_Kontakt[$iActiveTab])
    _GUICtrlListView_BeginUpdate($LV_Agent[$iActiveTab])
    _GUICtrlListView_SortItems($LV_Kontakt[$iActiveTab],GUICtrlGetState($LV_Kontakt[$iActiveTab]))
    For $i = 0 To UBound($Sortarray) - 2
    $Item = _GUICtrlListView_GetItemText($LV_Agent[$iActiveTab],$i) ; Agent
    $Subitem = _GUICtrlListView_GetItemText($LV_Kontakt[$iActiveTab],$i)
    If $Item = $Sortarray[$i+1][0] AND $SubItem <> $Sortarray[$i+ 1][1] AND $Subitem <> 0 Then
    $Sortsearch = _Array2DSearch($Sortarray, $Subitem, -1,0,0,0, False, True)
    $Sortsearchsplit = StringSplit($Sortsearch[0], '|')
    _GUICtrlListView_SetItemText($LV_Agent, $i, $Sortarray[$Sortsearchsplit[1]][$Sortsearchsplit[2]-1], -1)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $Sortarray[$Sortsearchsplit[1]][$Sortsearchsplit[2]-1] = ' & $Sortarray[$Sortsearchsplit[1]][$Sortsearchsplit[2]-1] & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    EndIf
    Next
    _GUICtrlListView_EndUpdate($LV_Kontakt[$iActiveTab])
    _GUICtrlListView_EndUpdate($LV_Agent[$iActiveTab])
    $Sortarray = "0"

    [/autoit] [autoit][/autoit] [autoit]

    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY
    ;------------------------------------------------------------------------------------------------------------
    ;
    ; Function _Array2DAdd(ByRef $avArray, $sValue='')
    ;
    ; Description Redim Array Size and add an Array element at last position
    ; Works with any occurences in 2nd Dimension
    ; Works also with 1D-Array
    ;
    ; Parameter $avArray Given Array
    ; optional $sValue Value of new Element, parts must be seperate with '|'
    ;
    ; Return Succes -1
    ; Failure 0 and set @error
    ; @error = 1 given array is not array
    ; @error = 2 given parts of Element too less/much
    ;
    ; Author BugFix ([email='bugfix@autoit.de'][/email])
    ;------------------------------------------------------------------------------------------------------------
    Func _Array2DAdd(ByRef $avArray, $sValue='')
    If ( Not IsArray($avArray) ) Then
    SetError(1)
    Return 0
    EndIf
    Local $i
    Local $UBound2nd = UBound($avArray,2)
    If @error = 2 Then
    ReDim $avArray[UBound($avArray)+1]
    $avArray[UBound($avArray)-1] = $sValue
    Else
    Local $arValue
    ReDim $avArray[UBound($avArray)+1][$UBound2nd]
    If $sValue = '' Then
    For $i = 0 To $UBound2nd-2
    $sValue &= '|'
    Next
    EndIf
    $arValue = StringSplit($sValue, '|')
    If $arValue[0] <> $UBound2nd Then
    SetError(2)
    Return 0
    EndIf
    For $i = 0 To $UBound2nd-1
    $avArray[UBound($avArray)-1][$i] = $arValue[$i+1]
    Next
    EndIf
    Return -1
    EndFunc ;==>_Array2DAdd

    [/autoit]

    Der Debug liefert mir den Namen, der eigentlich richtig ist, allerdings wird es eben in der Ersten Listview nicht geändert.

    Kennt jemand eine Lösung dazu?
    --EDIT--
    Hat sich erledigt, man sollte auch einen Arrayindex angeben, wenn man sich auf ein array bezieht...

  • 2 Listviews "verbinden"

    • TheLuBu
    • 21. Januar 2011 um 12:40
    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <TabConstants.au3>
    #include <WindowsConstants.au3>
    #include <ListviewConstants.au3>
    #include <GuiListView.au3>
    #include <Date.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $Kampcode[15][3], $newarray[15][15], $AgentKamp[15], $iActiveAgent, $iActiveTab

    [/autoit] [autoit][/autoit] [autoit]

    $Datumsplitnow = StringSplit(_NowCalcDate(), "/")
    $iDay = $Datumsplitnow[3]
    $iMonth = $Datumsplitnow[2]
    $iYear = $Datumsplitnow[1]
    $Yearsplit = StringSplit($iYear, "")
    $DatumJJ = $Yearsplit[3] & $Yearsplit[4]

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 1 To 14
    For $k = 1 To 14
    $newarray[$i][$k] = Random(0, 1000)
    Next
    Next
    $newarray[8][13] = "alle abschließend bearbeiteten Agenten-Kontakte ohne falsche Nummer, Fax und Anrufbeantworter"
    $newarray[12][12] = "Zeitdauer, die der Agent im Client angemeldet war (Differenz zwischen Client-Logout und Client-Login)"
    $newarray[14][11] = "Abschluss mit Ergebnis ABL: Ablehnung"
    $newarray[11][9] = "Abschluss mit Ergebnis OK"
    $newarray[1][1] = "A"
    $newarray[2][1] = "B"
    $newarray[3][1] = "C"
    $newarray[4][1] = "D"
    $newarray[5][1] = "E"
    $newarray[6][1] = "F"
    $newarray[7][1] = "G"
    $newarray[8][1] = "H"
    $newarray[9][1] = "I"
    $newarray[10][1] = "J"
    $newarray[11][1] = "K"
    $newarray[12][1] = "L"
    $newarray[13][1] = "M"
    $newarray[14][1] = "N"
    $AgentKamp[1] = "|A|B|C|D|E|F|G|"
    $AgentKamp[2] = "|A|B|C|D|E|F|G|H|I|J|K|L|M"
    $AgentKamp[3] = "|A|B|C|D|E|F|G|"
    $AgentKamp[4] = "|A|B|C|D|E|F|G|"
    $AgentKamp[5] = "|A|B|C|D|E|F|G|"
    $AgentKamp[6] = "|A|B|C|D|E|F|G|H|I|J|K|L|M|N|"
    $AgentKamp[7] = "|A|B|C|D|E|F|G|"
    $AgentKamp[8] = "|A|B|C|D|E|F|G|"
    $AgentKamp[9] = "|A|B|C|D|E|F|G|"
    $AgentKamp[10] = "|A|B|C|D|E|F|G|H|I|J|K|L|M|N|"
    $AgentKamp[11] = "|A|B|C|D|E|F|G|"
    $AgentKamp[12] = "|A|B|C|D|E|F|G|H|I|J|K|L|M|N|"
    $AgentKamp[13] = "|A|B|C|D|E|F|G|"
    $AgentKamp[14] = "|A|B|C|D|E|F|G|"

    [/autoit] [autoit][/autoit] [autoit]

    $Kampcode[1][2] = 'DE_TL_HSP_' & $iMonth & '_' & $DatumJJ
    $Kampcode[2][2] = 'DE_TL_SPP_' & $iMonth & '_' & $DatumJJ
    $Kampcode[3][2] = 'DE_TL_TAF_' & $iMonth & '_' & $DatumJJ
    $Kampcode[4][2] = 'DE_TL_TMD_' & $iMonth & '_' & $DatumJJ
    $Kampcode[5][2] = 'DE_TL_VF_' & $iMonth & '_' & $DatumJJ
    $Kampcode[6][2] = 'DE_ZK_Haupt_' & $iMonth & '_' & $DatumJJ
    $Kampcode[7][2] = 'DE_ZK_CC_' & $iMonth & '_' & $DatumJJ
    $Kampcode[8][2] = 'DE_ZK_O2_' & $iMonth & '_' & $DatumJJ
    $Kampcode[9][2] = 'DE_ZK_O2_CC_' & $iMonth & '_' & $DatumJJ
    $Kampcode[10][2] = 'MC_HSP_' & $iMonth & '_' & $DatumJJ
    $Kampcode[11][2] = 'MC_SPO_' & $iMonth & '_' & $DatumJJ
    $Kampcode[12][2] = 'MC_TAF_' & $iMonth & '_' & $DatumJJ
    $Kampcode[13][2] = 'MC_TMD_WOP_NOP_' & $iMonth & '_' & $DatumJJ
    $Kampcode[14][2] = 'MC_VF_WOP_NOP_' & $iMonth & '_' & $DatumJJ

    [/autoit] [autoit][/autoit] [autoit]

    Dim $Tabs[UBound($Kampcode)]
    Dim $LV_Kontakt[UBound($Kampcode)]
    Dim $LV_Agent[UBound($Kampcode)]
    Dim $hLV_Kontakt[UBound($Kampcode)]
    Dim $hLV_Agent[UBound($Kampcode)]
    Dim $Kampkennzahl[UBound($Kampcode)]

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To UBound($LV_Agent) - 1
    $LV_Agent[$i] = -9999
    $LV_Kontakt[$i] = -9999
    Next

    [/autoit] [autoit][/autoit] [autoit]

    $Agentview = GUICreate("Tabbed Monitoring Dialog", 407, 438, 193, 85)
    $PageControl1 = GUICtrlCreateTab(8, 8, 396, 384, $WS_VSCROLL)
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
    $Zeile = UBound($newarray) - 1
    #region Suche
    $KontaktGesamt = _Array2DSearch($newarray, "alle abschließend bearbeiteten Agenten-Kontakte ohne falsche Nummer, Fax und Anrufbeantworter", -1, UBound($newarray) - 2, 0, 0, False, True)
    $s1 = StringSplit($KontaktGesamt[0], "|")

    [/autoit] [autoit][/autoit] [autoit]

    $Kontaktzeit = _Array2DSearch($newarray, "Zeitdauer, die der Agent im Client angemeldet war (Differenz zwischen Client-Logout und Client-Login)", -1, UBound($newarray) - 2, 0, 0, False, True)
    $s2 = StringSplit($Kontaktzeit[0], "|")

    [/autoit] [autoit][/autoit] [autoit]

    $Kontaktdurchschnitt = _Array2DSearch($newarray, "Abschluss mit Ergebnis ABL: Ablehnung", -1, UBound($newarray) - 2, 0, 0, False, True)
    $s3 = StringSplit($Kontaktdurchschnitt[0], "|")

    [/autoit] [autoit][/autoit] [autoit]

    $Pausenzeit = _Array2DSearch($newarray, "Abschluss mit Ergebnis OK", -1, UBound($newarray) - 2, 0, 0, True, False)
    #endregion Suche
    For $i = 1 To UBound($Kampcode) - 1
    $Tabs[$i] = GUICtrlCreateTabItem($Kampcode[$i][2])
    $data = StringSplit($AgentKamp[$i], "|")
    $LV_Agent[$i] = GUICtrlCreateListView("Agent ", 16, 160, 128, 224, -1, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_TRACKSELECT))
    $hLV_Agent[$i] = GUICtrlGetHandle($LV_Agent[$i])
    GUICtrlSetBkColor($LV_Agent[$i], 0xFFFFFF)
    GUICtrlSetBkColor($LV_Agent[$i], $GUI_BKCOLOR_LV_ALTERNATE)
    For $k = 2 To $data[0]
    GUICtrlCreateListViewItem($data[$k], $LV_Agent[$i])
    GUICtrlSetBkColor(-1, 0xFFDEAD)
    Next
    $LV_Kontakt[$i] = GUICtrlCreateListView("Nettokontakt|Netto pro h|Annahmen|Ablehnung|Quote", 145, 160, 238, 224, -1, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_TRACKSELECT))
    $hLV_Kontakt[$i] = GUICtrlGetHandle($LV_Kontakt[$i])

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlSetBkColor($LV_Kontakt[$i], 0xFFFFFF)
    GUICtrlSetBkColor($LV_Kontakt[$i], $GUI_BKCOLOR_LV_ALTERNATE)
    For $k = 2 To $data[0]
    $Agent = _Array2DSearch($newarray, " " & $data[$k], -1, 0, 0, 0, False, True)
    $a = StringSplit($Agent[0], "|")
    If $a[1] <> -1 Then

    [/autoit] [autoit][/autoit] [autoit]

    $Annahme = "0"
    For $e = 1 To UBound($Pausenzeit) - 1
    $s4 = StringSplit($Pausenzeit[$e], "|")
    $Annahme += $newarray[$a[1]][$s4[2]]
    Next
    $Quote = $Annahme / $newarray[$a[1]][$s1[2]] * 100
    $Quote = Round($Quote, 2)
    $Kontaktproh = $newarray[$a[1]][$s1[2]] / $newarray[$a[1]][$s2[2]] * 60
    $Kontaktproh = Round($Kontaktproh, 2)

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlCreateListViewItem($newarray[$a[1]][$s1[2]] & "|" & $Kontaktproh & "|" & $Annahme & "|" & $newarray[$a[1]][$s3[2]] & "|" & $Quote, $LV_Kontakt[$i])
    GUICtrlSetBkColor(-1, 0xFFDEAD)
    Else
    GUICtrlCreateListViewItem("0|0|0|0|0", $LV_Kontakt[$i])
    GUICtrlSetBkColor(-1, 0xFFDEAD)
    EndIf
    Next
    Next
    GUICtrlCreateTabItem("")

    [/autoit] [autoit][/autoit] [autoit]

    $Button1 = GUICtrlCreateButton("&OK", 94, 408, 75, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("&Cancel", 174, 408, 75, 25, $WS_GROUP)
    $Button3 = GUICtrlCreateButton("&Help", 256, 408, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    $iActiveTab = GUICtrlRead($PageControl1) + 1
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $iActiveTab = GUICtrlRead($PageControl1) = ' & $iActiveTab & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_HIDE)
    GUIDelete($Agentview)
    ExitLoop
    Case $PageControl1
    $iActiveTab = GUICtrlRead($PageControl1) + 1
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : GUICtrlRead($PageControl1) = ' & GUICtrlRead($PageControl1) & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    ConsoleWrite("Aktiver Tab " & $iActiveTab & @CRLF)
    Case $Button1
    GUISetState(@SW_HIDE)
    GUIDelete($Agentview)
    ExitLoop
    Case $Button2
    GUISetState(@SW_HIDE)
    GUIDelete($Agentview)
    ExitLoop
    Case $Button3
    GUISetState(@SW_HIDE)
    GUIDelete($Agentview)
    ExitLoop

    [/autoit] [autoit][/autoit] [autoit]

    EndSwitch
    ;~ For $i = 1 To UBound($LV_Agent)
    ;~ if _GUICtrlListView_GetTopIndex($hLV_Kontakt[$i])<_GUICtrlListView_GetTopIndex($hLV_Agent[$i]) then
    ;~ _GUICtrlListView_Scroll($hLV_Agent[$i], 0, -12)
    ;~ elseif _GUICtrlListView_GetTopIndex($hLV_Kontakt[$i])>_GUICtrlListView_GetTopIndex($hLV_Agent[$i]) then
    ;~ _GUICtrlListView_Scroll($hLV_Agent[$i], 0, +12)
    ;~ EndIf
    ;~ Next
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Array2DSearch($avArray, $vWhat2Find, $iDim = -1, $iStart = 0, $iEnd = 0, $iCaseSense = 0, $fPartialSearch = False, $1stFound = False)
    Local $error = 0, $1D, $arFound[1] = [0]
    If $1stFound Then $arFound[0] = -1
    If (Not IsArray($avArray)) Then
    SetError(1)
    Return 0
    EndIf
    Local $UBound2nd = UBound($avArray, 2)
    If @error = 2 Then $1D = True
    If ($iEnd = 0) Or ($iEnd = -1) Then $iEnd = UBound($avArray) - 1
    If $iStart = -1 Then $iStart = 0
    If $iCaseSense = -1 Then $iCaseSense = 0
    If $iCaseSense <> 0 Then $iCaseSense = 1
    Select
    Case ($iDim > $UBound2nd) Or ($iDim < -1)
    $error += 2
    Case ($iStart < 0) Or ($iStart > UBound($avArray) - 1)
    $error += 4
    Case ($iEnd < $iStart) Or ($iEnd > UBound($avArray) - 1)
    $error += 8
    EndSelect
    If $error <> 0 Then
    SetError($error)
    Return 0
    EndIf
    If $fPartialSearch <> True Then $fPartialSearch = False
    If $1D Then
    For $i = $iStart To $iEnd
    Select
    Case $iCaseSense = 0 And (Not $fPartialSearch)
    If $avArray[$i] = $vWhat2Find Then
    If $1stFound Then
    $arFound[0] = $i
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i
    $arFound[0] += 1
    EndIf
    EndIf
    Case $iCaseSense = 1 And (Not $fPartialSearch)
    If $avArray[$i] == $vWhat2Find Then
    If $1stFound Then
    $arFound[0] = $i
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i
    $arFound[0] += 1
    EndIf
    EndIf
    Case $iCaseSense = 0 And $fPartialSearch
    If StringInStr($avArray[$i], $vWhat2Find) Then
    If $1stFound Then
    $arFound[0] = $i
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i
    $arFound[0] += 1
    EndIf
    EndIf
    Case $iCaseSense = 1 And $fPartialSearch
    If StringInStr($avArray[$i], $vWhat2Find, 1) Then
    If $1stFound Then
    $arFound[0] = $i
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i
    $arFound[0] += 1
    EndIf
    EndIf
    EndSelect
    Next
    Else
    For $i = $iStart To $iEnd
    If $iDim = -1 Then
    Select
    Case $iCaseSense = 0 And (Not $fPartialSearch)
    For $k = 0 To $UBound2nd - 1
    If $avArray[$i][$k] = $vWhat2Find Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $k
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i & '|' & $k
    $arFound[0] += 1
    EndIf
    EndIf
    Next
    Case $iCaseSense = 1 And (Not $fPartialSearch)
    For $k = 0 To $UBound2nd - 1
    If $avArray[$i][$k] == $vWhat2Find Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $k
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i & '|' & $k
    $arFound[0] += 1
    EndIf
    EndIf
    Next
    Case $iCaseSense = 0 And $fPartialSearch
    For $k = 0 To $UBound2nd - 1
    If StringInStr($avArray[$i][$k], $vWhat2Find) Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $k
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i & '|' & $k
    $arFound[0] += 1
    EndIf
    EndIf
    Next
    Case $iCaseSense = 1 And $fPartialSearch
    For $k = 0 To $UBound2nd - 1
    If StringInStr($avArray[$i][$k], $vWhat2Find, 1) Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $k
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i & '|' & $k
    $arFound[0] += 1
    EndIf
    EndIf
    Next
    EndSelect
    Else
    Select
    Case $iCaseSense = 0 And (Not $fPartialSearch)
    If $avArray[$i][$iDim] = $vWhat2Find Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $iDim
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i & '|' & $iDim
    $arFound[0] += 1
    EndIf
    EndIf
    Case $iCaseSense = 1 And (Not $fPartialSearch)
    If $avArray[$i][$iDim] == $vWhat2Find Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $iDim
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i & '|' & $iDim
    $arFound[0] += 1
    EndIf
    EndIf
    Case $iCaseSense = 0 And $fPartialSearch
    If StringInStr($avArray[$i][$iDim], $vWhat2Find) Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $iDim
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i & '|' & $iDim
    $arFound[0] += 1
    EndIf
    EndIf
    Case $iCaseSense = 1 And $fPartialSearch
    If StringInStr($avArray[$i][$iDim], $vWhat2Find, 1) Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $iDim
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound) + 1]
    $arFound[UBound($arFound) - 1] = $i & '|' & $iDim
    $arFound[0] += 1
    EndIf
    EndIf
    EndSelect
    EndIf
    Next
    EndIf
    Return $arFound
    EndFunc ;==>_Array2DSearch

    [/autoit] [autoit][/autoit] [autoit]

    Func WM_NOTIFY($hWnd, $msgID, $wParam, $lParam)
    Local $tagNMHDR, $event, $hwndFrom, $code, $aItems
    $tagNMHDR = DllStructCreate("int;int;int", $lParam)
    $code = DllStructGetData($tagNMHDR, 3)
    If @error Then Return 0
    ;ConsoleWrite($wParam & " " & $LV_Agent[$iActiveTab] & @CRLF)
    Switch $wParam
    Case $LV_Agent[$iActiveTab]
    Switch $code
    Case $NM_CLICK
    $iActiveAgent = GUICtrlRead($LV_Agent[$iActiveTab])
    $aItems = _GUICtrlListView_GetSelectedIndices($LV_Agent[$iActiveTab],True)
    If IsArray($aItems) ANd $aItems[0] <> 0 Then
    $iActiveAgent = $aItems[1]
    ;ConsoleWrite($iActiveAgent & " Name " & GUICtrlRead($iActiveAgent) & @CRLF)
    _GUICtrlListView_EnsureVisible($LV_Kontakt[$iActiveTab], $iActiveAgent)
    _GUICtrlListView_SetItemSelected($LV_Kontakt[$iActiveTab], $iActiveAgent)
    If _GUICtrlListView_GetTopIndex($LV_Agent[$iActiveTab]) > _GUICtrlListView_GetTopIndex($LV_Kontakt[$iActiveTab]) Then
    _GUICtrlListView_Scroll($LV_Kontakt[$iActiveTab], 0, +12)
    EndIf
    EndIf
    Case $LVN_HOTTRACK
    $iActiveAgent = GUICtrlRead($LV_Agent[$iActiveTab])
    $aItems = _GUICtrlListView_GetSelectedIndices($LV_Agent[$iActiveTab],True)
    If IsArray($aItems) ANd $aItems[0] <> 0 Then
    $iActiveAgent = $aItems[1]
    ;ConsoleWrite($iActiveAgent & " Name " & GUICtrlRead($iActiveAgent) & @CRLF)
    _GUICtrlListView_EnsureVisible($LV_Kontakt[$iActiveTab], $iActiveAgent)
    _GUICtrlListView_SetItemSelected($LV_Kontakt[$iActiveTab], $iActiveAgent)
    If _GUICtrlListView_GetTopIndex($LV_Agent[$iActiveTab]) > _GUICtrlListView_GetTopIndex($LV_Kontakt[$iActiveTab]) Then
    _GUICtrlListView_Scroll($LV_Kontakt[$iActiveTab], 0, +12)
    EndIf
    EndIf
    EndSwitch
    Case $LV_Kontakt[$iActiveTab]
    Switch $code
    Case $NM_CLICK
    $iActiveAgent = GUICtrlRead($LV_Kontakt[$iActiveTab])
    $aItems = _GUICtrlListView_GetSelectedIndices($LV_Kontakt[$iActiveTab],True)
    If IsArray($aItems) ANd $aItems[0] <> 0 Then
    $iActiveAgent = $aItems[1]
    ;ConsoleWrite($iActiveAgent & " Name " & GUICtrlRead($iActiveAgent) & @CRLF)
    _GUICtrlListView_EnsureVisible($LV_Agent[$iActiveTab], $iActiveAgent)
    _GUICtrlListView_SetItemSelected($LV_Agent[$iActiveTab], $iActiveAgent)
    if _GUICtrlListView_GetTopIndex($LV_Kontakt[$iActiveTab])<_GUICtrlListView_GetTopIndex($LV_Agent[$iActiveTab]) then
    _GUICtrlListView_Scroll($LV_Agent[$iActiveTab], 0, -12)
    EndIf
    EndIf
    Case $LVN_HOTTRACK
    $iActiveAgent = GUICtrlRead($LV_Kontakt[$iActiveTab])
    $aItems = _GUICtrlListView_GetSelectedIndices($LV_Kontakt[$iActiveTab],True)
    If IsArray($aItems) ANd $aItems[0] <> 0 Then
    $iActiveAgent = $aItems[1]
    ;ConsoleWrite($iActiveAgent & " Name " & GUICtrlRead($iActiveAgent) & @CRLF)
    _GUICtrlListView_EnsureVisible($LV_Agent[$iActiveTab], $iActiveAgent)
    _GUICtrlListView_SetItemSelected($LV_Agent[$iActiveTab], $iActiveAgent)
    if _GUICtrlListView_GetTopIndex($LV_Kontakt[$iActiveTab])<_GUICtrlListView_GetTopIndex($LV_Agent[$iActiveTab]) then
    _GUICtrlListView_Scroll($LV_Agent[$iActiveTab], 0, -12)
    EndIf
    EndIf
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

    [/autoit]

    Habe mal ein bisschen mit _GUICtrlListView_GetTopIndex und _GUICtrlListView_Scroll getestet, und auch den $LVN_HOTTRACK eingefügt, da ich den ja auch benutze. (Hottrack wählt automatisch das Feld an, wo die Maus drüber ist)

  • 2 Listviews "verbinden"

    • TheLuBu
    • 21. Januar 2011 um 10:34

    Also bei

    [autoit]

    _GUICtrlListView_GetSelectedIndices($LV_Agent[$iActiveTab],True)

    [/autoit]


    gibt das True am Ende ja an, das ein Array zurück geliefert wird, und eben bei einem Fehler ein Array mit [0] = 0, also denke ich das es ja immer ein Array ist.

    Ein kleiner Fehler war noch drin, bei Zeile 144

    [autoit]

    $iActiveTab = GUICtrlRead($PageControl1)

    [/autoit]

    wird als $ActiveTab 0 zurückgeliefert, die Listviews auf der ersten Seite wurden dann nicht verbunden, erst bei erneutem anwählen des 1 Tabs.

    habe es dann mit

    [autoit]

    $iActiveTab = GUICtrlRead($PageControl1) + 1

    [/autoit]


    ersetzt, da standartmäßig ja der erste Tab ausgewählt ist, damit klappt es dann auch von anfang an auf der ersten Seite.

    Aber vielen Dank für deine Hilfe autoBert

  • 2 Listviews "verbinden"

    • TheLuBu
    • 21. Januar 2011 um 09:30
    Zitat von Großvater

    Guten Morgen,

    ich habe da ein grundsätzliches Verständnisproblem. Abgesehen davon, dass Dein Beispiel nicht tut, was es soll, kommt es mir so vor, als ob jede Zeile im zweiten ListView der entsprechenden Zeile im ersten zugeordnet ist. Warum packst Du das dann nicht in ein gemeinsames ListView?

    [OT]Und wenn sich hinter den Agenten und Kampagnen das verbirgt, was ich vermute, achte bitte darauf, dass meine Nummer nicht in Euren Listen auftaucht!!![/OT]


    Da es sich um Dummydaten handelt, kann es sein das es dir nicht so vorkommt, aber es ist so (alles schon nachgeprüft ;)).

    An AutoBert:
    Vielen Dank für die Hilfe, soweit klappt es, mir ist nur aufgefallen, das wenn man sich mal verklickt (durch zufall rausgefunden), und zwar hinter den letzten Eintrag (Bei deinem Script z.B. im Zweiten Tab hinter M (wo N kommen sollte)), kriege ich einen Error:

    [autoit]

    test2.au3 (378) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
    $iActiveAgent = $aItems[1]
    $iActiveAgent = ^ ERROR

    [/autoit]

    und das Script stürzt ab. Kann man das irgendwie abfangen?

    --EDIT--
    Habe es gefunden, laut Beschreibung liefert

    [autoit]

    _GuiCtrlListView_GetSelectedIndices

    [/autoit]

    bei einem Fehler ein Array mit $array[0] = 0 zurück. Habe dann bei den Cases von $WM_Notify folgendes geändert:

    [autoit]

    If IsArray($aItems) And $aItems[0] <> 0 Then

    [/autoit]
  • 2 Listviews "verbinden"

    • TheLuBu
    • 20. Januar 2011 um 17:04

    Hat etwas gedauert, die Dummy Daten zu schreiben
    Im 2ten Tab sieht man wie es momentan bei mir ist, und das möchte ich eben ändern, aber für alle Tabs.

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <TabConstants.au3>
    #include <WindowsConstants.au3>
    #include <ListviewConstants.au3>
    #Include <GuiListView.au3>
    #include <Date.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $Kampcode[15][3], $newarray[15][15], $AgentKamp[15]

    [/autoit] [autoit][/autoit] [autoit]

    $Datumsplitnow = StringSplit(_NowCalcDate(), "/")
    $iDay = $Datumsplitnow[3]
    $iMonth = $Datumsplitnow[2]
    $iYear = $Datumsplitnow[1]
    $Yearsplit = StringSplit($iYear, "")
    $DatumJJ = $Yearsplit[3] & $Yearsplit[4]

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 1 To 14
    For $k = 1 To 14
    $newarray[$i][$k] = Random(0, 1000)
    Next
    Next
    $newarray[8][13] = "alle abschließend bearbeiteten Agenten-Kontakte ohne falsche Nummer, Fax und Anrufbeantworter"
    $newarray[12][12] = "Zeitdauer, die der Agent im Client angemeldet war (Differenz zwischen Client-Logout und Client-Login)"
    $newarray[14][11] = "Abschluss mit Ergebnis ABL: Ablehnung"
    $newarray[11][9] = "Abschluss mit Ergebnis OK"
    $newarray[1][1] = "A"
    $newarray[2][1] = "B"
    $newarray[3][1] = "C"
    $newarray[4][1] = "D"
    $newarray[5][1] = "E"
    $newarray[6][1] = "F"
    $newarray[7][1] = "G"
    $newarray[8][1] = "H"
    $newarray[9][1] = "I"
    $newarray[10][1] = "J"
    $newarray[11][1] = "K"
    $newarray[12][1] = "L"
    $newarray[13][1] = "M"
    $newarray[14][1] = "N"
    $AgentKamp[1] = "|A|B|C|D|E|F|G|"
    $AgentKamp[2] = "|A|B|C|D|E|F|G|H|I|J|K|L|M"
    $AgentKamp[3] = "|A|B|C|D|E|F|G|"
    $AgentKamp[4] = "|A|B|C|D|E|F|G|"
    $AgentKamp[5] = "|A|B|C|D|E|F|G|"
    $AgentKamp[6] = "|A|B|C|D|E|F|G|H|I|J|K|L|M|N|"
    $AgentKamp[7] = "|A|B|C|D|E|F|G|"
    $AgentKamp[8] = "|A|B|C|D|E|F|G|"
    $AgentKamp[9] = "|A|B|C|D|E|F|G|"
    $AgentKamp[10] = "|A|B|C|D|E|F|G|H|I|J|K|L|M|N|"
    $AgentKamp[11] = "|A|B|C|D|E|F|G|"
    $AgentKamp[12] = "|A|B|C|D|E|F|G|H|I|J|K|L|M|N|"
    $AgentKamp[13] = "|A|B|C|D|E|F|G|"
    $AgentKamp[14] = "|A|B|C|D|E|F|G|"

    [/autoit] [autoit][/autoit] [autoit]

    $Kampcode[1][2] = 'DE_TL_HSP_' & $iMonth & '_' & $DatumJJ
    $Kampcode[2][2] = 'DE_TL_SPP_' & $iMonth & '_' & $DatumJJ
    $Kampcode[3][2] = 'DE_TL_TAF_' & $iMonth & '_' & $DatumJJ
    $Kampcode[4][2] = 'DE_TL_TMD_' & $iMonth & '_' & $DatumJJ
    $Kampcode[5][2] = 'DE_TL_VF_' & $iMonth & '_' & $DatumJJ
    $Kampcode[6][2] = 'DE_ZK_Haupt_' & $iMonth & '_' & $DatumJJ
    $Kampcode[7][2] = 'DE_ZK_CC_' & $iMonth & '_' & $DatumJJ
    $Kampcode[8][2] = 'DE_ZK_O2_' & $iMonth & '_' & $DatumJJ
    $Kampcode[9][2] = 'DE_ZK_O2_CC_' & $iMonth & '_' & $DatumJJ
    $Kampcode[10][2] = 'MC_HSP_' & $iMonth & '_' & $DatumJJ
    $Kampcode[11][2] = 'MC_SPO_' & $iMonth & '_' & $DatumJJ
    $Kampcode[12][2] = 'MC_TAF_' & $iMonth & '_' & $DatumJJ
    $Kampcode[13][2] = 'MC_TMD_WOP_NOP_' & $iMonth & '_' & $DatumJJ
    $Kampcode[14][2] = 'MC_VF_WOP_NOP_' & $iMonth & '_' & $DatumJJ

    [/autoit] [autoit][/autoit] [autoit]

    Dim $Tabs[UBound($Kampcode)]
    Dim $Listview[UBound($Kampcode)]
    Dim $Listview2[UBound($Kampcode)]
    Dim $hListView[UBound($Kampcode)]
    Dim $hListView2[UBound($Kampcode)]
    Dim $Kampkennzahl[UBound($Kampcode)]

    [/autoit] [autoit][/autoit] [autoit]

    $Agentview = GUICreate("Tabbed Monitoring Dialog", 407, 438, 193, 85)
    $PageControl1 = GUICtrlCreateTab(8, 8, 396, 384, $WS_VSCROLL)
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH + $GUI_DOCKHEIGHT)
    $Zeile = UBound($newArray) - 1
    #Region Suche
    $KontaktGesamt = _Array2DSearch($newArray, "alle abschließend bearbeiteten Agenten-Kontakte ohne falsche Nummer, Fax und Anrufbeantworter", -1, UBound($newArray) - 2, 0, 0, False, True)
    $s1 = StringSplit($KontaktGesamt[0], "|")

    [/autoit] [autoit][/autoit] [autoit]

    $Kontaktzeit = _Array2DSearch($newArray, "Zeitdauer, die der Agent im Client angemeldet war (Differenz zwischen Client-Logout und Client-Login)", -1, UBound($newArray) - 2, 0, 0, False, True)
    $s2 = StringSplit($Kontaktzeit[0], "|")

    [/autoit] [autoit][/autoit] [autoit]

    $Kontaktdurchschnitt = _Array2DSearch($newArray, "Abschluss mit Ergebnis ABL: Ablehnung", -1, UBound($newArray) - 2, 0, 0, False, True)
    $s3 = StringSplit($Kontaktdurchschnitt[0], "|")

    [/autoit] [autoit][/autoit] [autoit]

    $Pausenzeit = _Array2DSearch($newArray, "Abschluss mit Ergebnis OK", -1, UBound($newArray) - 2, 0, 0, True, False)
    #EndRegion Suche
    For $i = 1 To UBound($Kampcode) - 1
    $Tabs[$i] = GUICtrlCreateTabItem($Kampcode[$i][2])
    $data = StringSplit($AgentKamp[$i], "|")
    $Listview2[$i] = GUICtrlCreateListView("Agent ", 16, 160, 128, 224, -1, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_TRACKSELECT))
    ;~ $hListView2[$i] = GUICtrlGetHandle($ListView2[$i])
    GUICtrlSetBkColor($Listview2[$i], 0xFFFFFF)
    GUICtrlSetBkColor($Listview2[$i], $GUI_BKCOLOR_LV_ALTERNATE)
    For $k = 2 To $data[0]
    GUICtrlCreateListViewItem($data[$k], $Listview2[$i])
    GUICtrlSetBkColor(-1, 0xFFDEAD)
    Next
    $Listview[$i] = GUICtrlCreateListView("Nettokontakt|Netto pro h|Annahmen|Ablehnung|Quote", 145, 160, 238, 224, -1, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_TRACKSELECT))
    ;~ $hListView[$i] = GUICtrlGetHandle($ListView[$i])

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlSetBkColor($Listview[$i], 0xFFFFFF)
    GUICtrlSetBkColor($Listview[$i], $GUI_BKCOLOR_LV_ALTERNATE)
    For $k = 2 To $data[0]
    $Agent = _Array2DSearch($newArray, " " & $data[$k], -1, 0, 0, 0, False, True)
    $a = StringSplit($Agent[0], "|")
    If $a[1] <> -1 Then

    [/autoit] [autoit][/autoit] [autoit]

    $Annahme = "0"
    For $e = 1 To UBound($Pausenzeit) - 1
    $s4 = StringSplit($Pausenzeit[$e], "|")
    $Annahme += $newArray[$a[1]][$s4[2]]
    Next
    $Quote = $Annahme / $newArray[$a[1]][$s1[2]] * 100
    $Quote = Round ( $Quote , 2 )
    $Kontaktproh = $newArray[$a[1]][$s1[2]] / $newArray[$a[1]][$s2[2]] * 60
    $Kontaktproh = Round ( $Kontaktproh , 2 )

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlCreateListViewItem($newArray[$a[1]][$s1[2]] & "|" & $Kontaktproh & "|" & $Annahme & "|" & $newArray[$a[1]][$s3[2]] & "|" & $Quote, $Listview[$i])
    GUICtrlSetBkColor(-1, 0xFFDEAD)
    Else
    GUICtrlCreateListViewItem("0|0|0|0|0", $Listview[$i])
    GUICtrlSetBkColor(-1, 0xFFDEAD)
    EndIf
    Next
    Next
    GUICtrlCreateTabItem("")

    [/autoit] [autoit][/autoit] [autoit]

    $Button1 = GUICtrlCreateButton("&OK", 94, 408, 75, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("&Cancel", 174, 408, 75, 25, $WS_GROUP)
    $Button3 = GUICtrlCreateButton("&Help", 256, 408, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_HIDE)
    GUIDelete($Agentview)
    ExitLoop
    Case $Button1
    GUISetState(@SW_HIDE)
    GUIDelete($Agentview)
    ExitLoop
    Case $Button2
    GUISetState(@SW_HIDE)
    GUIDelete($Agentview)
    ExitLoop
    Case $Button3
    GUISetState(@SW_HIDE)
    GUIDelete($Agentview)
    ExitLoop

    [/autoit] [autoit][/autoit] [autoit]

    EndSwitch
    ;~ For $i = 1 To UBound($Listview2)
    ;~ if _GUICtrlListView_GetTopIndex($hListView[$i])<_GUICtrlListView_GetTopIndex($hListView2[$i]) then
    ;~ _GUICtrlListView_Scroll($hListView2[$i], 0, -12)
    ;~ elseif _GUICtrlListView_GetTopIndex($hListView[$i])>_GUICtrlListView_GetTopIndex($hListView2[$i]) then
    ;~ _GUICtrlListView_Scroll($hListView2[$i], 0, +12)
    ;~ EndIf
    ;~ Next
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Array2DSearch($avArray, $vWhat2Find, $iDim=-1, $iStart=0, $iEnd=0, $iCaseSense=0, $fPartialSearch=False, $1stFound=False)
    Local $error = 0, $1D, $arFound[1]=[0]
    If $1stFound Then $arFound[0] = -1
    If ( Not IsArray($avArray) ) Then
    SetError(1)
    Return 0
    EndIf
    Local $UBound2nd = UBound($avArray,2)
    If @error = 2 Then $1D = True
    If ( $iEnd = 0 ) Or ( $iEnd = -1 ) Then $iEnd = UBound($avArray)-1
    If $iStart = -1 Then $iStart = 0
    If $iCaseSense = -1 Then $iCaseSense = 0
    If $iCaseSense <> 0 Then $iCaseSense = 1
    Select
    Case ( $iDim > $UBound2nd ) Or ( $iDim < -1 )
    $error += 2
    Case ( $iStart < 0 ) Or ( $iStart > UBound($avArray)-1 )
    $error += 4
    Case ( $iEnd < $iStart ) Or ( $iEnd > UBound($avArray)-1 )
    $error += 8
    EndSelect
    If $error <> 0 Then
    SetError($error)
    Return 0
    EndIf
    If $fPartialSearch <> True Then $fPartialSearch = False
    If $1D Then
    For $i = $iStart To $iEnd
    Select
    Case $iCaseSense = 0 And (Not $fPartialSearch)
    If $avArray[$i] = $vWhat2Find Then
    If $1stFound Then
    $arFound[0] = $i
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound)+1]
    $arFound[UBound($arFound)-1] = $i
    $arFound[0] += 1
    EndIf
    EndIf
    Case $iCaseSense = 1 And (Not $fPartialSearch)
    If $avArray[$i] == $vWhat2Find Then
    If $1stFound Then
    $arFound[0] = $i
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound)+1]
    $arFound[UBound($arFound)-1] = $i
    $arFound[0] += 1
    EndIf
    EndIf
    Case $iCaseSense = 0 And $fPartialSearch
    If StringInStr($avArray[$i], $vWhat2Find) Then
    If $1stFound Then
    $arFound[0] = $i
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound)+1]
    $arFound[UBound($arFound)-1] = $i
    $arFound[0] += 1
    EndIf
    EndIf
    Case $iCaseSense = 1 And $fPartialSearch
    If StringInStr($avArray[$i], $vWhat2Find, 1) Then
    If $1stFound Then
    $arFound[0] = $i
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound)+1]
    $arFound[UBound($arFound)-1] = $i
    $arFound[0] += 1
    EndIf
    EndIf
    EndSelect
    Next
    Else
    For $i = $iStart To $iEnd
    If $iDim = -1 Then
    Select
    Case $iCaseSense = 0 And (Not $fPartialSearch)
    For $k = 0 To $UBound2nd-1
    If $avArray[$i][$k] = $vWhat2Find Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $k
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound)+1]
    $arFound[UBound($arFound)-1] = $i & '|' & $k
    $arFound[0] += 1
    EndIf
    EndIf
    Next
    Case $iCaseSense = 1 And (Not $fPartialSearch)
    For $k = 0 To $UBound2nd-1
    If $avArray[$i][$k] == $vWhat2Find Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $k
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound)+1]
    $arFound[UBound($arFound)-1] = $i & '|' & $k
    $arFound[0] += 1
    EndIf
    EndIf
    Next
    Case $iCaseSense = 0 And $fPartialSearch
    For $k = 0 To $UBound2nd-1
    If StringInStr($avArray[$i][$k], $vWhat2Find) Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $k
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound)+1]
    $arFound[UBound($arFound)-1] = $i & '|' & $k
    $arFound[0] += 1
    EndIf
    EndIf
    Next
    Case $iCaseSense = 1 And $fPartialSearch
    For $k = 0 To $UBound2nd-1
    If StringInStr($avArray[$i][$k], $vWhat2Find, 1) Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $k
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound)+1]
    $arFound[UBound($arFound)-1] = $i & '|' & $k
    $arFound[0] += 1
    EndIf
    EndIf
    Next
    EndSelect
    Else
    Select
    Case $iCaseSense = 0 And (Not $fPartialSearch)
    If $avArray[$i][$iDim] = $vWhat2Find Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $iDim
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound)+1]
    $arFound[UBound($arFound)-1] = $i & '|' & $iDim
    $arFound[0] += 1
    EndIf
    EndIf
    Case $iCaseSense = 1 And (Not $fPartialSearch)
    If $avArray[$i][$iDim] == $vWhat2Find Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $iDim
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound)+1]
    $arFound[UBound($arFound)-1] = $i & '|' & $iDim
    $arFound[0] += 1
    EndIf
    EndIf
    Case $iCaseSense = 0 And $fPartialSearch
    If StringInStr($avArray[$i][$iDim], $vWhat2Find) Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $iDim
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound)+1]
    $arFound[UBound($arFound)-1] = $i & '|' & $iDim
    $arFound[0] += 1
    EndIf
    EndIf
    Case $iCaseSense = 1 And $fPartialSearch
    If StringInStr($avArray[$i][$iDim], $vWhat2Find, 1) Then
    If $1stFound Then
    $arFound[0] = $i & '|' & $iDim
    Return $arFound
    Else
    ReDim $arFound[UBound($arFound)+1]
    $arFound[UBound($arFound)-1] = $i & '|' & $iDim
    $arFound[0] += 1
    EndIf
    EndIf
    EndSelect
    EndIf
    Next
    EndIf
    Return $arFound
    EndFunc ;==>_Array2DSearch

    [/autoit]
  • 2 Listviews "verbinden"

    • TheLuBu
    • 20. Januar 2011 um 16:10

    OK jetzt hab ichs auch verstanden :D

    [autoit]

    Case $Listview2
    $ID = GuiCtrlRead($Listview2)
    _GUICtrlListView_GetItemFocused($Listview, $ID)
    _GUICtrlListView_EnsureVisible($Listview, $ID)
    Case $Listview
    $ID = GuiCtrlRead($Listview)
    _GUICtrlListView_GetItemFocused($Listview2, $ID)
    _GUICtrlListView_EnsureVisible($Listview2, $ID)

    [/autoit]

    Ich denke so meintest du es autobert, oder?
    Ich habe jetzt allerdings das Problem, da $Listview und $Listview2 Arrays sind ( Es werden in jedem Tab des GUI´s 2 stück erstellt, und die Tabs sind auch variabel), das ich nicht weiß wie ich für eine Variable Anzahl die Cases erstellt (bereits mit For ... Next versucht, geht nicht)

  • 2 Listviews "verbinden"

    • TheLuBu
    • 20. Januar 2011 um 14:53

    Wie kann ich denn herausfinden, welches Item angewählt ist? Die 2 Funktionen funktionieren ja nur, wenn man sie auf ein bestimmtes Item ($iIndex) anwendet, nicht auf die gesamte Listview.

  • 2 Listviews "verbinden"

    • TheLuBu
    • 20. Januar 2011 um 14:10
    Zitat von autoBert

    Hallo

    schau dir das Beispiel zu

    [autoit]

    _GUICtrlListView_EnsureVisible

    [/autoit]

    an. Das ist die Lösung wenn beide LVs vom Index her identisch aufgebaut sind. Mit

    [autoit]

    _GUICtrlListView_SetItemFocused

    [/autoit]

    kannst du dann auch in der 2. LV den Focus setzen,

    mfg autoBert

    Alles anzeigen


    Aber welchen

    [autoit]

    Case

    [/autoit]

    muss ich denn dafür nutzen? Ich muss ja das GUI drauf warten lassen, das sich entweder die Scrollbalken bewegen oder das eine Zeile ausgewählt wird. Aber mit welcher Fnktion kriege ich das raus?

  • 2 Listviews "verbinden"

    • TheLuBu
    • 19. Januar 2011 um 16:21

    Hier der Auszug des GUI´s

    Spoiler anzeigen
    [autoit]

    $Agentview = GUICreate("Tabbed Monitoring Dialog", 407, 438, 193, 85)
    $PageControl1 = GUICtrlCreateTab(8, 8, 396, 384,$WS_VSCROLL)
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
    ReDim $Tabs[UBound($Kampcode)]
    ReDim $Listview[UBound($Kampcode)]
    ReDim $Listview2[UBound($Kampcode)]
    ReDim $Kampkennzahl[UBound($Kampcode)]
    $Zeile = UBound($newArray) -1
    For $i = 1 To UBound($Kampcode) - 1
    $Tabs[$i] = GUICtrlCreateTabItem($Kampcode[$i][2])
    $data = StringSplit($AgentKamp[$i], "|")
    $Listview2[$i] = GUICtrlCreateListView("Agent ", 16, 160, 128, 224, -1, BitOR($LVS_EX_FULLROWSELECT,$LVS_EX_TRACKSELECT))
    GUICtrlSetBkColor($Listview2[$i], 0xFFFFFF)
    GUICtrlSetBkColor($Listview2[$i], $GUI_BKCOLOR_LV_ALTERNATE)
    For $k = 2 To $data[0]
    GUICtrlCreateListViewItem($data[$k], $Listview2[$i])
    GUICtrlSetBkColor(-1, 0xFFDEAD)
    Next
    $Listview[$i] = GUICtrlCreateListView("Kontakte Gesamt|Kontaktzeit|ø-Kontakt-Zeit|Gespräche/Kontakte", 145, 160, 238, 224, -1, BitOR($LVS_EX_FULLROWSELECT,$LVS_EX_TRACKSELECT))
    GUICtrlSetBkColor($Listview[$i], 0xFFFFFF)
    GUICtrlSetBkColor($Listview[$i], $GUI_BKCOLOR_LV_ALTERNATE)
    For $k = 2 To $data[0]
    $Agent = _Array2DSearch($newArray, " "&$data[$k], -1, 0, 0, 0, False, True)
    $a = StringSplit($Agent[0], "|")
    If $a[1] <> -1 Then
    GUICtrlCreateListViewItem($newArray[$a[1]][$s1[2]]&" "&$newArray[$Zeile][$s1[2]]&"|"&$newArray[$a[1]][$s2[2]]&" "&$newArray[$Zeile][$s2[2]]&"|"&$newArray[$a[1]][$s3[2]]&" "&$newArray[$Zeile][$s3[2]]&"|"&$newArray[$a[1]][$s4[2]]&" "&$newArray[$Zeile][$s4[2]], $Listview[$i])
    GUICtrlSetBkColor(-1, 0xFFDEAD)
    Else
    GUICtrlCreateListViewItem("0|0|0|0", $Listview[$i])
    GUICtrlSetBkColor(-1, 0xFFDEAD)
    EndIf
    Next
    Next
    GUICtrlCreateTabItem("")

    [/autoit] [autoit][/autoit] [autoit]

    $Button1 = GUICtrlCreateButton("&OK", 94, 408, 75, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("&Cancel", 174, 408, 75, 25, $WS_GROUP)
    $Button3 = GUICtrlCreateButton("&Help", 256, 408, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)

    [/autoit]
  • 2 Listviews "verbinden"

    • TheLuBu
    • 19. Januar 2011 um 15:49

    Hallo,

    Ich habe 2 Listview´s in meinem GUI, in einem stehen Benutzernamen, in dem anderen die Werte zu den Benutzern. Ich musste 2 Listviews nehmen, damit man immer den Benutzernamen hat, wärend man sich die Werte zu ihm ansieht.

    Nun sind aber mehr Benutzer hinzu gekommen, sodass bei beiden Listviews ein Scrollbalken entstanden ist.
    Gibt es die Möglichkeit, die beiden Controls zu verbinden, sodas wenn in einem der Scrollbalken benutzt wird, auch im anderen fenster synchron gescrollt wird?

    Wäre für jede Hilfe dankbar

    MfG TheLuBu

  • Array2DInsert Problem

    • TheLuBu
    • 14. Januar 2011 um 10:41

    Hallöchen liebe Community,
    Ich habe ein Problem mit Array2DInsert von BugFix.

    Ich habe 2 Arrays, In einem stehen Daten, in dem anderen stehen die Überschriften der jeweiligen Spalten.

    Das Problem ist nun, das die Überschriften in einem 1D Array stehen, die Daten in einem Mehrdimensionalen Array.

    Ich möchte jetzt aber die Überschriften in das Datenarray bringen, und an sich eignet sich die Funktion BugFix ja sehr gut dazu.
    Hier mal der Code, den ich bis jetzt habe:

    [autoit]


    $data2 = '0|Agent' ; $newArray ist 0 basiert, daher die führende 0, Agent kommt nicht in avArray2 vor, muss aber als überschrift der ersten Spalte sein
    For $i = 0 To UBound($avArray2) - 4 ; -4 da die letzten 3 Überschriften nicht gebraucht werden
    $data2 = $data2 &"|"&$avArray2[$i]
    Next
    $data2 = $data2 &'|0|0|0|0'
    _Array2DInsert($newArray, UBound($newArray) - 1, $data2) ; UBound($newArray) - 1 da $newarray immer eine Zeile mehr hat als Dateninhalte
    _ArrayDisplay($newArray)

    [/autoit]

    Ich erhalte keinen Fehlercode, aber das Array wurde nicht verändert.
    Weiß jemand woran das liegt bzw. wie ich das ändern kann?
    Danke schonmal im Vorraus

    --EDIT--
    Habe es jetzt auch mit _Array2DAdd versucht, hier der Code

    [autoit]

    $data2 = _ArrayToString($avArray2 ,"|", 0, UBound($avArray2) - 4)
    _Array2DAdd($newArray, $data2)
    _ArrayDisplay($newArray)

    [/autoit]

    Es wird eine weitere Zeile angelegt ( vorher 35, jetzt 36), aber die Zellen sind leer
    $data2 sieht so aus : 1|2|3|4|5|6|7 etc.
    Beim _Array2DAdd erhalte ich allerdings den Fehlercode 2

    --EDIT2--
    Ok hat sich erledigt, ich musste die fehlenden zellen in das Array noch eintragen

  • Hilfe bei HTTP.au3

    • TheLuBu
    • 13. Januar 2011 um 12:48

    Einen schönen guten Tag ihr lieben,
    und zwar hab ich ein problem mit der HTTP.au3. Ich möchte gerne auf einer Intranet Seite zugreifen. DIese ist in php Programmiert. Ich habe die Schritte, die ich ausführen will, mit Mozilla HTTP Live Header ausgelesen und folgendes dabei rausbekommen:

    Code
    ;~ POST /powerq1/monitoring.php btnMenu=Statistik&nummer=2270&display_select_kamp=1&display_tab=1&display_block_ag=1&display_state_time=1&display_legend=1&display_kamp=1&display_all_ag=1&display_pause=1&wert_dropratesoll[2270]=6&monAuto=0&ShowOnlyKamp=&ShowOnlyZKamp=&jsEnabled=1
    ;~ GET /powerq1/statistik.php?start=1
    ;~ POST /powerq1/statistik.php nummer=agent15&old_nummer=bitte&von=01.01.2011&von_hour=00:00&bis=13.01.2011&bis_hour=24:00&mona=mt&zeitraum=tt&datum=13.01.2011&interv=60&t_von=00:00&t_bis=24:00&startDateActionPeriod=13.01.2011&autoload_st=1&btnFormsubmitWithJs=1&email_adr[]=BLABLA&zipStAbo=1&jsEnabled=1
    ;~ POST /powerq1/statistik.php nummer=allposs15&ausw=agent&sub_ausw=bitte&old_nummer=agent15&old_ausw=agent&von=01.01.2011&von_hour=00:00&bis=13.01.2011&bis_hour=24:00&mona=mt&zeitraum=tt&datum=13.01.2011&interv=60&t_von=00:00&t_bis=24:00&startDateActionPeriod=13.01.2011&autoload_st=1&btnFormsubmitWithJs=1&email_adr[]=&zipStAbo=1&jsEnabled=1
    ;~ POST /powerq1/statistik.php nummer=allposs15&ausw=agent&sub_ausw=gesamt_u&old_nummer=allposs15&old_ausw=agent&von=01.01.2011&von_hour=00:00&bis=13.01.2011&bis_hour=24:00&mona=mt&zeitraum=tt&datum=13.01.2011&interv=60&t_von=00:00&t_bis=24:00&startDateActionPeriod=13.01.2011&autoload_st=1&btnFormsubmitWithJs=1&email_adr[]=BLABLA&zipStAbo=1&jsEnabled=1

    Als Ergebnis wird eine Seite mit einer Tabelle angezeigt.

    Jetzt habe ich versucht, da ich nicht mit Koordinaten und Mausklicks arbeiten möchte, mich mit der HTTP.au3 auseinander zu setzen.
    Ich komme soweit, das ich die erste Seite ( monitoring.php) auslesen kann ( über HTTPRead), aber ich komme nicht auf die Seite, auf die ich möchte.
    Kann mir jemand dabei helfen?

    Hier soweit ich gekommen bin:

    Spoiler anzeigen
    [autoit]

    $Get = _HTTPGet("192.168.1.233", "/powerq1/login.php")
    $data = _HTTPEncodeString("loginName=LOGIN&loginPwd=PASSWORT&btnLogin=Anmelden")
    $Post = _HTTPPost("192.168.1.233", "/powerq1/login.php", -1, $data)
    $data = _HTTPEncodeString("btnMenu=Statistik&nummer=2270&display_select_kamp=1&display_tab=1&display_block_ag=1&display_state_time=1&display_legend=1&display_kamp=1&display_all_ag=1&display_pause=1&wert_dropratesoll%5B2270%5D=6&monAuto=0&ShowOnlyKamp=&ShowOnlyZKamp=&jsEnabled=1")
    $Post =_HTTPPost("192.168.1.233", "/powerq1/monitoring.php", -1, $data)
    $Get = _HTTPGet("192.168.1.233", "/powerq1/statistik.php?start=1")
    $data = _HTTPEncodeString("nummer=agent15&old_nummer=bitte&von=01.01.2011&von_hour=00%3A00&bis=13.01.2011&bis_hour=24%3A00&mona=mt&zeitraum=tt&datum=13.01.2011&interv=60&t_von=00%3A00&t_bis=24%3A00&startDateActionPeriod=13.01.2011&autoload_st=1&btnFormsubmitWithJs=1&email_adr%5B%5D=BLABLA&zipStAbo=1&jsEnabled=1")
    $Post =_HTTPPost("192.168.1.233", "/powerq1/statistik.php", -1, $data)
    $data = _HTTPEncodeString("nummer=allposs15&ausw=agent&sub_ausw=bitte&old_nummer=agent15&old_ausw=agent&von=01.01.2011&von_hour=00%3A00&bis=13.01.2011&bis_hour=24%3A00&mona=mt&zeitraum=tt&datum=13.01.2011&interv=60&t_von=00%3A00&t_bis=24%3A00&startDateActionPeriod=13.01.2011&autoload_st=1&btnFormsubmitWithJs=1&email_adr%5B%5D=&zipStAbo=1&jsEnabled=1")
    $Post =_HTTPPost("192.168.1.233", "/powerq1/statistik.php", -1, $data)
    $data = _HTTPEncodeString("nummer=allposs15&ausw=agent&sub_ausw=gesamt_u&old_nummer=allposs15&old_ausw=agent&von=01.01.2011&von_hour=00%3A00&bis=13.01.2011&bis_hour=24%3A00&mona=mt&zeitraum=tt&datum=13.01.2011&interv=60&t_von=00%3A00&t_bis=24%3A00&startDateActionPeriod=13.01.2011&autoload_st=1&btnFormsubmitWithJs=1&email_adr%5B%5D=BLABLA&zipStAbo=1&jsEnabled=1")
    $Post =_HTTPPost("192.168.1.233", "/powerq1/statistik.php", -1, $data)
    $avArray =_HTTPRead(-1, 1)

    [/autoit]

    Ich habe es auch mit verschiedenen Sleeps zwischen den jeweiligen Post bzw. Gets versucht, aber leider hat das auch keinen Unterschied gebracht.

    Für eure Hilfe wäre ich sehr dankbar

  • Onmouseover von HP auslesen

    • TheLuBu
    • 12. Januar 2011 um 21:57

    EIgentlich wollte ich es mit FF.au3 oder IE.au3 machen.
    Was meinst du denn mit TCP ( bin jetzt nicht so mit den Protokollen bewandert), kann man damit auch durch eine Website steuern?
    Ich hatte mir überlegt, das es ja möglich sein muss, dem Server Befehle zu senden, um direkt an die Daten zu kommen, anstatt über ClickLink o.Ä .

    Konkret geht es um einen Server, der in ein Netzwerk eingebunden ist. Zugegriffen wird auf den Server über ein WebInterface, dort sind eben auch die Infos, die ich auslesen muss/möchte. Allerdings kann keiner in unserer Firma auf diesen Server bzw. die Serverkonfiguration zugreifen, und auch der Externe Serverhoster lässt niemanden an die Konfiguration.

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™