Я пытаюсь открыть URL-адрес из SSRS, передавая некоторые параметры. Большую часть времени это работает. Но когда параметр содержит «+» и «/», это не сработает.
Пример: если у меня есть Fields!FAMILY.Value = "ACR+", на ссылке появится "ACR+". Но единственный способ добиться этой работы - иметь «+» = %2B. Когда я меняю ссылку на «ACR%2B», ссылка удается открыть по мере необходимости. Я пытаюсь сделать эту глупость, заменяя «+» на «%2B» в коде, но все равно получаю «+» в созданной URL-ссылке...
= "javascript:void(window.open('http://" & "pl-ate/ReportServer/Pages/ReportViewer.aspx?%2fProduct+Reports%2fNPI+Yield+Report&rs:Command=Render" & "&Family = " & Replace(Replace(Fields!FAMILY.Value, "+", "%2B"),"/","%2F") & "&SITE = " & Fields!SITE.Value & "&startTime = " & Format(DateAdd("m", - 3, Today), "yyyy-MM-dd") & " 00:00:00" & "'))"
И вот что я получил от этого:
http://pl-ate/ReportServer/Pages/ReportViewer.aspx?/Product+Reports/NPI+Yield+Report&rs:Command=Render&Family=ACRL+&SITE=DS&startTime=2024-02-16%2000:00:00
Очень стараюсь, но до сих пор понятия не имею... все, что проходит через окно. открытое, остается таким, какое оно есть. %2B все равно оказался со знаком «+» в URL-ссылке :(





В параметрах не так уж много информации о передаче «зарезервированных» символов (например, «&» и «+», которые имели значение в URL-адресе) — многие предлагали кодировать/декодировать, но ничего не работает, потому что все, что передается как %2B, получается как « +» в конце. Надеюсь, это поможет кому-то еще.
Удалось заставить его работать, заменив «+» на %252B. При использовании %252B он передается URL-адресу как «%2B». Итак, он изменил %25 на «%», а «2B» оставил как «2B»;)
Код символа ASCII: 25 = %, 2B = +
Попробуйте использовать javascript encodeURI или encodeURIComponent вместо замены выражения. Developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…