Crystal 2008中的服务器端报告?

时间:2008-10-03 22:58:04

标签: winforms crystal-reports

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

3 个答案:

答案 0 :(得分:1)

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

  1. 您可以设置报告,以便“数据库”是XSD文件,而不了解真正的后端。然后在运行时将数据推送到报告中。
  2. //在运行时创建适合您环境的实例 - 仅限示例:

    ReportClass rc = new ReportClass();

    rc.Load(crystalReportFileName);

    rc.SetDataSource(myIEnumerableData);

    CrystalReportViewer crv = new CrystalReportViewer();

    crv.ReportSource = rc;

    //显示水晶查看器。

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

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

    public byte [] GetMyReport() {

    ReportClass rc = new ReportClass();

    rc.Load(crystalReportFileName);

    rc.SetDataSource(myIEnumerableData);

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

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

    }

    //客户端

    byte [] rep = Server。 GetMyReport()

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

    CrystalReportViewer crv = new CrystalReportViewer();

    crv.ReportSource = rc;

答案 1 :(得分:0)

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

在不利方面,这是非常昂贵的。

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

答案 2 :(得分:0)

我无法在上面添加评论,因为我没有积分,但希望这有帮助。

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