vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 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 - Ein- und Umsteiger
Re: report für vb.net - Teil2 
Autor: Scorpi
Datum: 22.07.08 08:54

    Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As _
      System.Drawing.Printing.PrintPageEventArgs) Handles _
      PrintDocument1.PrintPage
        Static oColumnLefts As New ArrayList
        Static oColumnWidths As New ArrayList
        Static oColumnTypes As New ArrayList
        Static nHeight As Int16
 
        Dim nWidth, i, nRowsPerPage As Int16
        Dim nTop As Int16 = e.MarginBounds.Top
        Dim nLeft As Int16 = e.MarginBounds.Left
 
        If nPageNo = 1 Then
 
            For Each oColumn As DataGridViewColumn In Grid1.Columns
                nWidth = CType(Math.Floor(oColumn.Width / nTotalWidth * _
                  nTotalWidth * (e.MarginBounds.Width / nTotalWidth)), Int16)
 
                nHeight = e.Graphics.MeasureString(oColumn.HeaderText, _
                  oColumn.InheritedStyle.Font, nWidth).Height + 11
 
                oColumnLefts.Add(nLeft)
                oColumnWidths.Add(nWidth)
                oColumnTypes.Add(oColumn.GetType)
                nLeft += nWidth
            Next
        End If
 
        Do While nRowPos <= Grid1.Rows.Count - 1
            Dim oRow As DataGridViewRow = Grid1.Rows(nRowPos)
 
            If nTop + nHeight >= e.MarginBounds.Height + e.MarginBounds.Top Then
                DrawFooter(e, nRowsPerPage)
 
                NewPage = True
                nPageNo += 1
                e.HasMorePages = True
                Exit Sub
            Else
 
                If NewPage Then
                    ' Draw Header
                    e.Graphics.DrawString(Header, New Font(ÜSchriftart, _
                      FontStyle.Bold), Brushes.Black, e.MarginBounds.Left, _
                      e.MarginBounds.Top - e.Graphics.MeasureString(Header, New _
                      Font(ÜSchriftart, FontStyle.Bold), _
                      e.MarginBounds.Width).Height - 13)
 
                    ' Draw Columns
                    nTop = e.MarginBounds.Top
                    i = 0
                    For Each oColumn As DataGridViewColumn In Grid1.Columns
                        e.Graphics.FillRectangle(New SolidBrush( _
                          Drawing.Color.LightGray), New Rectangle(oColumnLefts( _
                          i), nTop, oColumnWidths(i), nHeight))
                        e.Graphics.DrawRectangle(Pens.Black, New Rectangle( _
                        oColumnLefts(i), nTop, oColumnWidths(i), nHeight))
                        e.Graphics.DrawString(oColumn.HeaderText, _
                        oColumn.InheritedStyle.Font, New SolidBrush( _
                        oColumn.InheritedStyle.ForeColor), New RectangleF( _
                        oColumnLefts(i), nTop, oColumnWidths(i), nHeight), _
                        oStringFormat)
                        i += 1
                    Next
                    NewPage = False
                End If
 
                nTop += nHeight
                i = 0
                For Each oCell As DataGridViewCell In oRow.Cells
                    If oColumnTypes(i) Is GetType(DataGridViewTextBoxColumn) _
                      OrElse oColumnTypes(i) Is GetType(DataGridViewLinkColumn) _
                      Then
                        e.Graphics.DrawString(oCell.Value.ToString, _
                        oCell.InheritedStyle.Font, New SolidBrush( _
                        oCell.InheritedStyle.ForeColor), New RectangleF( _
                        oColumnLefts(i), nTop, oColumnWidths(i), nHeight), _
                        oStringFormat)
 
                    ElseIf oColumnTypes(i) Is GetType(DataGridViewButtonColumn) _
                      Then
                        oButton.Text = oCell.Value.ToString
                        oButton.Size = New Size(oColumnWidths(i), nHeight)
                        Dim oBitmap As New Bitmap(oButton.Width, oButton.Height)
                        oButton.DrawToBitmap(oBitmap, New Rectangle(0, 0, _
                          oBitmap.Width, oBitmap.Height))
                        e.Graphics.DrawImage(oBitmap, New Point(oColumnLefts( _
                        i), nTop))
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
report für vb.net1.386rtaucher22.07.08 08:06
Re: report für vb.net1.095Scorpi22.07.08 08:53
Re: report für vb.net - Teil21.104Scorpi22.07.08 08:54
Re: report für vb.net - Teil2949rtaucher22.07.08 08:55
Re: report für vb.net -> Teil31.100Scorpi22.07.08 08:54
Re: report für vb.net -> Teil3258Erichbru25.01.23 13:03
Re: report für vb.net1.179ModeratorFZelle22.07.08 09:34
Re: report für vb.net1.363Anhuera27.08.08 14:06

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