0

我希望将 Crystal Reports 2008 集成到 Windows 窗体应用程序中。我想避免从我的客户端应用程序直接连接到数据库,同时为用户提供“完整”的报告体验。Crystal Reports 2008 是否可以将服务器上的报表执行到客户端 Windows 窗体客户端控件中,类似于 Microsoft Reporting Services?

4

3 回答 3

1

我不知道这是否正是您所追求的,但我可以想到两种方法可以捏造它:

  1. 您可以设置您的报告,使“数据库”是一个 XSD 文件,而无需了解真正的后端。然后在运行时将数据推送到报告中。

// 在运行时创建一个适合您的环境的实例 - 仅示例:

ReportClass rc = new ReportClass();

rc.Load(水晶报告文件名);

rc.SetDataSource(myIEnumerableData);

CrystalReportViewer crv = new CrystalReportViewer();

crv.ReportSource = rc;

// 显示水晶查看器。

2 - 您可以在服务器上执行与 1 相同的操作(无论数据库方法如何),然后保存报告并将其推送到客户端。

// 一些服务器端服务/方法等

公共字节[] GetMyReport() {

ReportClass rc = new ReportClass();

rc.Load(水晶报告文件名);

rc.SetDataSource(myIEnumerableData);

rc.SaveAs(serverSideFile, True); // True 对于使用报告保存数据至关重要

return .... // 将创建的文件转换为我想的字节数组

}

// 客户端

字节 [] 代表 = 服务器。获取我的报告()

ReportClass rc = ..... // 将 rep 转换回水晶报表

CrystalReportViewer crv = new CrystalReportViewer();

crv.ReportSource = rc;

于 2008-10-20T06:13:53.357 回答
0

这并不是您真正要问的,但 Crystal Reports Server 会执行服务器端报告。

不利的一面是,它非常昂贵。

http://www.businessobjects.com/product/catalog/crystalreports_server/

于 2008-10-03T23:26:49.563 回答
0

我无法在上面添加评论,因为我没有任何观点,但希望这会有所帮助。

Crystal Reports Server 针对数据源运行报表,其想法是没有 Crystal Reports 或数据访问权限的客户端可以通过 Web 运行报表,或者服务器运行计划报表并将结果发送出去。我不知道你是否可以整合它。

于 2008-10-08T14:42:58.700 回答