通过 URL访问ReportingService报表
Reporting Service允许使用url传递相关参数,并打开报表,我试验了一下,可以通过多种rul方式访问这些报表,我现在常用的有两种:
第一种,我是通过查看最终报表属性中的链接推算出来的:
public string GetReportUrl(string strUserID,string BeginDate,string EndDate,string strFolderRoot,string strFolder1,string ReportName )
{
Reports myRp =new Reports();
string strUrl="";
strFolderRoot=myRp.StrToHex(strFolderRoot);
strFolder1=myRp.StrToHex(strFolder1);
ReportName=myRp.StrToHex(ReportName);
//服务器的名称/reportserver?
strUrl=@"http://oareport.test.net/ReportServer?%2f"+strFolderRoot+"%2f"+strFolder1+"%2f"+ReportName+"&";
strUrl=strUrl+"BeginDate="+BeginDate+"&EndDate="+EndDate+
"&UserID="+strUserID+
"&rs%3aClearSession=true&rs%3aCommand=Render&rs%3aFormat=HTML4.0"+
"&rc%3aReplacementRoot=http%3a%2f%2f"+
"oareport.hollysys.net%2fReports%2fPages%2fReport.aspx%3fServerUrl%3d&rc%3a"+
"Toolbar=True&rc%3aJavaScript=True&rc%3aLinkTarget=_blank&rc%3aArea=Report";
return strUrl;
}
另一种是reporting Service 帮助文件中的标准用法:
http://server/virtualroot?[/pathinfo]&prefix:param=value[&prefix:param=value]...n]
而且它还可以根据需要定制页面的格式等,详细情况帮助文件说的很明白,要用的时候参考一下那个就好了。
不过这里要注意,reporting Service 中的url中的汉字必须转换成utf编码才行,因此我的例子中用了StrToHex()这个函数,详细地内容可以参考我的另一篇文章