vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 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

VB.NET - Fortgeschrittene
Re: gruppiertes drucken 
Autor: ERBRU
Datum: 30.04.16 07:47

Danke für das Beispiel, bezieht sich aber nur auf eine TextBox

ich habe aber eine DGV bzw. Datasource da muss ich wohl alles Zufuss machen

Beispiel Zeilen_Spalten der (DGV) ermitteln

nur so wie unten im Code, geht das nicht da meine 2 DGV unter Kopfzeile soll


  Private Sub PD_Streifenliste_Zeilen_Spalten_Ermitteln()
        Dim ImageWall As Bitmap
        ImageWall = New Bitmap(CInt(rect_Druckbereich.Width), CInt( _
          rect_Druckbereich.Height))
 
        Using g As Graphics = Graphics.FromImage(ImageWall)
            g.PageUnit = GraphicsUnit.Display
            DruckSeite = 1
 
            Dim DGV_Font As Font = New System.Drawing.Font("Tahoma", 8.25!, _
              System.Drawing.FontStyle.Regular, _
              System.Drawing.GraphicsUnit.Point, CType(0, Byte))
 
            Dim ZellInhalt As String
            Dim Höhe As Integer = 0
            Dim maxHöhe As Integer = 0
            Dim Breite As Single = rect_Druckbereich.Width
 
            ZeilenHoehen.Clear()
            SpaltenBreiten.Clear()
 
            'relativ feste Breiten
            Dim w1 As Single = g.MeasureString("-0000-", DGV_Font).Width _
              'MeldeID
            Dim w2 As Single = g.MeasureString("-Erstellt am-", DGV_Font).Width _
            'Erstelldatum
            Dim w3 As Single = g.MeasureString( _
            "-Problem-Problembeschreibung-Meldung-Problem-Problembeschreibung-"_
            , DGV_Font).Width 'Meldetext
            Dim w4 As Single = g.MeasureString("-TPM-Karte-", DGV_Font).Width _
            'TPM-Karte
            Dim w5 As Single = g.MeasureString( _
            "-SLS-GC-H6-Linie-FB-CM-9393906-", DGV_Font).Width 'Maschine,Anlage
            Dim w6 As Single = g.MeasureString("-Ort-", DGV_Font).Width 'Ort, 
            ' Halle
            Dim w7 As Single = g.MeasureString("-Anrede-Name,Vorname-", _
              DGV_Font).Width 'Name Melder
            Dim w8 As Single = g.MeasureString("-dd.MM.YYYY-", DGV_Font).Width _
            'Datum abgestellt
            Dim w9 As Single = g.MeasureString("-erledigt-", DGV_Font).Width _
            'OK, Problem abgestellt
 
            Dim wG As Single = w1 + w2 + w3 + w4 + w5 + w6 + w7 + w8 + w9
            Dim PrzSatz As Single = (wG / Breite) * 100
 
            'restliche 3 Spaltenbreiten dritteln
            Dim drittelPrzSatz As Single = (100 - PrzSatz) / 3
            Dim drittelBreite As Single = (drittelPrzSatz * Breite) / 100
 
            SpaltenBreiten.Add(w1) 'MeldeID
            SpaltenBreiten.Add(w2) 'Erstelldatum
            SpaltenBreiten.Add(w3) 'Meldetext
            SpaltenBreiten.Add(w4) 'TPM-Karte
            SpaltenBreiten.Add(w5) 'Maschine,Anlage
            SpaltenBreiten.Add(w6) 'Ort
            SpaltenBreiten.Add(w7) 'Melder
            SpaltenBreiten.Add(w8) 'Datum abgestellt
            SpaltenBreiten.Add(w9) 'OK abgearbeitet, abgestellt 
            '
            Dim curr_Zelle As DataGridViewCell = Nothing
            Dim ZellBox As New RectangleF
            Dim sfmt As New StringFormat
 
            sfmt = StringFormat.GenericDefault
            sfmt.Alignment = StringAlignment.Center
            sfmt.LineAlignment = StringAlignment.Center
 
            Dim ZeilenHöhe As Single = g.MeasureString("[Wü gq*µ']", _
              DGV_Font).Height
 
            Dim charactersFitted, linesFilled As Integer
            Dim tmp_size As New SizeF
            Dim gsize As New SizeF
            Dim aktHöhe As Integer
 
            For DGVZeile As Integer = 0 To DGV.Rows.Count - 1
                maxHöhe = 0
                Höhe = 0
 
                For DGVSpalte As Integer = 0 To DGV.Columns.Count - 1
                    curr_Zelle = DGV.Rows(DGVZeile).Cells(DGVSpalte)
                    ZellInhalt = curr_Zelle.FormattedValue.ToString
 
                    'Höhenmessung
                    tmp_size.Width = SpaltenBreiten(DGVSpalte)
                    tmp_size.Height = rect_Druckbereich.Height
 
                    'Anzahl benötigter Zeilen ermitteln (linesFilled)
                    gsize = g.MeasureString(ZellInhalt, DGV_Font, tmp_size, _
                      sfmt, charactersFitted, linesFilled)
                    aktHöhe = CInt(Math.Ceiling((ZeilenHöhe * linesFilled)))
                    Höhe = Math.Max(Höhe, aktHöhe)
 
                    maxHöhe = Math.Max(Höhe, maxHöhe)
                Next
 
                ZeilenHoehen.Add(maxHöhe + 2)
            Next
 
            DGV_Font.Dispose()
            sfmt.Dispose()
            curr_Zelle.Dispose()
        End Using
 
        ImageWall.Dispose()
    End Sub
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
gruppiertes drucken1.809ERBRU28.04.16 22:39
Re: gruppiertes drucken1.040Manfred X29.04.16 19:06
Re: gruppiertes drucken1.085ERBRU29.04.16 20:22
Re: gruppiertes drucken1.051Manfred X29.04.16 22:04
Re: gruppiertes drucken1.139ERBRU30.04.16 07:47
Re: gruppiertes drucken (Beispiel)1.300Manfred X30.04.16 12:23
Re: gruppiertes drucken (Beispiel)1.080ERBRU30.04.16 13:17

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