VB.NET 2005 Crystal Report中的动态图像

时间:2018-03-28 06:15:48

标签: vb.net crystal-reports

我正在使用 VB.NET 2005 。我需要将图像插入水晶报告我已将图像路径存储在数据库中。我的Crystal报告版本中没有图形位置选项。怎么可能

1 个答案:

答案 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)

当然,您的水晶报表定义的数据源必须与您传递给它的数据源相匹配。将“照片”列拖到报告中,然后显示照片。