URL 在 SSRS 表达式中使用参数

URL with Parameters in SSRS Expression

我正在尝试通过 SSRS 表达式将一些参数动态传递给 URL。这很好用:

="javascript:void(window.open('"+ Fields!ReferURL.Value + "','_blank'))"

我还尝试使用一些参数来增强目标 URL,效果也很好。但问题是我的参数值有 "Spaces" 和 "Ampersands",我需要分别用“%20”和“%26”替换它们。但是嵌套的替换函数似乎不起作用,我在 URL 中仍然有 "Spaces" 和 "Ampersands" 我不想要的。

我的表情是:

="javascript:void(window.open('"+ "https://www.somewebsite.com/page1.html?site=" + Replace(Replace(Parameters!Site.Value," ","%20"),"&","%26") + "&division=" + Replace(Replace(Parameters!Division.Value," ","%20"),"&","%26") + "&rptdate=" + Replace(Replace(Parameters!ReportDate.Value," ","%20"),"&","%26") + "&rptname=" + First(Fields!ReportName.Value, "DS_Commentary") + "','_blank'))"

有人可以帮忙吗?

尝试转义您的 URL 而不是替换每个保留字符:

="javascript:void(window.open('"+
System.Uri.EscapeDataString("https://www.somewebsite.com/page1.html?site=" +
Parameters!Site.Value + "&division=" + Parameters!Division.Value + "&rptdate=" + 
Parameters!ReportDate.Value + "&rptname=" + 
First(Fields!ReportName.Value, "DS_Commentary")) + "','_blank'))"