将多值参数传递给SSIS的SSRS报告

时间:2014-07-14 09:49:09

标签: ssis

我从SSIS(脚本任务)触发SSRS报告。我从SSIS包传递参数值。

到目前为止工作正常。现在,我有一个包含2个参数的报告。一个是单值参数,另一个是多值参数。

没有问题为单值参数赋值。但是如何将多值传递给多值参数呢?

我的代码如下

ReportExecutionService rs = new ReportExecutionService()
rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
rs.Url = _webserviceURL;
rs.LoadReport(_reportPath, null);

ParameterValue[] paramval = new ParameterValue[2];
paramval[0] = new ParameterValue();
paramval[0].Name = "CountryCode";
paramval[0].Value = _countryNames;

paramval[1] = new ParameterValue();
paramval[1].Name = "BusinessCode";
paramval[1].Value = _businessCode;

rs.SetExecutionParameters(paramval, "en-us");

我不确定如何将值传递给BusinessCode(多值参数)

1 个答案:

答案 0 :(得分:1)

您需要使用List传递多个参数,例如 - List<RSExec.ParameterValue> lstParameterValues = new List<RSExec.ParameterValue>();,然后迭代列表

    RSExec.ParameterValue aParameter = new RSExec.ParameterValue();
aParameter.Name = "Year";
aParameter.Label = "";
aParameter.Value = "2010";
lstParameterValues.Add(aParameter);

RSExec.ParameterValue aParameter = new RSExec.ParameterValue();
aParameter.Name = "Year";
aParameter.Label = "";
aParameter.Value = "2011";
lstParameterValues.Add(aParameter);

int index = 0;
RSExec.ParameterValue[] parameterValues = new RSExec.ParameterValue[lstParameterValues.Count];
foreach (RSExec.ParameterValue parameterValue in lstParameterValues)
{
  parameterValues[index] = parameterValue;
  index++;
}

然后使用该数组调用SetExecutionParameters

下面的文章有代码示例来完成相同的操作。

Running Multi-Value SSRS Reports from C#