vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

In diesem Forum haben Sie die Möglichkeit Kommentare, Fragen und Verbesserungsvorschläge zu den im vb@rchiv gelisteten Tipps und Workshops zu posten.

Hinweis:
Ein neues Thema kann immer nur über die jeweilige Tipps & Tricks bzw. Workshop Seite eröffnet werden!

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

Fragen zu Tipps & Tricks und Workshops im vb@rchiv
Tipp 2497: Funktion zum Formatieren einer DatagridView-Spalte mit dezimal Alignment 
Autor: Manfred X
 Tipp anzeigenDatum: 02.06.19 17:34

In den meisten Fällen ist es einfacher und aussagekräftiger,
die Formatierung von numerischen Werten über den CellStyle
des Datagridview-Controls einzurichten (Format, Ausrichtung).
Public Class frmDGVFormatNumber
 
    Dim dt As New DataTable
    Dim bs As New BindingSource
 
    Dim WithEvents dgv As New DataGridView With 
        {.Parent = Me, .DataSource = bs,
        .Location = New Point(10, 10), .Size = New Drawing.Size(300, 300)}
 
 
    Private Sub frmDGVFormatNumber_Load(sender As Object, 
        e As EventArgs) Handles MyBase.Load
 
        'Testspalten
        With dt.Columns
            .Add("number (int)", GetType(Integer))
            .Add("number (dec)", GetType(Decimal))
            .Add("number (dbl)", GetType(Double))
        End With
 
        'zufällige Testdaten
        Dim dec As Decimal, dbl As Double
        Dim rndm As New Random(1234), g As Integer
        For i As Integer = 1 To 200
            g = rndm.Next(0, 5)
            dec = CDec(rndm.NextDouble)
            dec = CDec(dec * 10 ^ g)
            g = rndm.Next(0, 5)
            dbl = rndm.NextDouble
            dbl = dbl * 10 ^ g
            If rndm.NextDouble < 0.5 Then dbl *= -1
            dt.Rows.Add(i, dec, dbl)
        Next i
 
        'Datenbindung
        bs.DataSource = dt
 
        'Ausrichtung und Formatierung   
        For i As Integer = 0 To 2
            With dgv.Columns(i)
                .DefaultCellStyle.Alignment = 
                     DataGridViewContentAlignment.MiddleRight
 
                If .ValueType.Equals(GetType(Integer)) Then
                    .DefaultCellStyle.Format = "#####0"
                Else
                    .DefaultCellStyle.Format = "#####0.00000"
                End If
            End With
        Next i   
    End Sub
 
End Class
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Funktion zum Formatieren einer DatagridView-Spalte mit dezimal Alignment 
Autor: thuring
Datum: 16.07.19 10:07

Die Zeile
.DefaultCellStyle.Format = "#####0.00000"
bringt NICHT den gewünschten Effekt für Dezimal-Ausrichtung, wenn bspw. unterschiedliche Anzahlen von Nachkommastellen im Dezimalwert vorhanden sind.

Salzburger

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Funktion zum Formatieren einer DatagridView-Spalte mit dezimal Alignment 
Autor: Manfred X
Datum: 16.07.19 23:34

Hallo!

Bei der Darstellung von Dezimalzahlen in einer Spalte
macht es gewöhnlich keinen Sinn, unterschiedliche Anzahlen
von Nachkommastellen anzuzeigen.
Sind Deine Daten keine Dezimalbrüche? Steht das Komma in der
Ziffernfolge für eine andere Bedeutung?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Funktion zum Formatieren einer DatagridView-Spalte mit dezimal Alignment 
Autor: thuring
Datum: 17.07.19 08:39

Über Sinn und Unsinn brauchen wir hier nicht zu diskutieren.
Beispiel: Die Umrechnungskurse zum Euro der EZB
Unterschiedliche Anzahlen von Nachkommastellen sind zumindest gebräuchlich.

Salzburger

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Funktion zum Formatieren einer DatagridView-Spalte mit dezimal Alignment 
Autor: Manfred X
Datum: 17.07.19 12:33

Im dem Fall der Währungsfaktoren ist eine Formatierung am Dezimalpunkt
nicht anzuraten.
Durch diese Formatierung wird der Eindruck von einer Vergleichbarkeit
der Werte innerhalb der Spalte erzeugt. Es steht aber jeder Wert
"für sich" und ist nicht auf die anderen Umrechnungsfaktoren zu beziehen.
https://wechselkurse-euro.de/
Die zentrierte Darstellung erscheint mir in dem Fall zweckmäßig.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Funktion zum Formatieren einer DatagridView-Spalte mit dezimal Alignment 
Autor: thuring
Datum: 17.07.19 13:08

Mir allerdings erscheint die dezimale Ausrichtung als wesentlich übersichtlicher im Gesamterscheinungsbild der Tabelle.

Salzburger

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Funktion zum Formatieren einer DatagridView-Spalte mit dezimal Alignment 
Autor: thuring
Datum: 25.07.19 09:15

Im Übrigen gibt es in Office-Word den Dezimal-Tabstopp, den man in Tabellen folgendermaßen verwenden kann:
https://www.vbarchiv.net/tipps/details.php?id=2407
AddDecimalTabToCell

Salzburger

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Funktion zum Formatieren einer DatagridView-Spalte mit dezimal Alignment 
Autor: thuring
Datum: 05.08.19 16:37

Bitte anschauen:
http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml

Salzburger

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um einen neuen Beitrag 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