| |
VB.NET - Ein- und UmsteigerAbfrage verkürzen | | | Autor: Marty** | Datum: 24.07.16 19:34 |
| Hallo,
mit folgenden Code mache ich eine Abfrage in einer Listview.
Gibt es eine Möglichkeit das ganze zu verkürzen ?
For Each lva As ListViewItem In lv.Items
If lva.SubItems(1).Text = "5" And lva.SubItems(3).Text = "41" Then
lva.SubItems(7).Text = "Typ1"
End If
Next
For Each lva As ListViewItem In lv.Items
If lva.SubItems(1).Text = "5" And lva.SubItems(3).Text = "59" Then
lva.SubItems(7).Text = "Typ1"
End If
Next
For Each lva As ListViewItem In lv.Items
If lva.SubItems(1).Text = "5" And lva.SubItems(3).Text = "91" Then
lva.SubItems(7).Text = "Typ1"
End If
Next
For Each lva As ListViewItem In lv.Items
If lva.SubItems(1).Text = "5" And lva.SubItems(3).Text = "283" Then
lva.SubItems(7).Text = "Typ1"
End If
Next
For Each lva As ListViewItem In lv.Items
If lva.SubItems(1).Text = "5" And lva.SubItems(3).Text = "315" Then
lva.SubItems(7).Text = "Typ1"
End If
Next
For Each lva As ListViewItem In lv.Items
If lva.SubItems(1).Text = "5" And lva.SubItems(3).Text = "347" Then
lva.SubItems(7).Text = "Typ1"
End If
Next Diese sechs Zeile sind immer untereinander vorhanden, sobald die 5 und 41 vorhanden sind.
Und wie kann ich die gefunden Zeilen farbig makieren ?
Gruß | |
Re: Abfrage verkürzen | | | Autor: Manfred X | Datum: 24.07.16 21:19 |
| Dim kritvals() As String = {"41", "59", "91", "283", "315", "347"}
For Each lva As ListViewItem In lv.Items
With lva
If .SubItems.Count >= 8 Then
If .SubItems(1).Text = "5" AndAlso _
kritvals.Contains(.SubItems(3).Text) Then
.SubItems(7).Text = "Typ1"
'.backcolor = ....
End If
End If
End With
Next lva Das Konstrukt ist kein Abfrage, sondern eine Bedingung.
Ob und ggf. wo genau der Count-Check hingehört, hängt vom Aufbau der Liste ab.
Eventuell erst hinter "Contains".
Ob es Sinn macht, die Subitem-Indices "hart" zu kodieren, kann ich nicht beurteilen.
Das gleiche gilt für die in der Liste enthaltenen bzw. zugewiesenen Werte (Strings).
Das Listview-Control arbeitet auch mit Schlüsseln.
Bei Änderungen der Datenstruktur ist das wesentlich flexibler.
Beitrag wurde zuletzt am 24.07.16 um 21:43:21 editiert. | |
Re: Abfrage verkürzen | | | Autor: Marty** | Datum: 31.07.16 21:01 |
| Sers,
ich habe jetzt ca 50 solcher Abfragen.
Leider macht das den Code sehr unübersichtlich.
Kann man das ganze irgendwie in eine Klasse auslagern ? | |
Re: Abfrage verkürzen | | | Autor: Manfred X | Datum: 31.07.16 21:41 |
| Niemand versteht, was mit "solchen Abfragen" gemeint ist.
Das "Auslagern" in eine Klasse macht unstrukturierten
Spaghetti-Code nicht übersichtlicher.
Du solltest erklären, was Du erreichen willst. | |
Re: Abfrage verkürzen | | | Autor: Marty** | Datum: 31.07.16 21:54 |
| Sers,
hauptsächlich möchte ich den Werten in der Listview eine Beschreibung hinzufügen.
Damit die Zeile eindeutig zu identifizieren ist.
Erreichen möchte ich damit, das der Code in der Form übersichtlicher wird.
Desweiteren benötige ich diese ca. 50 Abfragen 2 mal im Code
(Datei>öffnen und bei einem direkten Eingabe des Dateinamens)
Jetzt habe ich die gleichen Abfragen 2 mal drinnen. | |
Re: Abfrage verkürzen | | | Autor: Manfred X | Datum: 31.07.16 22:18 |
| Das ist nicht verständlich.
Woher beziehst Du die Werte in den Listview-Zeilen (Quelle, Ursprung)
denen eine Beschreibung hinzuzufügen ist?
Du benötigst vermutlich eine Datei oder Datenbank, in der die
Beziehung zwischen den zu ergänzenden Beschreibungen und
den entsprechenden IDs der Listviewitems eingetragen ist. | |
Re: Abfrage verkürzen | | | Autor: Marty** | Datum: 31.07.16 22:44 |
| Die Daten stammen von einer Hobby CNC Maschine.
http://www.cncecke.de/bilder/uploadFiles/20987_115271991102_cnc-wooddy.jpg
Um den Code an manchen stellen besser lesbar machen zu können, soll er halt eine Beschreibung hinzufügen.
Es funktioniert ja mit den Abfragen schon recht gut.
Leider ist es halt sehr umständlich die Abfragen zu editieren.
Manfred X schrieb:
Zitat: | |
Du benötigst vermutlich eine Datei oder Datenbank, in der die
Beziehung zwischen den zu ergänzenden Beschreibungen und
den entsprechenden IDs der Listviewitems eingetragen
ist. | |
Genau so eine Möglichkeit suche ich. Bin für jeden Tipp dankbar. | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Neu! sevDTA 3.0 Pro
SEPA mit Kontonummernprüfung
Erstellen von SEPA-Dateien mit integriertem BIC-Verzeichnis und Konto- nummern-Prüfverfahren, so dass ungültige Bankdaten bereits im Vorfeld ermittelt werden können. Weitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|