| 

.NET C# Java Javascript Exception

1
Hallo wie kann ich verhindern das beim Nummerieren der Zeilen im Listview noch beim splitten von Text der ersten Zeilentext (14) mitgenommen wird!

Text: 14 - 05.02.2018 - 06.02.2018 - 09:00:00 - 13:00:00 - Bearbeiten -20

Tabelle Ausgabe:
Pos. KD Leistungsdatum Leistungsdatum Ende Von Bis Auftrag Leistung Stunden
14
1 14 05.02.2018 06.02.2018 09:00:00 13:00:00 1 Bearbeiten 20

Teil Code:

Pos += 1

'ListView-Objekt um neue Zeile ergänzen POS eintragen
Dim LVItem As ListViewItem
'Dim Daten As ListViewItem



'Subeinträge der neuen Zeile
Dim parts() = cboSArbeiten.Text.Split({"-"}, StringSplitOptions.None) 'TextBox1.Text.Split({"-"}, StringSplitOptions.None)
Dim item = ListViewTimeWork.Items.Add(parts(0)) '(0)
'Pos eintragen... LVItem
LVItem = ListViewTimeWork.Items.Add(Pos.ToString("n0")) ' ### Muss ich noch ändern!!!! als SubItems !!!
For i = 0 To parts.Length - 1 'i=
LVItem.SubItems.Add(parts(i)) 'i item.SubItems
Next


Gruss Thomas Meier
News:
14.03.2018
tsmeier 51 1 3
4 Antworten
0
Die Splitfunktion erstellt ein Feld. Wenn der erste Eintrag nicht verwendet werden soll, dann einfach mit Index 1 statt 0 im Feld beginnen.

Beispiel:
' Hinzufügen des zweiten Eintrags als Item:
Dim item = ListViewTimeWork.Items.Add(parts(1))
' oder in der Schleife:
For i = 1 To parts.Length - 1
LVItem.SubItems.Add(parts(i))
Next

Ich hoffe, ich habe Ihre Anfrage richtig verstanden. Bei Zugriffen empfiehlt es sich natürlich vorher die Anzahl der Elemente im Feld zu bestimmen, damit man keine Zugriffe außerhalb des Feldindexbereichs riskiert ;-)
16.03.2018
edvservice 1,4k 1 6
0
Ok das hatte ich schon mal probiert...

Tabelle Ausgabe wenn statt 0 eine 1 Index drin steht (14) erscheint trotzdem...:

Pos. KD Leistungsdatum Leistungsdatum Ende Von Bis Auftrag Leistung Stunden
(14)
1 05.02.2018 06.02.2018 09:00:00 13:00:00 1 Bearbeiten 20

Das ist das was ich nicht erreichen wollte die (14) darf nicht in Liestview erscheinen.

Gruss TM
17.03.2018
tsmeier 51 1 3
0
Den Eintrag mit der 14 erzeugen Sie doch explizit:
'Subeinträge der neuen Zeile
Dim parts() = cboSArbeiten.Text.Split({"-"}, StringSplitOptions.None) 'TextBox1.Text.Split({"-"}, StringSplitOptions.None)
Dim item = ListViewTimeWork.Items.Add(parts(0)) '(0. Eintrag?)
'Pos eintragen... LVItem
LVItem = ListViewTimeWork.Items.Add(Pos.ToString("n0")) ' ### Muss ich noch ändern!!!! als SubItems !!!
For i = 0 To parts.Length - 1 'i=
LVItem.SubItems.Add(parts(i)) 'i item.SubItems
Next

Ich hatte mir das Eintragen so gedacht:
'Subeinträge der neuen Zeile
Dim parts() = cboSArbeiten.Text.Split({"-"}, StringSplitOptions.None) 'TextBox1.Text.Split({"-"}, StringSplitOptions.None)
'Pos eintragen... LVItem
LVItem = ListViewTimeWork.Items.Add(Pos.ToString("n0")) ' ### Muss ich noch ändern!!!! als SubItems !!!
For i = 1 To parts.Length - 1 'i=
LVItem.SubItems.Add(parts(i)) 'i item.SubItems
Next

So sollte der erste Eintrag immer übersprungen und nicht angezeigt werden.
19.03.2018
edvservice 1,4k 1 6
Problematisch ist es das ich den Text von der Combobox Splitten muss und dann mit Pos +=1 die Positionsnummer und dann den Combotext db ausgelesen in Liestview eintragen muss... nur wie ich es drehe erscheint trotzdem die 14 als erstes dann der combotext...

Gruss TM
tsmeier 19.03.2018
Ich verstehe Ihr Problem nicht so ganz. Sie bauen eine Tabelle (ListView) auf und haben eine Zeichenkette, die Sie am Minuszeichen trennen. Damit haben Sie doch zugriff auf jedes Element der Zeichenkette und können die Spalten der Tabelle in beliebiger Reihenfolge füllen?
Oder fehlen in Ihrem Codebeispiel wichtige Informationen? - Sie erzeugen eine Überschrift und eine weitere Zeile mit n Spalten oder habe ich etwas übersehen?
edvservice 20.03.2018
0
So gehts... siehe ###

Pos += 1

'ListView-Objekt um neue Zeile ergänzen POS eintragen
Dim LVItem As ListViewItem
'Dim Daten As ListViewItem



'Subeinträge der neuen Zeile
Dim parts() = cboSArbeiten.Text.Split({"-"}, StringSplitOptions.None) 'TextBox1.Text.Split({"-"}, StringSplitOptions.None)
'Dim item = ListViewTimeWork.Items.Add(parts(0)) '(0) ### Diese Zeile auskommentieren.
'Pos eintragen... LVItem
LVItem = ListViewTimeWork.Items.Add(Pos.ToString("n0")) ' Muss ich noch ändern!!!! als SubItems !!!
For i = 0 To parts.Length - 1 'i= For i = 1 To parts.Length - 1
LVItem.SubItems.Add(parts(i)) 'i item.SubItems
Next

Gruss Thomas meier
20.03.2018
tsmeier 51 1 3
Genau das war mein Vorschlag vor ein paar Tagen. Ich hatte lediglich mit der Aufzählung bei Position 1 begonnen, da ich dachte Sie benötigen das erste Element des Feldes nicht. Schön, dass das Problem gelöst ist...
edvservice 21.03.2018

Stelle deine Splitten-Frage jetzt!