| |
VB.NET - Ein- und UmsteigerRe: 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. | |
Abfrage 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: 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 |
|
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats sevAniGif (VB/VBA)
Anzeigen von animierten GIF-Dateien
Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. 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
|
|