glo*_*uin 28 sql-server parameters reporting-services ssrs-2008
我有一个包含大约10个参数和大约10个数据集和一个数据源的报告.我打字很多,但我真的需要帮助所以我想我会尝试提供尽可能多的关于问题的信息,因为我可以从一开始.
让我们简化一切,并假装这些是所有内容的相关名称,并且报告获得基本的员工信息:
问题:
SSRS说viewOption不存在.但我在左侧的Parameters文件夹中看到了它.当我在参数下输入表达式时,我看到了它.参数!viewOption.value下没有波浪形的红线.但是,当我尝试将其作为getListOfNames数据集使用的参数的值时,它会出错.如果我把它放在getReportInfoOnSelectedPerson数据集中并以完全相同的方式使用它,SSRS就可以了.跆拳道?所以...我已经检查了rdl,一切都很好(声明了实际参数,在数据集引用中使用它,所有内容).它只是这一个数据集.我有一个类似的报告,使用相同的数据集,相同的基本参数和报告是好的.我尝试将dataset参数的值设置为1或者其他,这很好但是当我尝试将其设置为Parameter!viewOption.value时它出错.....现在,上面我说我通常传递存储的proc一个Join在带有波浪号的参数上〜但是我试图保持它简单,或者让它只是通常工作(通过传递多值viewOption参数的第一个值或将该参数转换为单个选择并且只是传递.但是连接也不起作用.所有这些都适用于其他数据集,这也是一个存储过程.
这是我的错误:
报告处理期间发生了错误.(rsProcessingAborted)查询参数"@viewOption"的Value表达式包含错误:表达式引用了报表参数集合中的不存在的参数.(rsRuntimeErrorInExpression)
这显然是说我的参数不存在,但我可以看到它...到处都是.如果我将其他数据集中的一个参数值分配给viewOption参数,则它可以正常工作而不会出现错误.我检查了rdl.
我之前遇到过这个问题,通过删除参数和数据集并再次创建它们来修复它(为了安全起见,我重命名了它们).这次没办法.
我很沮丧.请帮忙....
码?
<DataSet Name="getListOfNames">
<Fields>
<Field Name="personID">
<DataField>PersonId</DataField>
<rd:TypeName>System.Guid</rd:TypeName>
</Field>
<Field Name="name">
<DataField>name</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
</Fields>
<Query>
<DataSourceName>myDataSource</DataSourceName>
<CommandType>StoredProcedure</CommandType>
<CommandText>getListOfNames</CommandText>
<QueryParameters>
<QueryParameter Name="@fac">
<Value>=join(Parameters!fac.Value,"~")</Value>
</QueryParameter>
<QueryParameter Name="@bldg">
<Value>=join(Parameters!bldg.Value,"~")</Value>
</QueryParameter>
<QueryParameter Name="@unit">
<Value>=join(Parameters!unit.Value,"~")</Value>
</QueryParameter>
<QueryParameter Name="@station">
<Value>=join(Parameters!station.Value,"~")</Value>
</QueryParameter>
<QueryParameter Name="@startDate">
<Value>=Parameters!startDate.Value</Value>
</QueryParameter>
<QueryParameter Name="@endDate">
<Value>=Parameters!endDate.Value</Value>
</QueryParameter>
<QueryParameter Name="@viewOption">
<Value>=Join(Parameters!viewOption.Value, "~")</Value>
</QueryParameter>
</QueryParameters>
<rd:UseGenericDesigner>true</rd:UseGenericDesigner>
</Query>
</DataSet>
<ReportParameter Name="viewOption">
<DataType>String</DataType>
<DefaultValue>
<Values>
<Value>1</Value>
</Values>
</DefaultValue>
<Prompt>View</Prompt>
<ValidValues>
<DataSetReference>
<DataSetName>viewOptionQuery</DataSetName>
<ValueField>value</ValueField>
<LabelField>label</LabelField>
</DataSetReference>
</ValidValues>
<MultiValue>true</MultiValue>
</ReportParameter>
<DataSet Name="viewOptionQuery">
<Fields>
<Field Name="label">
<DataField>label</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="value">
<DataField>value</DataField>
<rd:TypeName>System.Int32</rd:TypeName>
</Field>
</Fields>
<Query>
<DataSourceName>flamingo</DataSourceName>
<CommandText>select 'Other Facility' as label, 3 as value union select 'Past' as label, 2 as value union select 'Current' as label, 1 as value order by value</CommandText>
<rd:UseGenericDesigner>true</rd:UseGenericDesigner>
</Query>
</DataSet>
Run Code Online (Sandbox Code Playgroud)
这就是它的设置方式,getListOfNames是错误抛出的原因,如果我改变的话
<QueryParameter Name="@viewOption">
<Value>=Join(Parameters!viewOption.Value, "~")</Value>
</QueryParameter>
Run Code Online (Sandbox Code Playgroud)
至
<QueryParameter Name="@viewOption">
<Value>="1~2"</Value>
</QueryParameter>
Run Code Online (Sandbox Code Playgroud)
然后它工作....或者值可以只有1或1~2~3
但是......当我尝试将join(参数!viewOption.value,"〜")作为另一个数据集的查询参数的值时,它可以工作并且没有错误.
<DataSet Name="getReportInfoOnSelectedPerson">
<Fields>
<Field Name="name">
<DataField>name</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="Building">
<DataField>Building</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="Unit">
<DataField>Unit</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
<Field Name="desc">
<DataField>desc</DataField>
<rd:TypeName>System.String</rd:TypeName>
</Field>
</Fields>
<Query>
<DataSourceName>myDataSource</DataSourceName>
<CommandType>StoredProcedure</CommandType>
<CommandText>Reports_BasicInfo</CommandText>
<QueryParameters>
<QueryParameter Name="@personID">
<Value>=Parameters!personID.Value</Value>
</QueryParameter>
<QueryParameter Name="@numberINeedToAggregateData">
<Value>=Join(Parameters!viewOption.Value,"~")</Value>
<rd:UserDefined>true</rd:UserDefined>
</QueryParameter>
</QueryParameters>
<rd:UseGenericDesigner>true</rd:UseGenericDesigner>
</Query>
</DataSet>
Run Code Online (Sandbox Code Playgroud)
我已经说过了,但是抛出错误的存储过程/数据集在大约5个其他报告中使用了相同设置的参数(我尝试从工作报告中复制并粘贴相关代码段但我仍然得到错误) .那么,这个有什么问题?
log*_*ist 22
我发现在我的情况下,它实际上是参数名称外壳略有改变,它抛出同样的错误.
我不得不将名称更改为正确的大小写,然后在后面的代码中搜索引用该参数的任何内容并更正其大小写.之后部署好了.
| 归档时间: |
|
| 查看次数: |
64108 次 |
| 最近记录: |