ReportViewer按参数过滤不接受参数的值

时间:2015-02-19 17:26:45

标签: c# asp.net reportviewer

当我尝试传递一个从查询字符串中获取的参数值时,我的报告出现错误。

使用下面的当前设置,我收到以下错误:“报告处理期间出错。  无法评估Tablix'Tablix2'“

的FilterValue

在我的设计器中,我有一个表格,其中包含从数据集中拖动的列。 我有一个文本框,标签是参数CHAPTER_ID。它显示为“#Error”。当我将其设置为整数或文本

表格填充正常,但无法使用参数进行过滤。我可以对一个值进行硬编码并对其进行过滤。

ASPX

<rsweb:ReportViewer ID="ReportViewerAnyReport" runat="server" Height="800px" ProcessingMode="Local"
        Style="position: relative" Width="1100px"></rsweb:ReportViewer>

ASPX.CS

protected void Page_Load(object sender, EventArgs e)
    {
        if (!(Page.IsPostBack))
        {
            List<GetComments_Result> comments = RexCommentBAO.GetAllComments();
            string s_chapterId = Request.QueryString["ChapterID"];

            try
            {
                ReportDataSource datasource = new ReportDataSource("ds_comments", comments);
                ReportViewerAnyReport.LocalReport.DataSources.Add(datasource);

                ReportViewerAnyReport.LocalReport.ReportEmbeddedResource = @"C:\Work\W2R.Rex\Rex\Rex\Rex_Web\RexReports.rdlc"; 
                ReportViewerAnyReport.LocalReport.ReportPath = @"C:\Work\W2R.Rex\Rex\Rex\Rex_Web\RexReports.rdlc";

                ReportParameter p = new ReportParameter("CHAPTER_ID", s_chapterId);
                this.ReportViewerAnyReport.LocalReport.SetParameters(new ReportParameter[] { p });
                ReportViewerAnyReport.LocalReport.Refresh();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }

在我的rdlc [设计] -

参数属性

General Tab:
     Name: CHAPTER_ID
     Data type: Text (Tried Integer - codebehind passes string. Integer throws the error: "An error has occurred during report processing.  Failed to evaluate the FilterValue of the Tablix ‘Tablix2’".

 Checkboxes (all unchecked)
     -Allow Blank value("")
     -Allow null value
     -Allow multiple values

  Available Values Tab: None is selected
  Default Values Tab: None is selected

Tablix属性:

General Tab: 
    Dataset name: ds_comments
Filters Tab:  
    Expression: Fields!CHAPTER_ID.Value  Text (Tried Integer)
    Operator: =
    Value: [@CHAPTER_ID] - the expression for this value is "=Parameters!CHAPTER_ID.Value". Hard coded a value and it filtered the data.

1 个答案:

答案 0 :(得分:0)

因此,在执行LocalReport时似乎无法使用参数。通过传入预先过滤的数据源来更改它。

List<CMT> comments = RexCommentBAO.GetCommentsByChapterId(i_chapterId);