Hallo VB 2010 Experten,
ich arbeite mit Express und kann keine Reports erstellen
habe mittels Code Anhang 4 Karten auf Form gezeichnet.
nun sollen Daten aus DB in die Karten geschrieben werden
aus Lagerplatz Schrank Fach Nr die Artikel eingetragen werden und dann gedruckt werden
pro Artikel eine Vorderseite / Rückseite das DINA4 enthält also 2 Karten. Bei 10 Karten sind es 5 Seiten in der Vorschau die gdruckt werden müssen, oder 1 Artikel dann 1 Seite
wie fange ich das an?
Spoiler anzeigen
ich arbeite mit Express und kann keine Reports erstellen
habe mittels Code Anhang 4 Karten auf Form gezeichnet.
nun sollen Daten aus DB in die Karten geschrieben werden
aus Lagerplatz Schrank Fach Nr die Artikel eingetragen werden und dann gedruckt werden
pro Artikel eine Vorderseite / Rückseite das DINA4 enthält also 2 Karten. Bei 10 Karten sind es 5 Seiten in der Vorschau die gdruckt werden müssen, oder 1 Artikel dann 1 Seite
wie fange ich das an?
Brainfuck-Quellcode
- Public Class KANBAN
- '--------------------------
- 'erstes Rechteck Zeichnen
- '--------------------------
- Private Sub RechteckeinsZeichnen(ByRef graphicsObjekt As Graphics)
- '//Vorderseite Karte 1
- Dim strMindestbestand1 As String = "Mindestbestand"
- Dim strMaxbestand1 As String = "Maxbestand"
- Dim strBestellmenge1 As String = "Bestellmenge"
- Dim strPreis1 As String = "Preis ca:"
- Dim strBezeichnung1 As String = "Bezeichnung"
- Dim strArtikel1 As String = "Artikelnummer"
- Dim strEmpaenger1 As String = "Empfänger:"
- Dim strLieferant1 As String = "Lieferant:"
- Dim strSchrank1 As String = "Schrank"
- Dim strFach1 As String = "Fach"
- 'Linie Zeichnen
- Dim pen As New Pen(Brushes.Black)
- 'Karte 1 generieren
- graphicsObjekt.DrawRectangle(Pens.Black, New Rectangle(75, 75, 300, 385))
- '//Label einbinden
- graphicsObjekt.DrawString(strMindestbestand1, New Font("Arial", 10), Brushes.Blue, 270, 155)
- graphicsObjekt.DrawString(strMaxbestand1, New Font("Arial", 10), Brushes.Blue, 270, 205)
- graphicsObjekt.DrawString(strBestellmenge1, New Font("Arial", 10), Brushes.Blue, 270, 255)
- graphicsObjekt.DrawString(strPreis1, New Font("Arial", 10), Brushes.Blue, 270, 305)
- 'Label Bezeichnung
- graphicsObjekt.DrawString(strBezeichnung1, New Font("Arial", 10), Brushes.Blue, 83, 155)
- 'Label Artikelnummer
- graphicsObjekt.DrawString(strArtikel1, New Font("Arial", 10), Brushes.Blue, 83, 255)
- 'Label Empfaenger
- graphicsObjekt.DrawString(strEmpaenger1, New Font("Arial", 10), Brushes.Blue, 83, 375)
- 'Label Lieferant
- graphicsObjekt.DrawString(strLieferant1, New Font("Arial", 10), Brushes.Blue, 83, 405)
- 'Label Schrank
- graphicsObjekt.DrawString(strSchrank1, New Font("Arial", 10), Brushes.Blue, 270, 375)
- 'Label Fach
- graphicsObjekt.DrawString(strFach1, New Font("Arial", 10), Brushes.Blue, 325, 375)
- 'Linie Zeichnen
- graphicsObjekt.DrawLine(pen, 268, 140, 268, 370)
- graphicsObjekt.DrawLine(pen, 75, 140, 375, 140)
- graphicsObjekt.DrawLine(pen, 75, 370, 375, 370)
- graphicsObjekt.DrawLine(pen, 75, 425, 375, 425)
- End Sub
- '--------------------------
- 'zweites Rechteck Zeichnen
- '--------------------------
- Private Sub RechteckzweiZeichnen(ByRef graphicsObjekt As Graphics)
- '//Vorderseite Karte 2
- Dim strMindestbestand2 As String = "Mindestbestand"
- Dim strMaxbestand2 As String = "Maxbestand"
- Dim strBestellmenge2 As String = "Bestellmenge"
- Dim strPreis2 As String = "Preis ca:"
- Dim strBezeichnung2 As String = "Bezeichnung"
- Dim strArtikel2 As String = "Artikelnummer"
- Dim strEmpaenger2 As String = "Empfänger:"
- Dim strLieferant2 As String = "Lieferant:"
- Dim strSchrank2 As String = "Schrank"
- Dim strFach2 As String = "Fach"
- 'Linie Zeichnen
- Dim pen As New Pen(Brushes.Black)
- 'Karte 2 generieren
- graphicsObjekt.DrawRectangle(Pens.Black, New Rectangle(406, 75, 300, 385))
- '//Label einbinden
- graphicsObjekt.DrawString(strMindestbestand2, New Font("Arial", 10), Brushes.Blue, 270, 570)
- graphicsObjekt.DrawString(strMaxbestand2, New Font("Arial", 10), Brushes.Blue, 270, 620)
- graphicsObjekt.DrawString(strBestellmenge2, New Font("Arial", 10), Brushes.Blue, 270, 675)
- graphicsObjekt.DrawString(strPreis2, New Font("Arial", 10), Brushes.Blue, 270, 725)
- 'Label Bezeichnung
- graphicsObjekt.DrawString(strBezeichnung2, New Font("Arial", 10), Brushes.Blue, 83, 570)
- 'Label Artikelnummer
- graphicsObjekt.DrawString(strArtikel2, New Font("Arial", 10), Brushes.Blue, 83, 675)
- 'Label Empfaenger
- graphicsObjekt.DrawString(strEmpaenger2, New Font("Arial", 10), Brushes.Blue, 83, 795)
- 'Label Lieferant
- graphicsObjekt.DrawString(strLieferant2, New Font("Arial", 10), Brushes.Blue, 83, 825)
- 'Label Schrank
- graphicsObjekt.DrawString(strSchrank2, New Font("Arial", 10), Brushes.Blue, 270, 795)
- 'Label Fach
- graphicsObjekt.DrawString(strFach2, New Font("Arial", 10), Brushes.Blue, 325, 795)
- 'Linie Zeichnen
- graphicsObjekt.DrawLine(pen, 268, 560, 268, 790) 'Senkrechte
- graphicsObjekt.DrawLine(pen, 75, 560, 375, 560) 'waagerechte
- graphicsObjekt.DrawLine(pen, 75, 790, 375, 790) 'waagerechte
- graphicsObjekt.DrawLine(pen, 75, 845, 375, 845) 'waagerechte
- End Sub
- Private Sub RechteckdreiZeichnen(ByRef graphicsObjekt As Graphics)
- 'Linie Zeichnen
- Dim pen As New Pen(Brushes.Black)
- 'Karte 3 Rückseite generieren
- graphicsObjekt.DrawRectangle(Pens.Black, New Rectangle(75, 493, 300, 385))
- End Sub
- Private Sub RechteckvierZeichnen(ByRef graphicsObjekt As Graphics)
- 'Linie Zeichnen
- Dim pen As New Pen(Brushes.Black)
- 'Karte 4 Rückseite generieren
- graphicsObjekt.DrawRectangle(Pens.Black, New Rectangle(406, 493, 300, 385))
- End Sub
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- Dim dialogAntwort As DialogResult = PrintDialog1.ShowDialog() 'Dialog zum konfigurieren des Druckers
- If Not (dialogAntwort = DialogResult.OK) Then 'wenn Dialog abgebrochen wurde, Methode verlassen
- Return
- End If
- PrintDocument1.Print() 'drucken
- End Sub
- Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
- RechteckeinsZeichnen(e.Graphics)
- RechteckzweiZeichnen(e.Graphics)
- RechteckdreiZeichnen(e.Graphics)
- RechteckvierZeichnen(e.Graphics)
- '//Label hinzufügen
- Dim strVorderseite As String = "KANBAN (Vorderseite)"
- Dim strRueckseite As String = "KANBAN (Rückseite)"
- ' Position auf der Seite bestimmen.
- ' In diesem Fall lesen wir dazu die Randeinstellungen
- ' (selbst wenn es nichts gibt, was Ihren Code davon abhalten könnte,
- ' die Seitengrenzen zu "übertreten".)
- 'Label1
- Dim x1 As Single = 81
- Dim y1 As Single = 9
- 'Label2
- Dim x2 As Single = 424
- Dim y2 As Single = 9
- 'Label3
- Dim x3 As Single = 293
- Dim y3 As Single = 199
- ' Label zeichnen,
- ' und dabei die Koordinaten verwenden, die zuvor bestimmt wurden.
- e.Graphics.DrawString(strVorderseite, New Font("Arial", 18), Brushes.Blue, x1, y1)
- e.Graphics.DrawString(strRueckseite, New Font("Arial", 18), Brushes.Blue, x2, y2)
- End Sub
- Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
- RechteckeinsZeichnen(e.Graphics)
- RechteckzweiZeichnen(e.Graphics)
- RechteckdreiZeichnen(e.Graphics)
- RechteckvierZeichnen(e.Graphics)
- '//Label hinzufügen
- Dim strVorderseite As String = "KANBAN (Vorderseite)"
- Dim strRueckseite As String = "KANBAN (Rückseite)"
- ' Position auf der Seite bestimmen.
- ' In diesem Fall lesen wir dazu die Randeinstellungen
- ' (selbst wenn es nichts gibt, was Ihren Code davon abhalten könnte,
- ' die Seitengrenzen zu "übertreten".)
- 'Label1
- Dim x1 As Single = 81
- Dim y1 As Single = 9
- 'Label2
- Dim x2 As Single = 424
- Dim y2 As Single = 9
- 'Label3
- Dim x3 As Single = 293
- Dim y3 As Single = 199
- ' Label zeichnen,
- ' und dabei die Koordinaten verwenden, die zuvor bestimmt wurden.
- e.Graphics.DrawString(strVorderseite, New Font("Arial", 18), Brushes.Blue, x1, y1)
- e.Graphics.DrawString(strRueckseite, New Font("Arial", 18), Brushes.Blue, x2, y2)
- 'e.Graphics.DrawImage(Image.FromFile(Application.StartupPath & "\test.gif"), 81, 81)
- End Sub
- Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDruckVorschau.Click, Button2.Click
- PrintPreviewDialog1.ShowDialog()
- End Sub
- Private Sub PrintPreviewDialog1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PrintPreviewDialog1.Load
- PrintPreviewDialog1.Document = PrintDocument1
- End Sub
- Private Sub KANBAN_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- With Me
- .CenterToScreen()
- .Text = "KANBAN Ersatzteillager"
- End With
- End Sub
- End Class