Hallo,
(http://www.vbarchiv.net/tipps/tipp_1421-dataset-nach-pdf-exportieren-net.html)
irgendetwas stimmt bei mir bei diesem Tipp nicht.
Obwohl ich 6 Spalten in meiner DataTable habe, erstellt er in der PDF-Datei bei mir immer nur eine.
Komischerweise aber nicht die erste oder letzte, sondern nur die in der Mitte (in diesem Fall die Anzahl).
Das passiert sowohl beim Header als auch beim Datencontent.
Kann mir jemand sagen warum das so ist?
So schaut das PDF dann aus:
Und so die Zeile:
CreatePDF:
Private Sub CreatePDF(ByVal strFilename As String)
Dim oDoc As Document = Nothing
Dim Writer As PdfWriter = Nothing
Dim line As Long = 0
Dim colPos As Long = 0
Dim t As iTextSharp.text.Table = Nothing
Dim tCell As Cell = Nothing
Try
Me.ProgressBar1.Visible = True
Me.ProgressBar1.Minimum = 0
Me.ProgressBar1.Maximum = mydata.Rows.Count
'PDF erstellen
oDoc = New Document(PageSize.A4, 20, 20, 20, 20)
Writer = PdfWriter.GetInstance(oDoc, New FileStream(strFilename, _
FileMode.Create))
Writer.Open()
oDoc.Open()
'Titel
oDoc.Add(New Paragraph("PRODUKTLISTE", FontFactory.GetFont( _
FontFactory.TIMES_ROMAN, 14, style:=1)))
'ContentTabelle erstellen
t = New iTextSharp.text.Table(mydata.Columns.Count)
t.AutoFillEmptyCells = True
t.BorderWidth = 0
t.Border = 0
t.Padding = 5
t.Width = 1000
Dim zeile As Integer = 0
'Headerzeile erstellen
For Each col As DataColumn In mydata.Columns
tCell = New Cell(col.Caption)
tCell.Header = True
tCell.BackgroundColor = iTextSharp.text.Color.LIGHT_GRAY
tCell.Border = iTextSharp.text.Rectangle.BOTTOM_BORDER
t.AddCell(tCell, line, colPos)
colPos += 1
Next
line += 1
colPos = 0
' --> Datencontent erstellen
For Each row As DataRow In mydata.Rows
For Each col As DataColumn In mydata.Columns
tCell = New Cell(row(col.Caption).ToString)
tCell.Border = 0
tCell.BorderWidth = 3
t.AddCell(tCell, line, colPos)
colPos += 1
Next col
colPos = 0
line += 1
Application.DoEvents()
Me.ProgressBar1.Value += 1
Next
' --> Tabelle an Dokument anfügen
oDoc.Add(t)
' --> Objekte schliessen
oDoc.Close()
Writer.Close()
Me.ProgressBar1.Visible = False
If MessageBox.Show("Erstellte Datei anzeigen?", "Frage", _
MessageBoxButtons.YesNo, MessageBoxIcon.Question) = _
Windows.Forms.DialogResult.Yes Then
Call OpenFile(strFilename)
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub Auslesen der Daten:
Public Sub LOAD_ArticleDB(ByVal Art As String, ByVal Anzahl As String, _
ByVal Filter As String, ByVal FilterGruppe As Boolean, ByVal GrpID As _
Integer)
Dim sql As String = ""
mydata.Clear()
If FilterGruppe = False Then
sql = "SELECT artikelnummer as ArtNr, artikelname as Artikelname, (" & _
"SELECT gruppenname FROM produktgruppen WHERE id =" & _
"artikel.produktgruppe) as Produktgruppe, artikelanzahl as" & _
"Anzahl, " _
& "artikelpreis as Nettopreis , nummer_intern as Nummer FROM" & _
"artikel " & Art & Filter & ";"
Else
sql = "SELECT artikelnummer as ArtNr, artikelname as Artikelname, (" & _
"SELECT gruppenname FROM produktgruppen WHERE id = " & GrpID & ")" & _
"as Produktgruppe, artikelanzahl as Anzahl, " _
& "artikelpreis as Nettopreis , nummer_intern as" & _
"Nummer FROM artikel " & Art & Filter & ";"
End If
Dim cmd As New OleDbCommand(sql, conn)
Dim myAdapter As New OleDbDataAdapter(cmd)
myAdapter.Fill(mydata)
Dim binder As New BindingSource
binder.DataSource = mydata
DataGridView1.DataSource = binder
BindingNavigator1.BindingSource = binder
End Sub Danke
Beitrag wurde zuletzt am 06.08.09 um 19:40:34 editiert. |