Dag iedereen,

Ik heb een irritant probleem. Ik probeer de gegevens van mijn sql database te printen maar dit is precies toch niet zo simpel als dat het lijkt. Het printen op zich lukt wel, tot er meer dan 1 bladzijde bij te pas komt. Het lukt met gewoon niet om 2 VERSCHILLENDE bladzijden te maken.
Er zijn twee scenarios:
  • Oneindige printloop waarbij slechts de eerste pagina oneindig wordt herhaald
  • Slechts 1 pagina

Dit is mijn code:
Code:
    Private Sub prntDocument_PrintPage(sender As System.Object, e As System.Drawing.Printing.PrintPageEventArgs) Handles prntDocument.PrintPage
        Const maxStudentsPerPage As Integer = 67
        Dim strFirstPage As String = ""
        Dim strSecondPage As String = ""

        Dim intAantalStudenten As Integer = objPrint.TotalStudents
        Dim strLeerling As String = String.Empty

        Dim scmdCommand As New SqlClient.SqlCommand
        Dim cnnLeerlingen As New SqlClient.SqlConnection
        Dim sdrReader As SqlClient.SqlDataReader

        'fonts
        Dim fontHeader As Font
        Dim HeaderFontName As String = "Courier New"
        Dim HeaderFontSize As Integer = 10
        fontHeader = New Font(HeaderFontName, HeaderFontSize, FontStyle.Bold)

        Dim fontText As Font
        Dim TextFontName As String = "Courier New"
        Dim TextFontSize As Integer = 10
        fontText = New Font(HeaderFontName, HeaderFontSize, FontStyle.Regular)
        'end of fonts


        cnnLeerlingen.ConnectionString = My.Settings.LeerlingenConnectionString

        scmdCommand.Connection = cnnLeerlingen
        scmdCommand.CommandText = "SELECT ID, Voornaam, Achternaam, Klas, Aanmeldtijd, Afmeldtijd FROM tblData"

        cnnLeerlingen.Open()
        sdrReader = scmdCommand.ExecuteReader

        Do While sdrReader.Read
            If (CInt(sdrReader.Item("ID")) <= maxStudentsPerPage) Then
                strFirstPage &= sdrReader.Item("ID").ToString & vbTab & sdrReader.Item("Voornaam").ToString & vbTab & sdrReader.Item("Achternaam").ToString & _
                    vbTab & sdrReader.Item("Klas").ToString & vbTab & sdrReader.Item("Aanmeldtijd").ToString & vbTab & sdrReader.Item("Afmeldtijd").ToString & vbNewLine
                If (CInt(sdrReader.Item("ID")) <= (maxStudentsPerPage * 2)) Then
                    strSecondPage &= sdrReader.Item("ID").ToString & vbTab & sdrReader.Item("Voornaam").ToString & vbTab & sdrReader.Item("Achternaam").ToString & _
                    vbTab & sdrReader.Item("Klas").ToString & vbTab & sdrReader.Item("Aanmeldtijd").ToString & vbTab & sdrReader.Item("Afmeldtijd").ToString & vbNewLine
                End If
            End If

        Loop

        sdrReader.Close()
        cnnLeerlingen.Close()

        e.Graphics.DrawString(strFirstPage, fontText, Brushes.Black, 80, 50)
        e.Graphics.DrawString(strSecondPage, fontText, Brushes.Black, 80, 50)
    End Sub
Als ik er "e.hasMorePages = True" bijzet, komt de infinite loop in het spel.
Hopelijk kan iemand me hierbij helpen!

Alvast bedankt,
Dries