ReportViewer가 상대 경로와 하이퍼 링크를 렌더링 할 수 있습니까?
-
03-07-2019 - |
문제
나는 "RelativePath"라는 필드가있는 데이터 소스에 대한 로컬 보고서를 만들었습니다. 내 winforms 앱이 보고서를 렌더링하면 상대 경로 필드에 지정된 위치로 파일을 내 보냅니다. 보고서 빌더에서는 내비게이션 | 하이퍼 링크 조치 | URL로 점프하여 "= fields! elativePath.value"로 점프하고 보고서의 enableHyperLink 속성을 true로 설정합니다. 그러나 내 앱이 보고서를 렌더링 할 때마다 하이퍼 링크가 활성화되지 않습니다. 그러나 URL 로의 점프를 절대 경로로 하드 코딩하면 잘 작동합니다. ReportViewer가 상대 경로와 하이퍼 링크를 렌더링하지 않습니까?
해결책
나는 같은 문제로 어려움을 겪고있다. 그 후 보고서는 보고서가 상대 경로와 하이퍼 링크를 지원하지 않는다는 결론에 도달했다. 이 문제를 해결하는 것은 상대 경로를 검색하는 사용자 정의 코드를 추가 한 다음 URL의 일부가되기를 원하는 필드 값과 동시에입니다.
Shaddie
다른 팁
나는 같은 문제를 겪었다. 이 문제를 해결하기 위해 "AbsolutePath"라는 보고서 매개 변수를 만들었습니다.
.rdlc 파일의 디자인보기로 이동하십시오. "보고서 데이터"탭에는 "매개 변수"노드가 표시됩니다. 마우스 오른쪽 버튼을 클릭하십시오.
- 매개 변수 추가 ...
- 일반 탭에서 이름 속성에 "AbsolutePath"를 입력하십시오.
- "기본값"을 클릭하십시오.
- "값 지정"라디오 버튼을 선택하십시오.
- 새로운 가치 "AbsolutePath"를 추가하십시오.
TextBox의 조치 표현식에서 this = "javaScript : void (window.open ( '" + 매개 변수! AbsolutePath.Value + "/yourpage.aspx?id=" + fields! id.Value + " ','_blank ')") "
새로운 "AbsolutPath"매개 변수가 표현식에 추가 할 수 있음을 알 수 있습니다.
이제 값을 보고서의 매개 변수에 전달해야합니다.
string baseUrl = Request.Url.GetLeftPart(UriPartial.Authority);
var param = new ReportParameter("AbsolutePath", baseUrl);
this.ReportViewer.LocalReport.SetParameters(param);
글로벌 변수 만 사용하십시오 Globals!ReportServerUrl
표현에서
= Globals!ReportServerUrl + "yourpath"