Hallo Zusammen,
ich habe in der letzten zeit mal wieder angefangen zu Programmieren. Soll heißen habe das jetzt schon lange Zeit nicht mehr getan. Ich selbst komme aber soweit ganz gut klar bis auf eine Dache die PDFSharp betreffend ist.
Zum Problem.
Das Aufrufen und erstellen einer PDF mit PDFSharp in der Runtime funktioniert bei mir tadellos. Einziges Problem ist wenn ich die Form geschlossen habe in der ich mit PDFsharp gearbeitet habe und diese Form wieder benutzen will um wieder eine Pdf zu erstellen bekomm ich folgende Fehlermeldung und weis nicht wie ich damit umgehen soll.
"Ein Ausnahmefehler des Typs "System.NullReferenceException" ist in PdfSharp-wpf.dll aufgetreten."
Daher meine frage kann man ein Dokument irgendwie schließen oder ähnliches, so das wenn man das ganze wieder starten möchte wieder ganz von vorne beginnt?
Spoiler anzeigen
Vielen Dank für eure Mühen
Gruß Roland
Edit von Chrisber: Code oben eingefügt inkl. Spoiler
ich habe in der letzten zeit mal wieder angefangen zu Programmieren. Soll heißen habe das jetzt schon lange Zeit nicht mehr getan. Ich selbst komme aber soweit ganz gut klar bis auf eine Dache die PDFSharp betreffend ist.
Zum Problem.
Das Aufrufen und erstellen einer PDF mit PDFSharp in der Runtime funktioniert bei mir tadellos. Einziges Problem ist wenn ich die Form geschlossen habe in der ich mit PDFsharp gearbeitet habe und diese Form wieder benutzen will um wieder eine Pdf zu erstellen bekomm ich folgende Fehlermeldung und weis nicht wie ich damit umgehen soll.
"Ein Ausnahmefehler des Typs "System.NullReferenceException" ist in PdfSharp-wpf.dll aufgetreten."
Daher meine frage kann man ein Dokument irgendwie schließen oder ähnliches, so das wenn man das ganze wieder starten möchte wieder ganz von vorne beginnt?
Quellcode
- Imports System.Data.OleDb
- Imports System.IO
- Imports System.Diagnostics
- Imports PdfSharp
- Imports PdfSharp.Drawing
- Imports PdfSharp.Pdf
- Imports PdfSharp.Pdf.IO
- 'Imports System.Data.OleDb
- Imports System.Drawing.Printing
- Imports System
- Imports System.Collections.Generic
- Imports System.ComponentModel
- Imports System.Data
- Imports System.Drawing
- Imports System.Data.SqlClient
- Imports System.Windows.Forms
- Public Class frmEinkauf
- Public document As New PdfDocument()
- Public page As PdfPage = document.AddPage()
- Public gfx As XGraphics = XGraphics.FromPdfPage(page)
- Public font2 As New XFont("Arial", 20, XFontStyle.BoldItalic)
- Public font1 As New XFont("Arial", 10, XFontStyle.Regular)
- Private con As New OleDbConnection
- Private cmd As New OleDbCommand
- Private reader As OleDbDataReader
- Private pnummer As New List(Of Integer)
- Private BenutzerNr
- Private TaetigkeitNr
- Private Suchtext
- Private Abmessung(4) As String
- Public datumAnforderung As Date = Now
- Public Anforderer As String
- Public Ampel As String
- Public Gruen = Color.FromArgb(0, 255, 64)
- Public Gelb = Color.FromArgb(255, 255, 0)
- Public Rot = Color.FromArgb(255, 0, 0)
- Public BANr As Integer 'Speichert die Bestellanfrage Nr
- Public BNr As Integer 'Speichert die Bestellnummer
- Private Sub frmEinkauf_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- 'Stellt den Speicherort der Datenbank zu Verfügung
- con.ConnectionString =
- "Provider=Microsoft.ACE.OLEDB.12.0;" & frmLogin.dbpfad
- cmd.Connection = con
- ' Erzeugt die Spaltenköpfe für das DataGridView Element
- datAnforderung.Columns.Add("DB_BestNr", "Bestell Nr.:")
- datAnforderung.Columns.Add("DB_BestAuftragsNr", "AB-Nr.")
- datAnforderung.Columns.Add("DB_BestMatForm", "Form")
- datAnforderung.Columns.Add("DB_BestWerkstoff", "Material / Werkstoff")
- datAnforderung.Columns.Add("DB_BestAbmessung", "Abmessung")
- datAnforderung.Columns.Add("DB_BestOberflaeche", "Oberfläche")
- datAnforderung.Columns.Add("DB_BestMenge", "Menge")
- datAnforderung.Columns.Add("DB_BestZeugnis_2", "Zeugnis 2.1")
- datAnforderung.Columns.Add("DB_BestZeugnis_3", "Zeugnis 3.2")
- datAnforderung.Columns.Add("DB_BestFDA", "FDA")
- datAnforderung.Columns.Add("DB_BestBemerkung", "Bemerkung")
- datAnforderung.Columns.Add("DB_BestAmpel", "Ampel")
- 'datAnforderung.Columns("DB_BestAmpel").Visible = False
- ' Stellt die Breite der Spalten ein
- datAnforderung.Columns("DB_BestNr").Width = 50
- datAnforderung.Columns("DB_BestAuftragsNr").Width = 80
- datAnforderung.Columns("DB_BestMatForm").Width = 120
- datAnforderung.Columns("DB_BestWerkstoff").Width = 180
- datAnforderung.Columns("DB_BestAbmessung").Width = 130
- datAnforderung.Columns("DB_BestOberflaeche").Width = 150
- datAnforderung.Columns("DB_BestMenge").Width = 70
- datAnforderung.Columns("DB_BestZeugnis_2").Width = 70
- datAnforderung.Columns("DB_BestZeugnis_3").Width = 70
- datAnforderung.Columns("DB_BestFDA").Width = 70
- datAnforderung.Columns("DB_BestBemerkung").Width = 332
- Me.datAnforderung.Columns("DB_BestAuftragsNr").DefaultCellStyle _
- .Alignment = DataGridViewContentAlignment.MiddleCenter
- Me.datAnforderung.Columns("DB_BestAbmessung").DefaultCellStyle _
- .Alignment = DataGridViewContentAlignment.MiddleCenter
- Me.datAnforderung.Columns("DB_BestMenge").DefaultCellStyle _
- .Alignment = DataGridViewContentAlignment.MiddleCenter
- Me.datAnforderung.Columns("DB_BestZeugnis_2").DefaultCellStyle _
- .Alignment = DataGridViewContentAlignment.MiddleCenter
- Me.datAnforderung.Columns("DB_BestZeugnis_3").DefaultCellStyle _
- .Alignment = DataGridViewContentAlignment.MiddleCenter
- Me.datAnforderung.Columns("DB_BestFDA").DefaultCellStyle _
- .Alignment = DataGridViewContentAlignment.MiddleCenter
- AlleSehenAnforderung() 'Verweist auf ein Standart Routine
- 'Textbox_Sperren()
- Tabelle_Sortieren()
- 'Combo_Werkstoff_und_Form_Sperren()
- 'Combobox_Material_Füllen()
- 'Ampelfarben_Zurücksetzen()
- ' txtABNr.Focus()
- datBeschaffung_Einrichten()
- End Sub
- Private Sub Button1_Click(sender As Object, e As EventArgs)
- Dim Best_Spalten(12) As String
- Dim zeile As Integer
- Dim document As New PdfDocument()
- zeile = -300
- 'Einige Dokument - Eigenschaften festlegen
- document.Info.Title = "PDF-Experimente"
- document.Info.CreationDate = Date.Now
- document.Info.Author = "Meyer Müller"
- document.Info.Subject = "Mein erster Test"
- 'Die erste Seite einfügen
- Dim page As PdfPage = document.AddPage()
- 'Eine XGraphics - Objekt erzeugen (Pendant zum GDI+ Graphics-Objekt)
- Dim gfx As XGraphics = XGraphics.FromPdfPage(page)
- 'Schriftart erstellen
- Dim font As New XFont("Arial", 20, XFontStyle.BoldItalic)
- Dim font1 As New XFont("Arial", 10, XFontStyle.Regular)
- Ausgabe:
- Try
- con.Open()
- cmd.CommandText = "SELECT * FROM DB_Bestellwesen WHERE" &
- " DB_BestStatus LIKE '" & "x" & "'" & " ORDER BY DB_BestNr"
- 'Bestelldaten Zeilenweise auslesen
- reader = cmd.ExecuteReader()
- datBeschaffung.Rows.Clear()
- pnummer.Clear()
- Do While reader.Read()
- Best_Spalten(1) = reader("DB_BestMatform")
- Best_Spalten(2) = reader("DB_BestWerkstoff")
- Best_Spalten(3) = reader("DB_BestAbmessung")
- Best_Spalten(4) = reader("DB_BestOberflaeche")
- Best_Spalten(5) = reader("DB_BestMenge")
- Best_Spalten(6) = reader("DB_BestZeugnis_2")
- Best_Spalten(7) = reader("DB_BestZeugnis_3")
- Best_Spalten(8) = reader("DB_BestFDA")
- Best_Spalten(9) = reader("DB_BestAuftragsNr")
- Best_Spalten(10) = reader("DB_BestNr")
- pnummer.Add(reader("DB_BestNr"))
- 'Zeile BEschreiben
- Best_Spalten(0) = Best_Spalten(1) + " " + Best_Spalten(2) + " " + Best_Spalten(3) + " " + Best_Spalten(4) + " " + Best_Spalten(5) + " " + Best_Spalten(6) + " " + Best_Spalten(7) + " " + Best_Spalten(8) + " " + Best_Spalten(9) + " " + Best_Spalten(10)
- gfx.DrawString(Best_Spalten(0), font1, XBrushes.Black,
- New XRect(50, zeile, page.Width, page.Height), XStringFormats.BottomLeft)
- zeile = zeile + 20
- Loop
- reader.Close()
- Catch ex As Exception
- MessageBox.Show(ex.Message)
- End Try
- con.Close()
- AlleSehenBeschaffung()
- AlleSehenAnforderung()
- Tabelle_Sortieren()
- Umwandlung_in_eine_Anfrage()
- 'Textbox_Leeren()
- 'Tabelle_Sortieren()
- gfx.DrawString("AJS-GmbH", font, XBrushes.Black,
- New XRect(50, -150, page.Width, page.Height), XStringFormats.BottomLeft)
- gfx.DrawString("Hallo, liebe Leser!", font, XBrushes.Black,
- New XRect(10, 10, page.Width, page.Height), XStringFormats.Center)
- 'Datei sichern und anzeigen
- Const filename As String = "anforderungen\Test.pdf"
- document.Save(filename)
- Process.Start(filename)
- End Sub
- Private Sub AlleSehenAnforderung()
- Try
- con.Open()
- cmd.CommandText = "SELECT * FROM DB_Bestellwesen WHERE" &
- " DB_BestStatus LIKE '" & "A" & "'" & " ORDER BY DB_BestNr"
- AusgabeAnforderung()
- Catch ex As Exception
- MessageBox.Show(ex.Message)
- End Try
- con.Close()
- 'Textbox_Leeren()
- Tabelle_Sortieren()
- End Sub
- Private Sub AusgabeAnforderung()
- Dim i
- 'DataGrid Füllen
- reader = cmd.ExecuteReader()
- datAnforderung.Rows.Clear()
- pnummer.Clear()
- Do While reader.Read()
- datAnforderung.Rows.Add(reader("DB_BestNr"), reader("DB_BestAuftragsNr"), reader("DB_BestMatForm"), reader("DB_BestWerkstoff"),
- reader("DB_BestAbmessung"), reader("DB_BestOberflaeche"), reader("DB_BestMenge"), reader("DB_BestZeugnis_2"),
- reader("DB_BestZeugnis_3"), reader("DB_BestFDA"), reader("DB_BestBemerkung"), reader("DB_BestAmpel"))
- pnummer.Add(reader("DB_BestNr"))
- Loop
- reader.Close()
- 'Zeilen mit den unterschiedlichen Prio Farben Kennzeichnen
- For i = 0 To datAnforderung.Rows.Count - 1 '//angefangen von erster Zeile weil die erste Zeile die Titelzeile ist - ZeilenIndex fangt mit 0 an
- If datAnforderung.Item(11, i).Value = "Gr" Then '//(1,i) hier 1 mit deinem Index der Spalte wo der Marker auftaucht - Spaltenindex fangt mit 0 an
- datAnforderung.Rows(i).DefaultCellStyle.BackColor = Color.Green
- End If
- If datAnforderung.Item(11, i).Value = "Ge" Then '//(1,i) hier 1 mit deinem Index der Spalte wo der Marker auftaucht - Spaltenindex fangt mit 0 an
- datAnforderung.Rows(i).DefaultCellStyle.BackColor = Color.Yellow
- End If
- If datAnforderung.Item(11, i).Value = "Ro" Then '//(1,i) hier 1 mit deinem Index der Spalte wo der Marker auftaucht - Spaltenindex fangt mit 0 an
- datAnforderung.Rows(i).DefaultCellStyle.BackColor = Color.Red
- End If
- Next i
- End Sub
- Private Sub AusgabeBeschaffung()
- Dim i
- 'DataGrid Füllen
- reader = cmd.ExecuteReader()
- datBeschaffung.Rows.Clear()
- pnummer.Clear()
- Do While reader.Read()
- datBeschaffung.Rows.Add(reader("DB_BestNr"), reader("DB_BestAuftragsNr"), reader("DB_BestMatForm"), reader("DB_BestWerkstoff"),
- reader("DB_BestAbmessung"), reader("DB_BestOberflaeche"), reader("DB_BestMenge"), reader("DB_BestZeugnis_2"),
- reader("DB_BestZeugnis_3"), reader("DB_BestFDA"), reader("DB_BestBemerkung"), reader("DB_BestAmpel"))
- pnummer.Add(reader("DB_BestNr"))
- Loop
- reader.Close()
- End Sub
- Private Sub AlleSehenBeschaffung()
- Try
- con.Open()
- cmd.CommandText = "SELECT * FROM DB_Bestellwesen WHERE" &
- " DB_BestStatus LIKE '" & "x" & "'" & " ORDER BY DB_BestNr"
- AusgabeBeschaffung()
- Catch ex As Exception
- MessageBox.Show(ex.Message)
- End Try
- con.Close()
- 'Textbox_Leeren()
- Tabelle_Sortieren()
- End Sub
- Private Sub Tabelle_Sortieren()
- datAnforderung.Sort(datAnforderung.Columns(0), System.ComponentModel.ListSortDirection.Ascending)
- ' datBeschaffung.Sort(datBeschaffung.Columns(0), System.ComponentModel.ListSortDirection.Ascending)
- End Sub
- Private Sub datBeschaffung_Einrichten()
- 'Stellt den Speicherort der Datenbank zu Verfügung
- con.ConnectionString =
- "Provider=Microsoft.ACE.OLEDB.12.0;" & frmLogin.dbpfad
- cmd.Connection = con
- ' Erzeugt die Spaltenköpfe für das DataGridView Element
- datBeschaffung.Columns.Add("DB_BestNr", "Bestell Nr.:")
- datBeschaffung.Columns.Add("DB_BestAuftragsNr", "AB-Nr.")
- datBeschaffung.Columns.Add("DB_BestMatForm", "Form")
- datBeschaffung.Columns.Add("DB_BestWerkstoff", "Material / Werkstoff")
- datBeschaffung.Columns.Add("DB_BestAbmessung", "Abmessung")
- datBeschaffung.Columns.Add("DB_BestOberflaeche", "Oberfläche")
- datBeschaffung.Columns.Add("DB_BestMenge", "Menge")
- datBeschaffung.Columns.Add("DB_BestZeugnis_2", "Zeugnis 2.1")
- datBeschaffung.Columns.Add("DB_BestZeugnis_3", "Zeugnis 3.2")
- datBeschaffung.Columns.Add("DB_BestFDA", "FDA")
- datBeschaffung.Columns.Add("DB_BestBemerkung", "Bemerkung")
- 'datBenutzer.Columns("DB_BenUser").Visible = False
- ' Stellt die Breite der Spalten ein
- datBeschaffung.Columns("DB_BestNr").Width = 50
- datBeschaffung.Columns("DB_BestAuftragsNr").Width = 80
- datBeschaffung.Columns("DB_BestMatForm").Width = 120
- datBeschaffung.Columns("DB_BestWerkstoff").Width = 180
- datBeschaffung.Columns("DB_BestAbmessung").Width = 130
- datBeschaffung.Columns("DB_BestOberflaeche").Width = 150
- datBeschaffung.Columns("DB_BestMenge").Width = 70
- datBeschaffung.Columns("DB_BestZeugnis_2").Width = 70
- datBeschaffung.Columns("DB_BestZeugnis_3").Width = 70
- datBeschaffung.Columns("DB_BestFDA").Width = 70
- datBeschaffung.Columns("DB_BestBemerkung").Width = 332
- Me.datBeschaffung.Columns("DB_BestAuftragsNr").DefaultCellStyle _
- .Alignment = DataGridViewContentAlignment.MiddleCenter
- Me.datBeschaffung.Columns("DB_BestAbmessung").DefaultCellStyle _
- .Alignment = DataGridViewContentAlignment.MiddleCenter
- Me.datBeschaffung.Columns("DB_BestMenge").DefaultCellStyle _
- .Alignment = DataGridViewContentAlignment.MiddleCenter
- Me.datBeschaffung.Columns("DB_BestZeugnis_2").DefaultCellStyle _
- .Alignment = DataGridViewContentAlignment.MiddleCenter
- Me.datBeschaffung.Columns("DB_BestZeugnis_3").DefaultCellStyle _
- .Alignment = DataGridViewContentAlignment.MiddleCenter
- Me.datBeschaffung.Columns("DB_BestFDA").DefaultCellStyle _
- .Alignment = DataGridViewContentAlignment.MiddleCenter
- AlleSehenBeschaffung() 'Verweist auf ein Standart Routine
- 'Textbox_Sperren()
- 'Tabelle_Sortieren()
- 'Combo_Werkstoff_und_Form_Sperren()
- 'Combobox_Material_Füllen()
- 'Ampelfarben_Zurücksetzen()
- 'txtABNr.Focus()
- End Sub
- Private Sub cmdSchliessen_Click(sender As Object, e As EventArgs) Handles cmdSchliessen.Click
- frmZentrale.Show()
- Me.Hide()
- End Sub
- Private Sub datAnforderung_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles datAnforderung.CellClick
- Dim BestellNr
- Dim anzahl
- BestellNr = Me.datAnforderung.Item(0, datAnforderung.CurrentRow.Index).Value
- Try
- con.Open()
- cmd.CommandText = "UPDATE DB_Bestellwesen SET " &
- " DB_BestStatus = '" & "X" & "'
- WHERE DB_BestNr = " & BestellNr
- 'MessageBox.Show(cmd.CommandText)
- anzahl = cmd.ExecuteNonQuery()
- If anzahl > 0 Then
- 'MessageBox.Show("Datensatz wurde geändert und aktualisiert!")
- End If
- Catch ex As Exception
- MessageBox.Show(ex.Message)
- End Try
- con.Close()
- AlleSehenBeschaffung()
- AlleSehenAnforderung()
- Tabelle_Sortieren()
- End Sub
- Private Sub datAnforderung_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles datAnforderung.CellContentClick
- End Sub
- Private Sub datBeschaffung_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles datBeschaffung.CellContentClick
- End Sub
- Private Sub datBeschaffung_DoubleClick(sender As Object, e As EventArgs) Handles datBeschaffung.DoubleClick
- Dim BestellNr
- Dim anzahl
- BestellNr = Me.datBeschaffung.Item(0, datBeschaffung.CurrentRow.Index).Value
- Try
- con.Open()
- cmd.CommandText = "UPDATE DB_Bestellwesen SET " &
- " DB_BestStatus = '" & "A" & "'
- WHERE DB_BestNr = " & BestellNr
- 'MessageBox.Show(cmd.CommandText)
- anzahl = cmd.ExecuteNonQuery()
- If anzahl > 0 Then
- MessageBox.Show("Datensatz wurde geändert und aktualisiert!")
- End If
- Catch ex As Exception
- MessageBox.Show(ex.Message)
- End Try
- con.Close()
- AlleSehenBeschaffung()
- AlleSehenAnforderung()
- Tabelle_Sortieren()
- End Sub
- Private Sub cmdAktuell_Click(sender As Object, e As EventArgs) Handles cmdAktuell.Click
- AlleSehenBeschaffung()
- AlleSehenAnforderung()
- Tabelle_Sortieren()
- End Sub
- Private Sub Umwandlung_in_eine_Anfrage()
- 'Dim BestellNr
- Dim anzahl
- 'BestellNr = Me.datAnforderung.Item(0, datAnforderung.CurrentRow.Index).Value
- Try
- con.Open()
- cmd.CommandText = "UPDATE DB_Bestellwesen SET " &
- " DB_BestStatus = '" & "An" & "'
- WHERE DB_BestStatus = '" & "X" & "'"
- 'MessageBox.Show(cmd.CommandText)
- anzahl = cmd.ExecuteNonQuery()
- If anzahl > 0 Then
- 'MessageBox.Show("Datensatz wurde geändert und aktualisiert!")
- End If
- Catch ex As Exception
- MessageBox.Show(ex.Message, "hier")
- End Try
- con.Close()
- AlleSehenBeschaffung()
- AlleSehenAnforderung()
- Tabelle_Sortieren()
- End Sub
- Private Sub cmdAnfragen_Click(sender As Object, e As EventArgs) Handles cmdAnfragen.Click
- Dim Anf_Spalten(12) As String
- Dim zeile As Integer
- Dim ZeilenNr As Integer
- Dim Tab(10) As Integer
- Dim strZeilenNr As String
- Dim Seite As Integer
- 'Einige Dokument - Eigenschaften festlegen
- document.Info.Title = "PDF-Bestellanfrage"
- document.Info.CreationDate = Date.Now
- document.Info.Author = "Roland Rommersbach"
- document.Info.Subject = "Version 2.0"
- 'Umgebung Laden
- Bestellanforderung_Nr_ermitteln()
- Hintergrund_Seite_1_laden()
- Anfrage_Formular()
- 'Werte für den Start bestimmen
- ZeilenNr = 0
- Tab(1) = 50
- zeile = -380
- Seite = 0
- Ausgabe:
- Try
- con.Open()
- cmd.CommandText = "SELECT * FROM DB_Bestellwesen WHERE" &
- " DB_BestStatus LIKE '" & "x" & "'" & " ORDER BY DB_BestNr"
- 'Bestelldaten Zeilenweise auslesen
- reader = cmd.ExecuteReader()
- datBeschaffung.Rows.Clear()
- pnummer.Clear()
- Do While reader.Read()
- Anf_Spalten(1) = reader("DB_BestMatform")
- Anf_Spalten(2) = reader("DB_BestWerkstoff")
- Anf_Spalten(3) = reader("DB_BestAbmessung")
- Anf_Spalten(4) = reader("DB_BestOberflaeche")
- Anf_Spalten(5) = reader("DB_BestMenge")
- Anf_Spalten(6) = reader("DB_BestZeugnis_2")
- Anf_Spalten(7) = reader("DB_BestZeugnis_3")
- Anf_Spalten(8) = reader("DB_BestFDA")
- Anf_Spalten(9) = reader("DB_BestAuftragsNr")
- Anf_Spalten(10) = reader("DB_BestNr")
- pnummer.Add(reader("DB_BestNr"))
- ZeilenNr = ZeilenNr + 10
- strZeilenNr = CStr(ZeilenNr)
- 'MessageBox.Show(Anf_Spalten(0))
- 'Zeile BEschreiben
- Anf_Spalten(0) = strZeilenNr
- gfx.DrawString(Anf_Spalten(0), font1, XBrushes.Black,
- New XRect(50, zeile, page.Width, page.Height), XStringFormats.BottomLeft)
- Anf_Spalten(0) = Anf_Spalten(5)
- gfx.DrawString(Anf_Spalten(0), font1, XBrushes.Black,
- New XRect(325, zeile, page.Width, page.Height), XStringFormats.BottomLeft)
- Anf_Spalten(0) = Anf_Spalten(1) + " " + Anf_Spalten(3) + "mm"
- gfx.DrawString(Anf_Spalten(0), font1, XBrushes.Black,
- New XRect(95, zeile, page.Width, page.Height), XStringFormats.BottomLeft)
- zeile = zeile + 15
- Anf_Spalten(0) = Anf_Spalten(2) + " " + Anf_Spalten(4)
- gfx.DrawString(Anf_Spalten(0), font1, XBrushes.Black,
- New XRect(95, zeile, page.Width, page.Height), XStringFormats.BottomLeft)
- zeile = zeile + 15
- Anf_Spalten(0) = "Kommision: " + "AB-" + Anf_Spalten(9)
- gfx.DrawString(Anf_Spalten(0), font1, XBrushes.Black,
- New XRect(95, zeile, page.Width, page.Height), XStringFormats.BottomLeft)
- zeile = zeile + 15
- If Anf_Spalten(6) = "X" Then
- Anf_Spalten(0) = "Zeugnis nach 2.2"
- gfx.DrawString(Anf_Spalten(0), font1, XBrushes.Black,
- New XRect(95, zeile, page.Width, page.Height), XStringFormats.BottomLeft)
- zeile = zeile + 15
- End If
- If Anf_Spalten(7) = "X" Then
- Anf_Spalten(0) = "Zeugnis nach 3.1"
- gfx.DrawString(Anf_Spalten(0), font1, XBrushes.Black,
- New XRect(95, zeile, page.Width, page.Height), XStringFormats.BottomLeft)
- zeile = zeile + 15
- End If
- If Anf_Spalten(8) = "X" Then
- Anf_Spalten(0) = "Bescheinigung nach FDA"
- gfx.DrawString(Anf_Spalten(0), font1, XBrushes.Black,
- New XRect(95, zeile, page.Width, page.Height), XStringFormats.BottomLeft)
- zeile = zeile + 15
- End If
- zeile = zeile + 5
- ' MessageBox.Show(zeile)
- If zeile > "-150" Then
- Seite = Seite + 1
- document.AddPage()
- gfx = XGraphics.FromPdfPage(document.Pages(Seite))
- Hintergrund_Seite_2_laden()
- Anfrage_Formular_Seite_02()
- zeile = -645
- End If
- Loop
- reader.Close()
- Catch ex As Exception
- MessageBox.Show(ex.Message)
- End Try
- con.Close()
- AlleSehenBeschaffung()
- AlleSehenAnforderung()
- Tabelle_Sortieren()
- ' document.AddPage()
- 'gfx = XGraphics.FromPdfPage(document.Pages(1))
- 'Anf_Spalten(0) = "Seite 2"
- 'gfx.DrawString(Anf_Spalten(0), font2, XBrushes.Black,
- 'New XRect(0, 0, page.Width, page.Height), XStringFormats.BottomLeft)
- 'document.AddPage()
- 'gfx = XGraphics.FromPdfPage(document.Pages(2))
- 'Anf_Spalten(0) = "Seite 3"
- 'gfx.DrawString(Anf_Spalten(0), font2, XBrushes.Black,
- 'New XRect(0, 0, page.Width, page.Height), XStringFormats.BottomLeft)
- 'Datei sichern und anzeigen
- Const filename As String = "anforderungen\Test.pdf"
- document.Save(filename)
- Process.Start(filename)
- document.Close()
- 'Me.document.Close()
- 'Process.GetCurrentProcess.Close()
- BANR_Eintragen()
- Umwandlung_in_eine_Anfrage()
- End Sub
- Private Sub Anfrage_Formular()
- Dim Text(19) As String
- Dim Bearbeiter As String
- Dim aktuellesDatum As String
- Dim strBANr As String
- Dim KunNr As String
- Dim LiefNr As String
- Dim datum As Date = Now
- aktuellesDatum = Mid(datum, 1, 10)
- KunNr = ""
- LiefNr = ""
- Bearbeiter = frmLogin.Vorname + " " + frmLogin.Nachname
- strBANr = CStr(BANr)
- Text(1) = "Bestellanfrage"
- gfx.DrawString(Text(1), font2, XBrushes.Black,
- New XRect(0, -630, page.Width, page.Height), XStringFormats.BottomCenter)
- Text(1) = "Unser Zeichen:"
- gfx.DrawString(Text(1), font1, XBrushes.Black,
- New XRect(50, -560, page.Width, page.Height), XStringFormats.BottomLeft)
- Text(1) = "Kunden Nr:"
- gfx.DrawString(Text(1), font1, XBrushes.Black,
- New XRect(166, -560, page.Width, page.Height), XStringFormats.BottomLeft)
- Text(1) = "Bearbeiter:"
- gfx.DrawString(Text(1), font1, XBrushes.Black,
- New XRect(259, -560, page.Width, page.Height), XStringFormats.BottomLeft)
- Text(1) = "Lieferanten Nr.:"
- gfx.DrawString(Text(1), font1, XBrushes.Black,
- New XRect(382, -560, page.Width, page.Height), XStringFormats.BottomLeft)
- Text(1) = "Datum:"
- gfx.DrawString(Text(1), font1, XBrushes.Black,
- New XRect(500, -560, page.Width, page.Height), XStringFormats.BottomLeft)
- Text(1) = "BA-" + strBANr
- gfx.DrawString(Text(1), font1, XBrushes.Black,
- New XRect(50, -545, page.Width, page.Height), XStringFormats.BottomLeft)
- Text(1) = KunNr
- gfx.DrawString(Text(1), font1, XBrushes.Black,
- New XRect(166, -545, page.Width, page.Height), XStringFormats.BottomLeft)
- Text(1) = Bearbeiter
- gfx.DrawString(Text(1), font1, XBrushes.Black,
- New XRect(259, -545, page.Width, page.Height), XStringFormats.BottomLeft)
- Text(1) = LiefNr
- gfx.DrawString(Text(1), font1, XBrushes.Black,
- New XRect(382, -545, page.Width, page.Height), XStringFormats.BottomLeft)
- Text(1) = aktuellesDatum
- gfx.DrawString(Text(1), font1, XBrushes.Black,
- New XRect(500, -545, page.Width, page.Height), XStringFormats.BottomLeft)
- Text(1) = "Sehr geehrte Damen und Herren,"
- gfx.DrawString(Text(1), font1, XBrushes.Black,
- New XRect(50, -495, page.Width, page.Height), XStringFormats.BottomLeft)
- Text(1) = "bieten Sie uns bitte günstigst die nachfolgend aufgeführte Positionen an. Ihr kostenloses und für uns "
- gfx.DrawString(Text(1), font1, XBrushes.Black,
- New XRect(50, -471, page.Width, page.Height), XStringFormats.BottomLeft)
- Text(1) = "unverbindliches Angebot erwarten wir bis spätestens :"
- gfx.DrawString(Text(1), font1, XBrushes.Black,
- New XRect(50, -459, page.Width, page.Height), XStringFormats.BottomLeft)
- Text(1) = "__________________________________________________________________________________________"
- gfx.DrawString(Text(1), font1, XBrushes.Black,
- New XRect(50, -430, page.Width, page.Height), XStringFormats.BottomLeft)
- Text(1) = "Pos.:"
- gfx.DrawString(Text(1), font1, XBrushes.Black,
- New XRect(50, -410, page.Width, page.Height), XStringFormats.BottomLeft)
- Text(1) = "Bezeichnung:"
- gfx.DrawString(Text(1), font1, XBrushes.Black,
- New XRect(95, -410, page.Width, page.Height), XStringFormats.BottomLeft)
- Text(1) = "Menge:"
- gfx.DrawString(Text(1), font1, XBrushes.Black,
- New XRect(325, -410, page.Width, page.Height), XStringFormats.BottomLeft)
- Text(1) = "Preis:"
- gfx.DrawString(Text(1), font1, XBrushes.Black,
- New XRect(385, -410, page.Width, page.Height), XStringFormats.BottomLeft)
- Text(1) = "Ge.Preis:"
- gfx.DrawString(Text(1), font1, XBrushes.Black,
- New XRect(425, -410, page.Width, page.Height), XStringFormats.BottomLeft)
- Text(1) = "__________________________________________________________________________________________"
- gfx.DrawString(Text(1), font1, XBrushes.Black,
- New XRect(50, -400, page.Width, page.Height), XStringFormats.BottomLeft)
- End Sub
- Private Sub Anfrage_Formular_Seite_02()
- Dim Text(19) As String
- Dim Bearbeiter As String
- Dim aktuellesDatum As String
- Dim strBANr As String
- Dim KunNr As String
- Dim LiefNr As String
- Dim datum As Date = Now
- aktuellesDatum = Mid(datum, 1, 10)
- KunNr = ""
- LiefNr = ""
- Bearbeiter = frmLogin.Vorname + " " + frmLogin.Nachname
- strBANr = CStr(BANr)
- Text(1) = "__________________________________________________________________________________________"
- gfx.DrawString(Text(1), font1, XBrushes.Black,
- New XRect(50, -700, page.Width, page.Height), XStringFormats.BottomLeft)
- Text(1) = "Pos.:"
- gfx.DrawString(Text(1), font1, XBrushes.Black,
- New XRect(50, -680, page.Width, page.Height), XStringFormats.BottomLeft)
- Text(1) = "Bezeichnung:"
- gfx.DrawString(Text(1), font1, XBrushes.Black,
- New XRect(95, -680, page.Width, page.Height), XStringFormats.BottomLeft)
- Text(1) = "Menge:"
- gfx.DrawString(Text(1), font1, XBrushes.Black,
- New XRect(325, -680, page.Width, page.Height), XStringFormats.BottomLeft)
- Text(1) = "Preis:"
- gfx.DrawString(Text(1), font1, XBrushes.Black,
- New XRect(385, -680, page.Width, page.Height), XStringFormats.BottomLeft)
- Text(1) = "Ge.Preis:"
- gfx.DrawString(Text(1), font1, XBrushes.Black,
- New XRect(425, -680, page.Width, page.Height), XStringFormats.BottomLeft)
- Text(1) = "__________________________________________________________________________________________"
- gfx.DrawString(Text(1), font1, XBrushes.Black,
- New XRect(50, -670, page.Width, page.Height), XStringFormats.BottomLeft)
- End Sub
- Private Sub Hintergrund_Seite_1_laden()
- 'Hintergrund Laden Seite 1
- 'Load the uploaded JPG image
- Dim image As XImage = XImage.FromFile(Application.StartupPath & "\Anforderungen\Briefbogen_Seite-01.jpg")
- 'Use original dimensions, more details here: http://bit.ly/hbZjiZ
- Dim x As Double = (250 - image.PixelWidth * 72 / image.HorizontalResolution) \ 2
- 'Center the image in the page, credits: http://bit.ly/g6wVGJ
- Dim leftOffset As Double = (gfx.PageSize.Width / 2.0) - (image.PointWidth / 2.0)
- Dim topOffset As Double = (gfx.PageSize.Height / 2.0) - (image.PointHeight / 2.0)
- 'Write the image to PDF
- gfx.DrawImage(image, leftOffset, topOffset)
- End Sub
- Private Sub Hintergrund_Seite_2_laden()
- 'Hintergrund Laden Seite 1
- 'Load the uploaded JPG image
- Dim image As XImage = XImage.FromFile(Application.StartupPath & "\Anforderungen\Briefbogen_Seite-02.jpg")
- 'Use original dimensions, more details here: http://bit.ly/hbZjiZ
- Dim x As Double = (250 - image.PixelWidth * 72 / image.HorizontalResolution) \ 2
- 'Center the image in the page, credits: http://bit.ly/g6wVGJ
- Dim leftOffset As Double = (gfx.PageSize.Width / 2.0) - (image.PointWidth / 2.0)
- Dim topOffset As Double = (gfx.PageSize.Height / 2.0) - (image.PointHeight / 2.0)
- 'Write the image to PDF
- gfx.DrawImage(image, leftOffset, topOffset)
- End Sub
- Private Sub Bestellanforderung_Nr_ermitteln()
- 'Ermittelt die letzte Bestellanforderungsnummer und erzeugt eine neue Aktuelle Nr
- con.Open()
- cmd.CommandText = "select max(DB_BestBANr) from DB_Bestellwesen"
- Dim retval = cmd.ExecuteScalar
- BANr = retval + 1
- con.Close()
- 'MessageBox.Show(BANr)
- End Sub
- Private Sub Bestell_Nr_ermitteln()
- 'Ermittelt die letzte Bestellnummer und erzeugt eine neue Aktuelle Nr
- con.Open()
- cmd.CommandText = "select max(DB_BestBNr) from DB_Bestellwesen"
- Dim retval = cmd.ExecuteScalar
- BNr = retval + 1
- con.Close()
- 'MessageBox.Show(BANr)
- End Sub
- Private Sub BANR_Eintragen()
- 'Trägt die Bestellanfrage Nr. in alle Datensätze ein die zu der aktuellen Anfrage gehören
- Dim anzahl
- Try
- con.Open()
- cmd.CommandText = "UPDATE DB_Bestellwesen SET " &
- " DB_BestBANr = '" & BANr & "'
- WHERE DB_BestStatus = '" & "X" & "'"
- anzahl = cmd.ExecuteNonQuery()
- If anzahl > 0 Then
- End If
- Catch ex As Exception
- MessageBox.Show(ex.Message)
- End Try
- con.Close()
- AlleSehenBeschaffung()
- AlleSehenAnforderung()
- Tabelle_Sortieren()
- End Sub
- Private Sub BNR_Eintragen()
- 'Trägt die Bestellanfrage Nr. in alle Datensätze ein die zu der aktuellen Anfrage gehören
- Dim anzahl
- Try
- con.Open()
- cmd.CommandText = "UPDATE DB_Bestellwesen SET " &
- " DB_BestBNr = '" & BNr & "'
- WHERE DB_BestStatus = '" & "B" & "'"
- anzahl = cmd.ExecuteNonQuery()
- If anzahl > 0 Then
- End If
- Catch ex As Exception
- MessageBox.Show(ex.Message)
- End Try
- con.Close()
- AlleSehenBeschaffung()
- AlleSehenAnforderung()
- Tabelle_Sortieren()
- End Sub
- End Class
Vielen Dank für eure Mühen
Gruß Roland
Edit von Chrisber: Code oben eingefügt inkl. Spoiler
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Chrisber“ ()