我正在开发一个c#桌面项目,其中一个模块用于显示SSRS报告。
流程如下: 用户按下按钮>提交表格以输入描述&一个URL。然后将这两个值写入文本文件。 然后用户按下第二个按钮,使用WebKit.Net浏览器打开一个新表单。在页面顶部是包含描述的下拉列表,用户选择描述并按下确定。 - 然后导航到与该描述相关联的URL。
这一切都适用于http://www.google.com
等网站但是,当我输入SSRS报告管理器URL时,它就会失败。 -IE)它不再导航,没有错误,没有任何东西。只是一个白页。
我的SSRS网址为:http://server:8080/Reports_SQLEXPRESS/Pages/Folder.aspx
我知道Webkit.Net是一个Chrome包装器,所以我在Chrome中测试了我的Report Manager,它运行正常。 (我承认一些有限的功能,但足以满足我的需要。)
我也尝试使用Visual Studio中包含的默认WebBrowser控件 - 这是有效的,但是当我下载PDF报告时,由于URL而出现脚本错误:
Http://username:password@UrlGoesHere
然而,这是我通过我的程序访问报表服务器的唯一方法,因为它使用当前用户Windows凭据。 - 使用我的应用的用户无法访问报告管理器,因此需要我的网址包含我的凭据。
我是否有合适的包装器可以用于SSRS?我需要能够运行报告,仅限导航到加载的URL并能够下载报告。 - 我没有能力写自己的技能。
private void button1_Click(object sender, EventArgs e)
{
Address = comboBox1.SelectedValue.ToString();
MessageBox.Show(Address);
this.webKitBrowser1.Url = new System.Uri(Address, System.UriKind.Absolute);
}
我也尝试过使用:WebBrowser1.Navigate();
函数 - 它仍然没有加载报表服务器页面。
答案 0 :(得分:1)
嗯,看起来最好用的东西毕竟不是浏览器!
对于那些遇到类似问题的人来说:ReportViewer就是答案!
它是VS的一个预先包含的控件,(但是你可能必须将程序集更新到版本11,否则控件将作为一个组件添加,出于某些奇怪的原因......可以找到有关如何执行此操作的详细信息Here)
此控件与SQL Report Manager本身使用的报表查看器完全相同。另外,您可以设置凭据,而无需担心用户看到它们!