【问题标题】:Crystal Reports setdatasource水晶报表设置数据源
【发布时间】:2012-07-13 13:35:04
【问题描述】:

我在我的 C# 代码中设置报表数据源,如下所示:

report.SetDataSource(dataSource);

一切正常,但之后水晶报表仍会尝试连接到数据库。 我虽然如果我从代码中设置数据源,那么报告就不会想要从数据库中获取更多数据。

真的是这样吗,即使在从代码报告中设置了数据源之后,也会从数据库中询问更多数据?

编辑:我面临的真正问题是我有 2 份报告,一份在从代码设置数据源后从数据库中获取数据,而另一份则没有。我整天都在努力解决这个问题,但还没有运气。这两个报告几乎完全相同,都使用数据库视图从数据库中获取字段,并且都使用相同的代码从代码中设置数据源。 逻辑是我在我的代码中加载报告,从中获取所需的数据库字段并使用这些字段创建DataTable。然后我用数据填充它并将其设置为数据源:report.SetDataSource(dataSource);。对于这两个报告,代码和逻辑是相同的!只是字段不同..

【问题讨论】:

  • 第二个报表是子报表吗?
  • 不,第二个报告不是子报告。
  • 报表中有子报表吗?我对同样问题的经验是,我们认为子报表在某种情况下被抑制,所以在这种情况下,我们没有在代码中为子报表设置数据源。虽然它没有在 .rpt 文件中正确地被抑制,所以它要求一个数据源。我的猜测是,这也是同样的道理。
  • 报表中有子报表...

标签: c# crystal-reports datasource


【解决方案1】:

如果您有子报告。

遍历子报表 并在每个子报表对象上调用 SetDataSource(dataSource)。

【讨论】:

    【解决方案2】:
            Report.RicevutaCup r = new Report.RicevutaCup();
            System.Data.DataSet ds = CupDatasetFactory.CreaRicevutaCupDataSet(df);
            r.OpenSubreport("RicevutaCup_Prestazioni").SetDataSource(ds);
    
            r.SetDataSource(ds);
    

    解决了我的问题(重新启动 IIS 后)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-30
      • 1970-01-01
      • 1970-01-01
      • 2021-11-20
      • 2015-12-09
      • 1970-01-01
      相关资源
      最近更新 更多