Telerik中报告参数XXX的值无效

时间:2013-06-18 12:14:59

标签: c# asp.net telerik telerik-reporting

尝试渲染报告时遇到以下问题:

Invalid value of report parameter XXX

我以编程方式添加参数:

protected void btn_generate_Click(object sender, EventArgs e)
        {

            AddParamToRep();
            rep_attend.Visible = true;
        }

  protected void AddParamToRep()
        {
            try
            {
                int campCode = 0;
                if (ddl_camps != null && ddl_camps.Items.Count > 0)
                {
                    if (!string.IsNullOrEmpty(ddl_camps.SelectedValue))
                    {
                        campCode = int.Parse(ddl_camps.SelectedValue);
                    }
                }

                rep_attend.ReportSource.Parameters.Add(new Telerik.Reporting.Parameter("camp_code", campCode));
                rep_attend.ReportSource.Parameters.Add(new Telerik.Reporting.Parameter("dep_code", int.Parse(rad_ddl_dep.SelectedValue)));
                rep_attend.ReportSource.Parameters.Add(new Telerik.Reporting.Parameter("dep_name", rad_ddl_dep.SelectedItem.Text));
                rep_attend.ReportSource.Parameters.Add(new Telerik.Reporting.Parameter("rep_type", int.Parse(rbl_type.SelectedValue)));
            }
            catch (Exception ee)
            {
            }

        }

<telerik:ReportViewer ID="rep_attend" runat="server" Width="100%" Height="700px"
        Visible="false" ParametersAreaVisible="False" ShowPrintButton="False"> <typereportsource 
        typename="Reports.Det_HR_rep,Reports, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"></typereportsource>
</telerik:ReportViewer>

堆栈详细信息:

  

[例外:报告参数'camp_code'的值无效。]   [CancelProcessingException:处理时发生错误   报告。处理已取消。检查InnerException以获取更多信息   信息。] Telerik.Reporting.Processing.Report.ValidateParameters()   +218 Telerik.Reporting.Processing.Report.ProcessItem()+51 Telerik.Reporting.Processing.ReportItemBase.ProcessElement()+31   Telerik.Reporting.Processing.Report.ProcessElement()+ 21   Telerik.Reporting.Processing.ProcessingElement.Process(数据成员   dataContext)+112   Telerik.Reporting.Processing.Report.Process(DataItemState状态,   IEnumerable`1参数,Boolean processItemActions,Boolean   documentMapEnabled)+97   Telerik.Reporting.Processing.ReportProcessor.ProcessReport(ReportSource   reportSource,IRenderingContext processingContext)+514   Telerik.Reporting.Processing.ReportProcessor.ProcessReport(ReportSource   reportSource,Hashtable deviceInfo,IRenderingContext   processingContext)+259   Telerik.ReportViewer.WebForms.ReportRenderOperation.ProcessReport(ReportSource   reportSource,Hashtable deviceInfo,IRenderingContext   renderingContext)+308   Telerik.ReportViewer.WebForms.ReportRenderOperation.PerformOperationOverride()   +159 Telerik.ReportViewer.WebForms.ReportPageOperation.PerformOperationOverride()   +83 Telerik.ReportViewer.WebForms.HandlerOperation.PerformOperation(HttpContext   上下文,ICacheManager cacheManager)+45   Telerik.ReportViewer.WebForms.BasicHandler.ProcessRequest(HttpContext的   上下文)+160   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()   +399 System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean&amp; completedSynchronously)+76

2 个答案:

答案 0 :(得分:1)

引自this link,您的问题是:

  

...也就是说,当报表进入处理阶段时,其值将根据其验证属性进行验证。如果一个或多个参数没有有效值,则中止处理。报告参数定义用于验证提供的参数值的以下属性:

<强>类型

  

确定可接受的值的类型。允许的类型是Boolean,DateTime,Integer,Float,String。默认参数类型为String。

<强>允许为空

  

确定null(VB.Net中的Nothing)是否可接受。

<强> AllowBlank

  

仅在参数类型为String时应用。确定空字符串是否可接受。

答案 1 :(得分:1)

答案1::缺少一个参数(不是错误中提到的参数)。

答案2:在另一份报告中,问题在于有两个数据源,其中一个是为主要数据源的参数提供一个下拉选择列表。使用reportProcessor.RenderReport方法以编程方式生成报告时,提供的参数必须出现在下拉列表的数据源生成的列表中。

答案3:在报表设计器中,右键单击报表下方,然后选择“报表参数”。对于每个参数,请检查其类型和限制。

答案4:对于报表中的每个数据源,请检查每个参数的类型,并检查是否在值列中分配了值。