我从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(多值参数)
答案 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
下面的文章有代码示例来完成相同的操作。