【问题标题】:Crystal Report runs query multiple times on page changeCrystal Report 在页面更改时多次运行查询
【发布时间】:2013-05-24 06:50:47
【问题描述】:

我已经在 page_init() 中编写了水晶报表的代码,它运行良好,但我刚刚注意到,当我切换报表页面索引时,意味着当我要加载报表的第二页时,控件再次运行到页面加载和整个报告查询再次运行。

我做了一个 switch case,从查询字符串中我取了要加载的报告的名称, 有什么方法可以最小化报告加载时间?

会话是更好的主意吗?

如果我在 (!Ispostaback) 中编写代码,则只加载第一页,当我尝试切换第二页时,它显示 no resource is available 错误。

 protected void Page_Init(object sender, EventArgs e)
    {
        try
        {
            String test = Request.QueryString["ReportType"];
            ReportDocument report = new ReportDocument();
            switch (testCondition)
            {
                   case "Report":
                    var rpt1 = new LenderCompanyActionReport(); 
                    String lcarParam1 = Request.QueryString["Param1"];
                    String lcarParam2 = Request.QueryString["Param2"];
                    String lcarParam3 = Request.QueryString["Param3"];
                    String lcarParam4 = Request.QueryString["Param4"];
                    String lcarParam5 = Request.QueryString["Param5"];
                    List<Reportclass> lst2 = new ReportMethod().GetReport(lcarParam1, lcarParam2, lcarParam3, lcarParam4, lcarParam5);
                    rpt1.SetDataSource(lst2);
                    CRReportViewer.ReportSource = rpt1;
                    break;
}

【问题讨论】:

  • 你必须在 sessoin 中拿报告

标签: c#-4.0 session crystal-reports page-init


【解决方案1】:

您需要将 rpt1 添加到会话变量中

【讨论】:

  • 好吧,其实这是唯一的办法,我们需要保持报表的数据源,在会话中。
猜你喜欢
  • 1970-01-01
  • 2010-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-11
  • 2012-10-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多