vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

ADO.NET / Datenbanken
Re: DataTable Expressions Rangliste (Lösung) 
Autor: SvenS
Datum: 21.10.10 15:40

Ich hatte wohl den Faden verloren! So ist das, wenn man auf einen fremden Zug aufspringt!

So gehts, wie ich es haben wollte:

Friend Sub calcRanking()
   Dim kfz() As String = {"kfz1", "kfz2", "kfz3", "kfz4"}
   For i As Integer = 0 To kfz.Length - 1
      vRank(kfz(i).ToString)
   Next
   hRank(kfz)
End Sub
 
''' <summary>Rang-Berechnung in vertikaler Richtung (Spalte) für jeden 
' einzelnen Wert</summary>
''' <param name="spalte">Spaltenname als String</param>
Private Sub vRank(ByVal spalte As String)
   Dim dt As DataTable = Me
   Dim q = (From r In dt.AsEnumerable() Order By r.Field(Of Double)(spalte) _
     Descending _
            Select r.Field(Of Double)(spalte) _
           ).ToList()
           For Each dr As DataRow In dt.Rows
              dr(spalte & "_vRang") = q.IndexOf(dr.Field(Of Double)(spalte)) + 1
           Next
End Sub
 
 
''' <summary>Rang-Berechnung in horizontaler Richtung (Zeile) für jeden 
' einzelnen Wert</summary>
''' <param name="spalten">Array: Spaltenbezeichner für Rangberechnung</param>
Private Sub hRank(ByVal spalten() As String)
   Dim dt As DataTable = Me
   Dim val As Decimal, rnk As Integer
   For row As Integer = 0 To dt.Rows.Count - 1
      For c1 As Integer = 0 To spalten.Length - 1
         val = dt.Rows(row)(spalten(c1))
         'rnk = 1 '<- normale Reihenfolge 
         rnk = dt.Rows.Count - 1 '<- umgedrehte Reihenfolge 
         For c2 As Integer = 0 To spalten.Length - 1
            If val > dt.Rows(row)(spalten(c2)) Then rnk -= 1
         Next c2
         dt(row)(spalten(c1) & "_hRang") = rnk
      Next c1
   Next row
End Sub
Man kann vielleicht hier und da noch nachbessern, aber die Funktionalität paßt schon mal.

Ihr seid Super!
Habt vielen Dank für Eure Mühen!

Sven
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
DataTable Expressions Rangliste2.473SvenS19.10.10 07:52
Re: DataTable Expressions Rangliste1.887Manfred X19.10.10 08:28
Re: DataTable Expressions Rangliste1.870SvenS19.10.10 08:36
Re: DataTable Expressions Rangliste1.888Manfred X19.10.10 08:58
Re: DataTable Expressions Rangliste1.826SvenS19.10.10 09:44
Ergänzender Hinweis für Interessierte1.855Manfred X20.10.10 16:41
Re: Ergänzender Hinweis für Interessierte1.858ModeratorDaveS20.10.10 17:46
Re: Ergänzender Hinweis für Interessierte1.885Manfred X20.10.10 18:20
Re: Ergänzender Hinweis für Interessierte1.815ModeratorDaveS20.10.10 18:33
Re: DataTable Expressions Rangliste2.073ModeratorDaveS19.10.10 15:28
Re: DataTable Expressions Rangliste1.857SvenS20.10.10 10:17
Re: DataTable Expressions Rangliste1.844ModeratorDaveS20.10.10 10:52
Re: DataTable Expressions Rangliste1.842SvenS20.10.10 11:27
Re: DataTable Expressions Rangliste1.825Manfred X20.10.10 12:07
Re: DataTable Expressions Rangliste1.842SvenS20.10.10 14:42
Re: DataTable Expressions Rangliste1.948ModeratorDaveS20.10.10 14:54
Re: DataTable Expressions Rangliste1.822SvenS20.10.10 22:50
Re: DataTable Expressions Rangliste1.833ModeratorDaveS21.10.10 08:09
Re: DataTable Expressions Rangliste1.830SvenS21.10.10 08:40
Re: DataTable Expressions Rangliste1.842Manfred X21.10.10 11:42
Re: DataTable Expressions Rangliste1.859ModeratorDaveS21.10.10 15:23
Re: DataTable Expressions Rangliste (Lösung)1.989SvenS21.10.10 15:40

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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