我怎样才能加载保存在数据库中的Visual Studio 2008的ReportViewer的图像?

有谁知道我怎么能得到保存在数据库中AI的图像,并显示在2008年的ReportViewer?

谢谢!!

--------------解决方案-------------

目前我正在这样做,但是,它是不容易实现的。

我创建了一个类,生成一个MemoryStream RDLC文件。 所述RDLC存储器流发送到ReportViewer控件,这反过来又显示报告。

在RDLC文件的生成,您可以创建一个嵌入式图像。 为了做到这一点,我检索图像到Byte数组,然后我转换字节数组转换成Base64编码。 该RDLC文件需要Base64编码的图像正常显示。

再次,这是不容易实现的,所以你真的需要想这样做是为了把它关闭。 如果你想继续用这种方法,我可以给你一些更多的细节。

编辑(详细信息)

你可以得到关于如何在动态创建GotReportViewer RDLC文件的一些示例代码。 直接链接代码VB.NET和C#。

如果你能设法找出这些代码是如何工作的,你将能够生成您的RDLC文件,不需要手动创建自己的文件。 再次,我要强调的事实,你将被修补了很多去,你想与此有关。

现在,为了生成图像,从数据库中检索。 当你得到它从数据库(我用BLOB)的时候,你会得到一个字节数组。 该字节数组保存为图像数据,但我不能在当前状态下使用。 要转换它,你可以这样做:

Dim output As String = ""
output = Convert.ToBase64String(imgByteArray)

由此产生的输出字符串将与的ReportViewer兼容。 现在,您可以动态地添加此串入的ReportViewer的RDLC文件(XML文件)。 使用从GotReportViewer代码示例,你可以做到以下几点:

'Inserts embedded images into the report
Overridable Function CreateEmbeddedImages() As Rdl.EmbeddedImagesType
Dim bgCell As New Rdl.EmbeddedImageType
Dim images As New Rdl.EmbeddedImagesType

bgCell.Name = "bgTableHeader"
bgCell.Items = New Object() {"image/jpeg", output}
bgCell.ItemsElementName = New Rdl.ItemsChoiceType35() {Rdl.ItemsChoiceType35.MIMEType, Rdl.ItemsChoiceType35.ImageData}

images.EmbeddedImage = New Rdl.EmbeddedImageType() {bgCell}
Return images

End Function

该RDL类型的报表定义语言类文件。 基本上,它是一种逆向工程RDLC XSD架构。 它包含将用于生成报表有效的XML文件的类。 它包含在GotReportViewer连接起来顶端,但是你可以使用随Visual Studio中的xsd.exe工具自己生成一个。

分类:视觉工作室 时间:2015-03-15 人气:2
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.569 (s). 10 q(s)