【问题标题】:Crystal Report Viewer's parameter panel is emptyCrystal Report Viewer 的参数面板为空
【发布时间】:2015-05-20 22:19:27
【问题描述】:

我在 Visual Studio 2010 中使用 Crystal Reports 13 SP 13。该报表在 aspx.net 网页中查看。我想要的是报告在加载之前提示输入参数,然后用户可以选择一个新参数并从中查看其他记录。我已验证我的参数(一个下拉列表)按预期工作。

我已将参数设置为“可编辑”,但面板中没有任何内容。实际上,如果我允许显示组树面板和按钮,则参数面板根本没有按钮可供单击。

奇怪的是,当我在解决之前的问题时,让用户更改他们在该面板中的参数是有效的方法之一。

我当前的实现使用从 DataSet 创建的 DataTable。报告存储在 Session 变量中。如果我不得不猜测,正是这些事情之一给了我新的问题。

我发现了一些有趣的代码here

foreach (CrystalDecisions.Shared.ParameterField parameterField in reportDocument.ParameterFields)
{

  parameterField.ParameterFieldUsage2 = ParameterFieldUsage2.ShowOnPanel;

}

不幸的是,就像那个帖子的海报一样,这段代码对我不起作用。尝试将 ParameterFieldUsage2 属性设置为 ShowOnPanel 时,系统会抛出 System.NotSupportedException。

【问题讨论】:

    标签: c# crystal-reports


    【解决方案1】:

    事实证明,会话一直是问题所在。无论出于何种原因,当报告存储在会话变量中时,您都无法更新参数。

    因此,我不得不再次更改我的实现。

    private ReportDocument rpt;
    private myDataSet ds;
    
    protected void Page_Init(object sender, EventArgs e)
    {
    
        DataTable dt = new DataTable();
        ds = new myDataSet();
        myDataSetTableAdapters.myTableTableAdapter dsTA = new myDataSetTableAdapters.myTableTableAdapter();
        dt = dsTA.GetData();
    
        rpt = new ReportDocument();
        rpt.Load(Server.MapPath(mapPath));
        rpt.SetDataSource(dt);
        CrystalReportViewer1.ReportSource = rpt;
    
    }
    

    就是这样。这就是我所需要的。不再担心回传或会话。在我经历了一切到达这里之后,我不太明白这怎么会如此简单。但它有效。

    【讨论】:

      猜你喜欢
      • 2014-12-26
      • 2016-04-09
      • 1970-01-01
      • 2012-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多