Hallo,
das wär ja super, wenn Du das machen würdest. Das Problem ist nämlich, dass die Bilder in meiner Verwaltung eine elementare Rolle spielen, und auf den Ausdrucken nicht fehlen dürfen.
Ich kann hier ja leider keine komplette Programm Datei ablegen, deshalb habe ich mal versucht den Code auf verständliche Weise zusammen zuraffen, ich hoffe es ist ersichtlich, wie ich das meine. Ich habe nur den interessanten Teil heraus kopiert.
Kurze Erklärung: Ich habe ein Listview, dass mit Daten aus einer Datarow gefüllt werden. Die wiederum bekommt die Daten aus einer Datatable. Nun werden die Daten aus der Datarow in das Listview geschrieben. Es handelt sich hier um Figuren, dessen Daten in dem Listview dargestellt werden. Dazu suche ich mir die Bilder auf Vorrat zusammen und packe diese in die Imagelists Small und Large (damit man auf einfache Weise bei Umstellung der Listview-Ansicht große und kleine Bilder hat). Und wenn der Inhalt des feldes Figurenbezeichnung ins Listview eingetragen wird, gebe ich den Index des Bildes des Imagelist mit an. Mann kann dann das Listview umschalten, ob man sich seine Figuren Sammlung als Detail-Ansicht mit kleinen Bildern anschaut, oder als Liste mit großen oder kleinen Symbolen. So wie im Windows-Explorer. Und bei den Ausdrucken sollen dann auch immer die Fotos mit drauf sein.
Dein Programmcode war hier zu finden: http://www.vbarchiv.net/tipps/tipp_1473.html
Vielen Dank schon mal, ich hoffe Du kannst damit was anfangen
Tanja
' Dim drw, drwChildRows(), drwChildRow As DataRow
' drw = tbKategorien.Rows.Find(tvNode.Tag.ToString.Substring(1)) --> Die
' DataRow wird aus einer Datatable gefüllt
'ListView füllen
ListView1.Clear()
ListView1.HeaderStyle = ColumnHeaderStyle.Clickable
colBez = ListView1.Columns.Add("Bezeichnung", 200, HorizontalAlignment.Left)
ListView1.Columns.Add("Zubehör", 140, HorizontalAlignment.Left)
ListView1.Columns.Add("Bemerkung", 150, HorizontalAlignment.Left)
ListView1.Columns.Add("Anzahl", 60, HorizontalAlignment.Right)
ListView1.Columns.Add("Wert", 60, HorizontalAlignment.Right)
ImageListSmall.Images.Clear()
ImageListLarge.Images.Clear()
ImageListSmall.Images.Add("0", My.Resources.picKeinBild)
ImageListLarge.Images.Add("0", My.Resources.picKeinBild)
drwChildRows = drw.GetChildRows("Serien_Element")
For Each drwChildRow In drwChildRows
' ImageLists füllen
Try
ImageListSmall.Images.Add(drwChildRow!elementnr.ToString, _
Image.FromFile(My.Resources.PfadBilderordner & "\" & _
drwChildRow!katnr.ToString & "\" & drwChildRow!bild.ToString))
ImageListLarge.Images.Add(drwChildRow!elementnr.ToString, _
Image.FromFile(My.Resources.PfadBilderordner & "\" & _
drwChildRow!katnr.ToString & "\" & drwChildRow!bild.ToString))
Catch ex As Exception
End Try
'ListView füllen
Dim lstItem As ListViewItem
If ImageListSmall.Images.ContainsKey(drwChildRow!elementnr.ToString) Then
lstItem = ListView1.Items.Add(drwChildRow!Bez.ToString, _
drwChildRow!elementnr.ToString)
Else
lstItem = ListView1.Items.Add(drwChildRow!Bez.ToString, "0")
End If
lstItem.Tag = drwChildRow!SerienNr
lstItem.SubItems.Add(drwChildRow!zubehör.ToString)
lstItem.SubItems.Add(drwChildRow!Bemerkung.ToString)
lstItem.SubItems.Add(drwChildRow!anzahl.ToString)
lstItem.SubItems.Add(drwChildRow!wert.ToString("c"))
Next |