Tabel laten verdergaan op nieuwe pagina (Word)

Status
Niet open voor verdere reacties.

stoetel1

Nieuwe gebruiker
Lid geworden
8 apr 2012
Berichten
1
Hey,
Ik schrijf momenteel een programma voor verzekeren met dan een ledenbestand (klanten).
OP dit moment werk ik aan de facturatie hiervan deze werkt goed maar omdat het oog ook wat wilt zou ik om de +- 10 records willen dat de tabel verder gaat op de volgende pagina en dit liefst ook met opnieuw de kopteksten, ik heb al een paar dingen geprobeerd maar dit is jammer genoeg nog niet gelukt.

Nu hoopte ik dat iemand hier meer ervaring mee heeft

Code:
        Dim ordernummer As Integer
        Dim factuunummer As Integer
        Dim stam As String
        Dim hoogte As Integer
        Dim straat As String
        Dim postid As String
        Dim gemeente As String
        Dim postcode As String
        Dim uitgeprinte As Integer
        Dim tabelplaats As Integer
        Dim rijen As Integer
        Dim totaalexlbtw As Decimal
        Dim aantalrijen As Integer

        Dim myword As New Microsoft.Office.Interop.Word.Application

        Dim worddoc As Microsoft.Office.Interop.Word.Document
        Dim myrange As Microsoft.Office.Interop.Word.Range
        Dim mytable As Microsoft.Office.Interop.Word.Table
        Dim mycell As Microsoft.Office.Interop.Word.Cell
        Dim mycells As Microsoft.Office.Interop.Word.Cells
        Dim mycols As Microsoft.Office.Interop.Word.Columns

        Try
            verbinding.Open()
            ''Laatste factuurnummer
            Dim opdracht As New OleDb.OleDbCommand("SELECT max(Factuurnummer) from Tblfacturen", verbinding)
            Dim dataLezer As OleDb.OleDbDataReader = opdracht.ExecuteReader(CommandBehavior.CloseConnection)

            While dataLezer.Read
                hoogte = dataLezer.GetValue(0)
            End While

            '' Niet gefactureerde gegevens beginnen inlezen
            Dim opdracht2 As New OleDb.OleDbCommand("SELECT Ordernummer,Factuurnummer,Stamnummer from Tblfacturen WHERE Factuurnummer = 0", verbinding)
            Dim dataLezer2 As OleDb.OleDbDataReader = opdracht2.ExecuteReader(CommandBehavior.CloseConnection)

            uitgeprinte = 0
            tabelplaats = 0

            While dataLezer2.Read
                ordernummer = dataLezer2.GetValue(0)
                factuunummer = dataLezer2.GetValue(1)
                stam = dataLezer2.GetValue(2)

                ''Alle orders van het eerste stamnummer op 1 factuur zetten
                Dim opdrstring3 As String = "Update Tblfacturen set Factuurnummer = ? where Stamnummer = ? AND Factuurnummer = 0"
                Dim opdracht3 As New OleDb.OleDbCommand(opdrstring3, verbinding)
                opdracht3.Parameters.AddWithValue("", hoogte + 1)
                opdracht3.Parameters.AddWithValue("", stam)
                opdracht3.ExecuteNonQuery()

                '' Factuurnummer verhogen voor de volgende factuur
                hoogte = hoogte + 1

                ''Factuur maken in word

                ''Factuur zichtbaar maken

                myword.Visible = True
                myword.Activate()

                worddoc = myword.Documents.Add

                myword.Selection.Font.Name = "Arial"
                myword.Selection.Font.Size = 8
                myword.Selection.Font.Bold = False
                myword.Selection.Font.Italic = False
                myword.Selection.Font.Underline = False
                '' myword.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter
                ''Bovenstaande is voor het centreren van tekst

                ''Ophalen adres geadreseerde
                Dim categorienummer As Integer = 9

                Try
                    Dim opdracht4 As New OleDb.OleDbCommand("SELECT OverzichtcategorieID from TblCategories WHERE CategorieID = ? and Uitgeschreven = 0", verbinding)
                    opdracht4.Parameters.AddWithValue("", categorienummer)
                    Dim datalezer4 As OleDb.OleDbDataReader = opdracht4.ExecuteReader(CommandBehavior.CloseConnection)
                    While datalezer4.Read

                        Try
                            Dim opdracht5 As New OleDb.OleDbCommand("SELECT LidID from TblOverzichtCategorie WHERE OverzichtcategorieID = ? and Uitgeschreven = 0", verbinding)
                            opdracht5.Parameters.AddWithValue("", datalezer4.GetValue(0))
                            Dim datalezer5 As OleDb.OleDbDataReader = opdracht5.ExecuteReader(CommandBehavior.CloseConnection)
                            While datalezer5.Read

                                Dim opdracht6 As New OleDb.OleDbCommand("SELECT Straat,PostID from TblLeden Where LidID = ? and Uitgeschreven = 0", verbinding)
                                opdracht6.Parameters.AddWithValue("", datalezer5.GetValue(0))
                                Dim dataLezer6 As OleDb.OleDbDataReader = opdracht6.ExecuteReader(CommandBehavior.CloseConnection)

                                While dataLezer6.Read
                                    straat = dataLezer6.GetValue(0)
                                    postid = dataLezer6.GetValue(1)
                                    Dim opdracht7 As New OleDb.OleDbCommand("SELECT Plaats,Postcode from TblPostID WHERE PostID = ?", verbinding)
                                    opdracht7.Parameters.AddWithValue("", postid)
                                    Dim datalezer7 As OleDb.OleDbDataReader = opdracht7.ExecuteReader(CommandBehavior.CloseConnection)

                                    While datalezer7.Read
                                        gemeente = datalezer7.GetValue(0)
                                        postcode = datalezer7.GetValue(1)
                                    End While
                                End While
                            End While
                        Catch fout As Exception
                            MsgBox("Mensen hun lidID werden niet opgehaald")
                        End Try
                    End While
                Catch fout As Exception
                    MsgBox("Mensen met die categorie werden niet opgehaald")
                End Try

                ''logo toevoegen op de factuur
                ''myword.Selection.InlineShapes.AddPicture("..\..\Resources\ChiroIcoon.jpg")

                ''Adres op de factuur zetten evenals volgende lijn tekst
                myword.Selection.TypeText(stam & vbCrLf & straat & vbCrLf & postcode & " " & gemeente & vbCrLf & vbCrLf & vbCrLf & _
                                          "Referentie" & vbTab & vbTab & "Stamnummer" & vbTab & vbTab & vbTab & "Datum" & vbCrLf)

                ''Lijst aanvullen met gegevens
                myword.Selection.TypeText(hoogte & vbTab & vbTab & vbTab & stam & vbTab & vbTab & vbTab & vbTab & CDate(Today) & vbCrLf & vbCrLf)

                ''Tellen bestelde orders
                Dim opdracht10 As New OleDb.OleDbCommand("SELECT count(Datum) from Tblfacturen WHERE Factuurnummer = ?", verbinding)
                opdracht10.Parameters.AddWithValue("", hoogte)
                Dim dataLezer10 As OleDb.OleDbDataReader = opdracht10.ExecuteReader(CommandBehavior.CloseConnection)

                While dataLezer10.Read
                    rijen = dataLezer10.GetValue(0)
                End While

                ''Start opmaken bestelde orders -- Nog aan het maken
                Dim opdracht8 As New OleDb.OleDbCommand("SELECT Datum,Omschrijving,Periode,Aantal,Prijsexclbtw from Tblfacturen WHERE Factuurnummer = ?", verbinding)
                opdracht8.Parameters.AddWithValue("", hoogte)
                Dim dataLezer8 As OleDb.OleDbDataReader = opdracht8.ExecuteReader(CommandBehavior.CloseConnection)


                ''Tabel maken
                mytable = myword.Selection.Tables.Add(myword.Selection.Range, rijen + 1, 8)
                mycols = mytable.Columns

                tabelplaats = 0
                totaalexlbtw = 0

                tabelplaats += 1
                mycell = mytable.Cell(1, 1) : mycell.Select() : myword.Selection.TypeText("Datum")
                mycell = mytable.Cell(1, 2) : mycell.Select() : myword.Selection.TypeText("Omschrijving")
                mycell = mytable.Cell(1, 3) : mycell.Select() : myword.Selection.TypeText("Periode")
                mycell = mytable.Cell(1, 4) : mycell.Select() : myword.Selection.TypeText("Aantal")
                mycell = mytable.Cell(1, 5) : mycell.Select() : myword.Selection.TypeText("Prijsexlbtw")
                mycell = mytable.Cell(1, 6) : mycell.Select() : myword.Selection.TypeText("BTWpercentage")
                mycell = mytable.Cell(1, 7) : mycell.Select() : myword.Selection.TypeText("Prijsinclbtw")
                mycell = mytable.Cell(1, 8) : mycell.Select() : myword.Selection.TypeText("Totaal")

                mycols(1).Width = 50
                mycols(2).Width = 100
                mycols(3).Width = 80
                mycols(4).Width = 40
                mycols(5).Width = 60
                mycols(6).Width = 70
                mycols(7).Width = 60
                mycols(8).Width = 40

                While dataLezer8.Read
                    tabelplaats += 1
                    uitgeprinte += 1

                    mycell = mytable.Cell(tabelplaats, 1) : mycell.Select() : myword.Selection.TypeText(dataLezer8.GetValue(0))
                    mycell = mytable.Cell(tabelplaats, 2) : mycell.Select() : myword.Selection.TypeText(dataLezer8.GetValue(1))
                    mycell = mytable.Cell(tabelplaats, 3) : mycell.Select() : myword.Selection.TypeText(dataLezer8.GetValue(2))
                    mycell = mytable.Cell(tabelplaats, 4) : mycell.Select() : myword.Selection.TypeText(dataLezer8.GetValue(3))
                    mycell = mytable.Cell(tabelplaats, 5) : mycell.Select() : myword.Selection.TypeText(dataLezer8.GetValue(4))
                    mycell = mytable.Cell(tabelplaats, 6) : mycell.Select() : myword.Selection.TypeText(btwPercentage)
                    mycell = mytable.Cell(tabelplaats, 7) : mycell.Select() : myword.Selection.TypeText(dataLezer8.GetValue(4) + dataLezer8.GetValue(4) * btwPercentage / 100)
                    mycell = mytable.Cell(tabelplaats, 8) : mycell.Select() : myword.Selection.TypeText(dataLezer8.GetValue(3) * (dataLezer8.GetValue(4) + dataLezer8.GetValue(4) * btwPercentage / 100))

                    ''Totaal bedrag bijhouden
                    totaalexlbtw = totaalexlbtw + dataLezer8.GetValue(4)
                End While

                ''Tabel sluiten
                uitgeprinte = 0
                tabelplaats = 0
                mycell = mytable.Cell((15), 8) : mycell.Select()
                mycell = Nothing
                myword.Selection.GoToNext(Microsoft.Office.Interop.Word.WdGoToItem.wdGoToLine)

                myword.Selection.TypeText(vbTab & vbTab & vbTab & vbTab & vbTab & "Prijs excl. BTW : €" & totaalexlbtw & vbCrLf & _
                                          vbTab & vbTab & vbTab & vbTab & vbTab & "prijs " & btwPercentage & "% BTW : €" & totaalexlbtw * btwPercentage / 100 & vbCrLf)
                myword.Selection.Font.Bold = True
                myword.Selection.TypeText(vbTab & vbTab & vbTab & vbTab & vbTab & "Totaal : €" & totaalexlbtw * btwPercentage / 100 + totaalexlbtw)
                myword.Selection.Font.Bold = False


                myword.Selection.TypeText(vbCrLf & vbCrLf & "Betalingscondities: 30dagen." & vbCrLf & vbCrLf _
                                         & "Voor een correcte verwerking van uw betaling moet u het totaalbedrag overmaken onder vermelding van het factuurnummer: " & hoogte & _
                                         " en uw stamnummer: " & stam)

            End While

        Catch fout As Exception
            MsgBox("Factureren was niet mogelijk.", MsgBoxStyle.Information, "mislukt")
        Finally
            verbinding.Close()
        End Try
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan