Hallo WeEf,
haben nur ein paar Kleinigkeiten gefehlt:
Die Datentabelle muß einen Namen haben, den das DataGridTableStyle als MappingName "MeineDaten". Sonst weiß das DataGridTableStyle gar nicht, wohin es gehört.
Naja und das Zeugs dann mit dem Thread und Format ...
konnte nur nicht prüfen, ob nun wirklich sortiert wird, weil es ja nur zwei Datensätze sind.
Dim dt As DataTable
Dim dr As DataRow
Dim i As Integer
dt = New DataTable("MeineDaten")
dt.Columns.Add(New DataColumn("Klasse 1/2", GetType(Integer)))
dt.Columns.Add(New DataColumn("Klasse 3", GetType(Integer)))
dt.Columns.Add(New DataColumn("Klasse 4", GetType(Integer)))
dt.Columns.Add(New DataColumn("Klasse 5", GetType(Integer)))
dt.Columns.Add(New DataColumn("Klasse 6", GetType(Integer)))
dt.Columns.Add(New DataColumn("Klasse 7", GetType(Integer)))
dt.Columns.Add(New DataColumn("Klasse 8", GetType(Integer)))
dt.Columns.Add(New DataColumn("Fälle", GetType(Integer)))
dt.Columns.Add(New DataColumn("Prozent", GetType(Single)))
Dim Klasse2(2) As Integer
Dim Klasse3(2) As Integer
Dim Klasse4(2) As Integer
Dim Klasse5(2) As Integer
Dim Klasse6(2) As Integer
Dim Klasse7(2) As Integer
Dim Klasse8(2) As Integer
Dim Quote(2) As Integer
Dim Prozent(2) As Double
' Beispiel für System VEW 609 bei 6 Treffern
Klasse2(2) = 1
Klasse2(1) = 0
Klasse3(2) = 0
Klasse3(1) = 0
Klasse4(2) = 0
Klasse4(1) = 3
Klasse5(2) = 0
Klasse5(1) = 0
Klasse6(2) = 9
Klasse6(1) = 6
Klasse7(2) = 0
Klasse7(1) = 0
Klasse8(2) = 2
Klasse8(1) = 3
Quote(2) = 36
Quote(1) = 216
Prozent(2) = 14.28571
Prozent(1) = 85.71429
' Ende Beispiel
For i = 1 To 2
dr = dt.NewRow()
dr(0) = Klasse2(i)
dr(1) = Klasse3(i)
dr(2) = Klasse4(i)
dr(3) = Klasse5(i)
dr(4) = Klasse6(i)
dr(5) = Klasse7(i)
dr(6) = Klasse8(i)
dr(7) = Quote(i)
dr(8) = Prozent(i)
dt.Rows.Add(dr)
Next
Dim dv As New DataView(dt)
Dim tempstr As String
Dim myGridStyle As DataGridTableStyle = New DataGridTableStyle
myGridStyle.DataGrid = Me.dg
myGridStyle.MappingName = "MeineDaten"
For Each dc As DataColumn In dv.Table.Columns
tempstr = tempstr + dc.ColumnName + " DESC, "
Dim myDgTbc As DataGridTextBoxColumn = New DataGridTextBoxColumn
myDgTbc.MappingName = dc.ColumnName
myDgTbc.HeaderText = myDgTbc.MappingName
If dc.ColumnName = "Prozent" Then
myDgTbc.Format() = "p"
Dim nfi As NumberFormatInfo = New CultureInfo( _
System.Threading.Thread.CurrentThread.CurrentCulture.ToString( _
), False).NumberFormat
nfi.PercentDecimalDigits = 4
myDgTbc.FormatInfo = nfi
End If
myDgTbc.Alignment = HorizontalAlignment.Right
myDgTbc.Width = 90.0
myGridStyle.GridColumnStyles.Add(myDgTbc)
Next
tempstr = tempstr.Substring(0, tempstr.Length - 2)
dv.Sort() = tempstr
dg.TableStyles.Add(myGridStyle)
dg.DataSource = dv.Table |