日期:2014-05-18  浏览次数:20817 次

C# winform 怎么利用reportViewer 报表控件插入外部图片
请问高手,C# winform 怎么利用reportViewer 报表控件插入外部图片?
请注意是外部图片!!!是转换成二进制数组赋值还是直接利用路径就行?
请提供完整示例代码,拒绝网上的粘贴复制,我都试验了,要么是行不通,要么是代码片段。
分不够可以再加。

------解决方案--------------------
外部图片??不在本电脑??
那用二进制数组,,估计不行了,
不在本电脑肯定是要下载到本电脑的,然后路径,或者把图片转换成二进制都行。

------解决方案--------------------
UP http://www.cnblogs.com/know/archive/2011/02/13/1952912.html
------解决方案--------------------
byte[] bufferRight;
byte[] bufferWrong;
//将图片保存在流中
private void InitImage()
{
Bitmap right=new Bitmap(Server.MapPath("../Images/right.jpeg"));
Bitmap wrong=new Bitmap(Server.MapPath("../Images/wrong.jpeg"));
bufferRight = BitmapToBytes(right);
bufferWrong = BitmapToBytes(wrong);
}
//图片转码
private byte[] BitmapToBytes(Bitmap Bitmap)
{
MemoryStream ms = null;
try
{
ms = new MemoryStream();
Bitmap.Save(ms, ImageFormat.Jpeg);
byte[] byteImage = new Byte[ms.Length];
byteImage = ms.ToArray();
return byteImage;
}
catch (ArgumentNullException ex)
{
throw ex;
}
finally
{
ms.Close();
}

//这里是报表的数据源,一个datatable中用来存放图片的行
dr["DoorEnable1"] = Convert.ToBase64String(bufferRight);
dr["DoorEnable2"] = Convert.ToBase64String(bufferWrong);

然后报表中,插入图像,绑定到“DoorEnable1”或者“DoorEnable2”字段,选对图像类型就行了。