Ok, for a multi-value parameter you need to create one ReportParameter.SingleValue for each value in the multi-select list and add each of them to the parameter. Here's some sample code that I found:
if(boReportObjects.Count > 0)
{
boReportObject = boReportObjects[1];
boReport = (Report)boReportObject;
//Grab the parameters off of the report object
boParameters = boReport.ReportParameters;
//Loop through all parameters, checking for parameter type
foreach(ReportParameter boParameter in boParameters)
{
if(boParameter.SupportsRangeValues == true)
{
//set the Range parameter value
//in this case we are doing a number range
boParamValue = boParameter.CreateRangeValue();
boParamValue.RangeValue.FromValue.Value="10";
boParamValue.RangeValue.ToValue.Value = "20";
//set whether boundries are inclusive or exclusive
//of the range values
boParamValue.RangeValue.IncludesLowerBound = true;
boParamValue.RangeValue.IncludesUpperBound = true;
boParameter.CurrentValues.Add(boParamValue);
}
else
{
switch(boParameter.ValueType)
{
case CeReportVariableValueType.ceRVBoolean:
boParamValue = boParameter.CreateSingleValue();
boParamValue.SingleValue.Value = "true";
boParameter.CurrentValues.Add(boParamValue);
break;
case CeReportVariableValueType.ceRVCurrency:
boParamValue = boParameter.CreateSingleValue();
boParamValue.SingleValue.Value = "33333";
boParameter.CurrentValues.Add(boParamValue);
break;
case CeReportVariableValueType.ceRVDate:
boParamValue = boParameter.CreateSingleValue();
boParamValue.SingleValue.Value = "Date(2005,08,19)";
boParameter.CurrentValues.Add(boParamValue);
break;
case CeReportVariableValueType.ceRVDateTime:
boParamValue = boParameter.CreateSingleValue();
boParamValue.SingleValue.Value = "DateTime(2003,8,6,0,0,0)";
boParameter.CurrentValues.Add(boParamValue);
break;
case CeReportVariableValueType.ceRVNumber:
boParamValue = boParameter.CreateSingleValue();
boParamValue.SingleValue.Value = "10524";
boParameter.CurrentValues.Add(boParamValue);
break;
case CeReportVariableValueType.ceRVString:
boParamValue = boParameter.CreateSingleValue();
boParamValue.SingleValue.Value = "USA";
boParameter.CurrentValues.Add(boParamValue);
//this parameter can accept multiple values
boParamValue = boParameter.CreateSingleValue();
boParamValue.SingleValue.Value = "Canada";
boParameter.CurrentValues.Add(boParamValue);
break;
case CeReportVariableValueType.ceRVTime:
boParamValue = boParameter.CreateSingleValue();
boParamValue.SingleValue.Value = "Time(12,15,15)";
boParameter.CurrentValues.Add(boParamValue);
break;
}
}
}
-Dell