SSRS通过URL调用钻取报表时,表达式参数引发数据集执行失败求助
SSRS钻取报表URL表达式失效问题排查
URL表达式写法错误
不能直接把Lookup表达式片段嵌在URL字符串里,SSRS的钻取URL需要用完整的SSRS表达式语法构建。正确方式是把整个URL作为表达式拼接,用&连接Lookup的结果,而非将Lookup直接放在URL参数位置。正确的表达式示例
改成如下写法:="http://mySSRSServer/ReportServer?/MyFolder/My+Report+Name&QVR_Code=" & Lookup(Fields!QVR_Code.Value & Fields!Date_ID.Value, Fields!QVR_Code.Value & Fields!Date_ID.Value, Fields!QVR_Code.Value, "QVR_List_Dataset")这里整个URL是表达式字符串,通过
&把基础URL和Lookup返回的参数值拼接起来,SSRS会先执行Lookup得到结果,再生成完整的钻取URL。参数值的URL编码问题
如果QVR_Code包含空格、&、=这类特殊字符,直接拼接会导致URL参数解析错误,需要用URLEncode函数处理返回值:="http://mySSRSServer/ReportServer?/MyFolder/My+Report+Name&QVR_Code=" & URLEncode(Lookup(Fields!QVR_Code.Value & Fields!Date_ID.Value, Fields!QVR_Code.Value & Fields!Date_ID.Value, Fields!QVR_Code.Value, "QVR_List_Dataset"))验证Lookup表达式的有效性
先在主报表里加个临时文本框,把Lookup表达式放进去预览,确认它能返回正确的QVR_Code值。如果Lookup返回空或者错误值,钻取报表拿到无效参数自然会触发数据集查询失败。
内容的提问来源于stack exchange,提问作者142041
相关产品推荐
相关产品推荐

