如何使用 CR 10.5 和 Visual Studio 2008 显示 JPG 图像



我正在使用vs.2008和水晶报告版本10.5(我将图像路径保存在SQL数据库中)

我想放动态图像我该怎么做请帮助我。

你可以引用这个 或按照步骤

–> 当文件路径存储在数据库中并且需要在水晶报告的详细信息部分中显示图像时

如果您有存储在数据库中的图像路径,则 Visual Studio 2003/2005 中的 Crystal Report .NET 无法动态显示图像文件,除非您在 Crystal Report XI 中使用动态图像位置功能。

但别担心,它可以显示一些解决方法。

  1. 数据库中必须具有图像路径。

  2. 创建新的数据集/XML 架构 (xsd) 以用作创建报表时的资源数据。添加一个不在表中且类型为 base64Binary 的附加字段:

  3. 设计报表时,将"image_stream"字段拖放到要显示的区域。

  4. 在代码中添加以下方法:

    private void AddImageColumn(DataTable objDataTable, string strFieldName){尝试{DataColumn objDataColumn = new DataColumn(strFieldName, Type.GetType("System.Byte[]"));objDataTable.Columns.Add(objDataColumn);}捕获(例外,例如){Response.Write("+ex.消息+");}}

  5. 而这个来加载图像:

    private void LoadImage(DataRow objDataRow, string strImageField, string FilePath){尝试{FileStream fs = new FileStream(FilePath, System.IO.FileMode.Open, System.IO.FileAccess.Read);字节[] 图像 = 新字节[fs.长度];司 司长。Read(Image, 0, Convert.ToInt32(fs.长度));司 司长。关闭();objDataRow[strImageField] = Image;}捕获(例外,例如){Response.Write("+ex.消息+");}}

  6. 在将数据集分配给报表的"SetDataSource"之前,请添加以下代码:

    AddImageColumn(ds.表[0], "image_stream");for (int index=0;索引

  7. 最后在水晶报告查看器中显示报告

    crDoc.SetDatabaseLogon(UserID, password, server, database);crDoc.SetDataSource(ds.表[0]);CrystalReportViewer1.ReportSource = crDoc;

未经测试。

实际上很容易,请遵循以下条件:

  1. 除非您已经在使用 OLE,否则请创建表单 crystareport1 的数据库字段的新连接
  2. 选择 OLE DB(ADO)
  3. 添加存储图像的表。
  4. 提供系统所需的数据库信息
  5. 现在,您已将表添加到数据库字段中。
  6. 只需将图像拖放到第3节区域即可。
  7. 链接
  8. 此链接,因为您链接简单以显示其他记录。

我已经在我的项目中测试过它

最新更新