2008-10-03 104 views
0

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

回答

1

我不知道这是否是你是什么之后,但我能想到的2种方式,你可以掰过来:

  1. 您可以设置您的报告,使“数据库”是XSD文件,不知道真正的后端。然后在运行时将数据推送到报告。

//在适合于您的环境运行时创建一个实例 - 例如只:

ReportClass RC =新ReportClass();

rc.Load(crystalReportFileName);

rc.SetDataSource(myIEnumerableData);

CrystalReportViewer crv = new CrystalReportViewer();

crv.ReportSource = rc;

//显示水晶观察器。

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

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

公共字节[] GetMyReport() {

ReportClass RC =新ReportClass();

rc.Load(crystalReportFileName);

rc.SetDataSource(myIEnumerableData);

rc.SaveAs(serverSideFile,True); //真正保存报告数据至关重要

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

}

//客户端侧

字节[]代表​​=服务器。 GetMyReport()

ReportClass RC = ..... //转换代表回晶体报告

的CrystalReportViewer CRV =新的CrystalReportViewer();

crv.ReportSource = rc;

+0

这似乎是最接近我后。我将不得不测试报表用户界面体验是否承受预填充报表,而不是将其填充到用户界面中。 – JoshL 2008-11-15 00:34:40

0

因为我没有点,但希望这可以帮助我不能添加上述评论。

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