C# 通过GetItemParameters设置DefaultValues传递参数值
我有一个自定义网络表单来创建SSRS订阅。为了确定是否存在默认复选框以及是否选中该复选框,我对Parameter.DefaultValues进行了采样。如果Param.DefaultValues==null,则不创建默认复选框 在处理级联参数依赖关系时,我多次调用GetItemParameters,每次调用都是在为依赖关系设置ParameterValue之后进行的。但是,我注意到,当我在参数a中选择一个值时,参数B依赖于该值,将该值填充到ParameterValue数组并传递给GetITemParameters实际上是为参数a返回一个defaultvalue[0],并用所选值填充该值。。这将显示默认值选项 我找不到任何文档说明这是一项功能,这里有没有人能帮助我理解为什么为一个没有默认值的参数创建默认值 这里要显示的代码太多了,所以我会尽量减少它 参数A分支没有默认值 参数B管理器没有默认值,取决于参数A的选定值C# 通过GetItemParameters设置DefaultValues传递参数值,c#,reporting-services,C#,Reporting Services,我有一个自定义网络表单来创建SSRS订阅。为了确定是否存在默认复选框以及是否选中该复选框,我对Parameter.DefaultValues进行了采样。如果Param.DefaultValues==null,则不创建默认复选框 在处理级联参数依赖关系时,我多次调用GetItemParameters,每次调用都是在为依赖关系设置ParameterValue之后进行的。但是,我注意到,当我在参数a中选择一个值时,参数B依赖于该值,将该值填充到ParameterValue数组并传递给GetITemPa
SetParamValues(Parameters); //Params do not have DefaultValues after this call
Parameters = _Rs.GetItemParameters(_ThisReportPath, null, true, _ParamDependenciesValues, null); //Param A now has a default value = selectedValue
protected void SetParamValues(ItemParameter[] Params)
{
foreach (ItemParameter Rp in Params)
{
if (Rp.Dependencies != null)
{
foreach (var d in Rp.Dependencies)
{
var MyParamValue = _ParamDependenciesValues.FirstOrDefault(c => c.Name == d);
if (MyParamValue == null)
{
Array.Resize(ref _ParamDependenciesValues, _ParamDependenciesValues.Count() + 1);
var MyNewParamValue = new ParameterValue {Name = d};
_ParamDependenciesValues[_ParamDependenciesValues.Length - 1] = MyNewParamValue;
MyParamValue = _ParamDependenciesValues.FirstOrDefault(c => c.Name == d);
}
if (_Dependencies.Contains(d))
{
if (MyParamValue != null && _Dependencies[d] != null)
MyParamValue.Value = _Dependencies[d].ToString();
}
}
}
}
}
_依赖项只是一个包含键值对的哈希表
编辑:
仍在寻找解决这一问题的捷径。在创建默认复选框之前,我添加了一个黑客解决方案,检查参数是否具有依赖性。但是,这现在导致@StartDate和@EndDate参数出现问题,因为@EndDate参数显然依赖于@StartDate-即使这两个默认值都基于公式,例如今天的=DateAddd,-14。因此,在我的解决方案就绪的情况下,我无法为@EndDate选择默认值