我正在使用 VB.NET 2005 。我需要将图像插入水晶报告我已将图像路径存储在数据库中。我的Crystal报告版本中没有图形位置选项。怎么可能
答案 0 :(得分:0)
如果您的数据源是数据表,请添加一个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)
当然,您的水晶报表定义的数据源必须与您传递给它的数据源相匹配。将“照片”列拖到报告中,然后显示照片。