List View Spalten füllen

  • Hallo ich bins nochmal,

    Ich habe ein Problem mit der ListView.
    Ich versuche mehrere Spalten eines ListViews mit unterschiedlichen Datensätzen aus verschiedenen ini Dateien zubefüllen, allerdings gelingt mir das nicht.
    Jedesmal werden alle Datensätze in die erste Spalte eingelesen aber das ist total falsch.
    Ich such schon seit Freitag nach einer Lösung, kann aber nichts finden.
    Was muss ich jetzt machen, damit jeweils nur die bestimmte spalte gefüllt wird, außer dass ich noch eine extra funktion für $Voll_Übersicht anlegen muss?


    Das ist der GUI Bereich der gefüllt werden soll:

    $Voll_Uebersicht_List = GUICtrlCreateListView("Mitarbeiter|KomBereich|Spool|Start|Ende|Status/Bemerkung|Express", 24, 64, 1161, 318)
    _GUICtrlListView_SetColumnWidth($Voll_Uebersicht_List,0,165)
    _GUICtrlListView_SetColumnWidth($Voll_Uebersicht_List,1,165)
    _GUICtrlListView_SetColumnWidth($Voll_Uebersicht_List,2,165)
    _GUICtrlListView_SetColumnWidth($Voll_Uebersicht_List,3,165)
    _GUICtrlListView_SetColumnWidth($Voll_Uebersicht_List,4,165)
    _GUICtrlListView_SetColumnWidth($Voll_Uebersicht_List,5,165)
    _GUICtrlListView_SetColumnWidth($Voll_Uebersicht_List,6,165)


    Func KomBereich_lesen()

    $Array1 = IniReadSection($Pfad_KomBereiche&"\KomBereiche.ini", "KomBereiche")
    $LastIndex = $Array1[0][0]
    _GUICtrlListView_DeleteAllItems($Kom_Bereich_List)
    Return $LastIndex

    EndFunc

    Func ListBox_KomBereich_fuellen()
    $Array1 = IniReadSection($Pfad_KomBereiche&"\KomBereiche.ini", "KomBereiche")
    $LastIndex = $Array1[0][0]


    For $i = 1 To $LastIndex Step 1

    GUICtrlCreateListViewItem( $Array1[$i][1], $Kom_Bereich_List)

    Next

    EndFunc


    ;~ ;Stoppgrund hinzufügen Übersicht

    Func Stoppgrundlist_lesen()

    $Array = IniReadSection($Pfad_Stoppgruende&"\Stoppgründe.ini", "Stoppgründe")
    $LastIndex = $Array[0][0]
    _GUICtrlListView_DeleteAllItems($Stoppgruende_List)
    Return $LastIndex

    EndFunc

    Func ListBox_fuellen()
    $Array = IniReadSection($Pfad_Stoppgruende&"\Stoppgründe.ini", "Stoppgründe")
    $LastIndex = $Array[0][0]


    For $i = 1 To $LastIndex Step 1

    GUICtrlCreateListViewItem( $Array[$i][1], $Stoppgruende_List)

    Next

    EndFunc

    ; Mitarbeiter hinzufügen Übersicht

    Func Mitarbeiter_lesen()

    $Array2 = IniReadSection($Pfad_Mitarbeiter&"\Mitarbeiter.ini", "Mitarbeiter")
    $LastIndex = $Array2[0][0]
    _GUICtrlListView_DeleteAllItems($Mitarbeiter_List)
    Return $LastIndex

    EndFunc

    Func ListBox_Mitarbeiter_fuellen()
    $Array2 = IniReadSection($Pfad_Mitarbeiter&"\Mitarbeiter.ini", "Mitarbeiter")
    $LastIndex = $Array2[0][0]


    For $i = 1 To $LastIndex Step 1

    GUICtrlCreateListViewItem( $Array2[$i][1], $Mitarbeiter_List)

    Next

    EndFunc


    Was muss ich jetzt machen, damit jeweils nur die bestimmte spalte gefüllt wird, außer dass ich noch eine extra funktion für $Voll_Übersicht anlegen muss? :)

    • Offizieller Beitrag

    Mit _GUICtrlListView_SetItemText kannst du den Text einer betimmten Spalte setzen. Das Item muß aber bereits existieren.
    D.H. generell muß das Hauptitem(1. Spalte) existieren, die Subitems (Spalte 2 bis ...) müssen nicht angelegt sein.
    Ausserdem muß mit dem Itemindex gearbeitet werden, also 1. Item = 0 usw, genau wie bei den Spalten 1. Spalte = Subitem 0.
    Schau dir mal die Funktion in der Hilfe an.

  • Hey ich bins direkt wieder, hab mir deinen Rat angesehen, allerdings bezieht sich dein Tipp darauf, dass die Zeilen in einer Spalte sich abändern, heist wenn ich z.B.

    _GUICtrlListView_SetItemText($Voll_Uebersicht_List,1 ,$Array1)

    schreibe, dann wandern, die Werte von $Array1 ein nach unten, und eine Leerzeile entsteht. Ich suche allerdings den Weg dafür, wie ich den inhalt des Arrays in eine andere Spalte übertrage, heist, dass dieser inhalt nicht in Spalte A abgelegt wird, sondern in Spalte B


    Beispiel:

    A....................| B
    ------------------|-----------------
    Wert1..............| Array Wert
    Wert2..............| Array Wert 2


    :)