水晶报表中显示动态图片
来源:互联网 发布:jsp连接sql的方法 编辑:程序博客网 时间:2024/04/30 03:59
环境:
VS 2003.net, C#, Web, Crystal Report 10
主要思路:
将图片以二进制流放入 DataTable 中,传入报表中显示。
例子:
1. 建立xml表结构定义:XSDSchema1.xsd
元素(Element):Element1
字段名
数据类型
Image
hexBinary
2. 建立报表 CrystalReport1.rpt
3. 为报表加入数据库连接
选择 Create New Connection / ADO.NET (XML), 选择步骤1建立的文件XSDSchema1.xsd
4. 将 字段 Image 拖入报表中 (是一个IBlobFieldObject对象)
5. 创建 WebForm1.aspx,用于显示报表
6. 将 CrystalReportViewer 拖入 WebForm1.aspx,
7. 在 WebForm1.cs 部分代码如下:
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System.IO;
//获取图片的二进制内容
System.Drawing.Image img;
System.IO.MemoryStream mm = new MemoryStream();
//img 读取图片
...
//将 Image 对象内容转入 MemoryStream 中
img.Save(mm, System.Drawing.Imaging.ImageFormat.Bmp);
//将 MemoryStream 内容转换为 byte[],放入 DataTable 中
DataSet ds = new DataSet();
DataTable dt = new DataTable("Element1"); //与定义元素(Element)同名
dt.Columns.Add("Image", typeof(System.Byte[]) ); //二进制格式
DataRow dr = dt.NewRow();
dr["Image"] = mm.ToArray(); //将 MemoryStream 转换为 byte[]
//将报表文件载入 ReportDocument中
ReportDocument m_Rep = new ReportDocument();
m_Rep.Load(Server.MapPath("CrystalReport1.rpt"));
//获取报表中显示图片的对象(图片对象不会随着图片大小自动条件,需要代码控制)
BlobFieldObject imageObject = (BlobFieldObject) m_Rep.ReportDefinition.ReportObjects["Image1"] as BlobFieldObject;
imageObject.Width = img.Width * 15; //报表中的长宽单位是缇,1像素=15缇
imageObject.Height = img.Height * 15;
//将 ReportDocument 对象传入 CrystalReportView 中,显示
CrystalReportViewer1.ReportSource = m_Rep;
- 水晶报表中显示动态图片
- 在水晶报表中动态显示任意格式的图片
- 解决水晶报表中动态加载的图片或利用水晶报表创建的图表不显示图片的方法
- 水晶报表中动态显示小数位
- 水晶报表中如何动态加载图片
- 水晶报表显示图片
- 水晶报表--显示图片
- 水晶报表:图片显示
- 水晶报表中如何动态加载图片时显示不了图片的可能原因之一
- 水晶报表图片不显示
- C#水晶报表显示sqlserver2000储存的图片 C#水晶报表动态显示sqlserver储存的图片
- 水晶报表中显示CheckBox
- 水晶报表中动态加载报表字段
- 水晶报表 动态批量打印本地图片
- [水晶报表]动态加载图片(签名)
- 水晶报表动态加载磁盘图片
- TIPTOP GP5打印报表时如何在水晶报表中显示服务器上的图片
- 水晶报表中如何动态加载图片(图片文件版本及数据库版本)
- 使用 IBM Data Studio 为 WAS 创建和部署 Data Web Services
- DbgridToExcell
- 百灵报表(BIRT)接口学习:设计report design
- 程序员的爱情表白
- 在TListBox和TComboBox中绘图
- 水晶报表中显示动态图片
- 《Linux命令行和Shell脚本开发圣经》:内容速览
- 高效率创建安全的 Java 应用,第 2 部分
- 定制MOSS列表编辑页面
- reportViewer1报表打印
- [OpenSolaris][kernel]Solaris内核加载设备驱动过程
- const用法
- Delphi中ListBox控件的六种特效
- JS判断字符串是否含有中文