【发布时间】:2018-03-28 06:15:47
【问题描述】:
我正在使用 VB.NET 2005。我需要将图片插入到水晶报表中我已将图片的路径存储在我的数据库中。我的水晶报表版本中没有图形位置选项。怎么可能
【问题讨论】:
-
@MatSnow 我的水晶报表版本中没有图形位置选项
-
哦,好吧,我的错。我假设这适用于所有版本。
我正在使用 VB.NET 2005。我需要将图片插入到水晶报表中我已将图片的路径存储在我的数据库中。我的水晶报表版本中没有图形位置选项。怎么可能
【问题讨论】:
如果您的数据源是数据表,请添加一个 Byte() 类型的新列,如下所示:
Dim image As New DataColumn
With image
.ColumnName = "photo"
.DataType = GetType(Byte())
.AllowDBNull = True
End With
yourTable.Columns.Add(image)
现在根据存储在数据源中的路径设置图像的值。 (您应该在检索数据时包含存储图像路径的列。)
For Each row As DataRow in yourTable.Rows
row("photo") = GetImageData(row("path_to_photo"))
Next
yourTable.AcceptChanges()
Private Function GetImageData(ByVal cFileName As String) As Byte()
Dim fs As System.IO.FileStream = _
New System.IO.FileStream(cFileName, _
System.IO.FileMode.Open, System.IO.FileAccess.Read)
Dim br As System.IO.BinaryReader = New System.IO.BinaryReader(fs)
Return (br.ReadBytes(Convert.ToInt32(br.BaseStream.Length)))
End Function
然后将 yourTable 设置为报表的数据源
yourReport.SetDataSource(yourTable)
当然,您的水晶报表定义的数据源必须与您传递给它的数据源相匹配。将“照片”列拖到您的报告中,应该会显示照片。
【讨论】: