SSRS 2008 NULL参数

时间:2009-07-08 16:52:48

标签: reporting-services ssrs-2008

如何将null参数传递到SQL 2008报告中?与ReportExecution& amp;在我通过调用ReportExecutionService.Render()方法设置参数(不包括可空的参数)之后,ReportService2005 Web服务在执行ReportExecutionService.SetExecutionParameters()方法时总是会产生错误:

"...This report requires a default or user-defined value for the report parameter...to run or subscribe to this report, you must provide a parameter value."

即使该参数在.rdl文件中定义为null能够,并且默认为null

我必须更改我的代码吗?更改.rdl文件中的参数选项?

var rs = new ReportExecutionService();
rs.Url= "http://Z/ReportServer/ReportExecution2005.asmx";     
rs.Credentials = CredentialCache.DefaultCredentials;
rs.ExecutionHeaderValue = new ExecutionHeader();

var executionInfo = rs.LoadReport(ReportTarget, null);
var parameterList = new List<ParameterValue>();

foreach (ParameterValue parameter in Parameters)
{
  parameterList.Add(parameter);
}

foreach (var expectedParameter in executionInfo.Parameters)
{
  if 
  (  
      expectedParameter.Nullable && 
      !parameterList.Exists(delegate(ParameterValue pv) 
      { return pv.Name == expectedParameter.Name; })
  )
  {
     var parameter = new ParameterValue();
     parameter.Name = expectedParameter.Name;
     parameter.Value = null;

     parameterList.Add(parameter);
  }
}

rs.SetExecutionParameters(parameterList.ToArray(), "en-us");

Warning[] warnings = null;
string[] streamIDs = null;
string encoding = null;
string extension = null;
string mime = null;

var content = rs.Render("PDF", null, out extension, out mime, out encoding, out warnings, out streamIDs);

2 个答案:

答案 0 :(得分:1)

似乎是SSRS中的一个错误。特别是因为我有一些报告,其中默认的空值有效,有些报告“...报告需要报告参数的默认值或用户定义的值...”

无论如何,这段代码在VB中似乎对我有用。

params = New ArrayList

...

Dim ssrsPrm As New Microsoft.Reporting.WebForms.ReportParameter(param.Name)
ssrsPrm.Values.Add(Nothing)
params.Add(ssrsPrm)

...

Me.ReportViewer1.ServerReport.SetParameters(DirectCast(params.ToArray(GetType(Microsoft.Reporting.WebForms.ReportParameter)), Microsoft.Reporting.WebForms.ReportParameter()))

答案 1 :(得分:0)

这回答from a slightly different问题有帮助吗?如果没有,也许更多代码会有所帮助。

HTH