现在,所有的设置都已经弄好,你可以声明一个字节数字对象,调用Render() method然后保存结果到一个文件: Byte[] results = rsExec.Render(format, deviceInfo, out extension, out mimeType, out encoding, out warnings, out streamIDs); FileStream stream = File.OpenWrite(fileName); stream.Write(results, 0, results.Length); stream.Close(); ……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
现在,所有的设置都已经弄好,你可以声明一个字节数字对象,调用Render() method然后保存结果到一个文件:
Byte[] results = rsExec.Render(format,
deviceInfo, out extension,
out mimeType, out encoding,
out warnings, out streamIDs);
FileStream stream = File.OpenWrite(fileName);
stream.Write(results, 0, results.Length);
stream.Close();
在许多业务场景中,编程实现报表绘制是十分有用的。尽管SSRS中的Report Manager应用可以导出报表,但是想象一个报表有五个参数,每个参数都要一个或几个值,你需要手动地将所有可能的组合都导出来,然后再将它们在网络中保存为Excel文件。这是个很复杂的过程。
以上我所展示的代码可以使你开发出一种自动化解决方案,你需要的时候就可以安排执行。其他潜在的用途就是自动报表存档,或强制将报表加载到执行缓存中。
另一种可能性涉及到在命令提示符中生成报表。SQL Server Reporting Services中包含一个脚本环境,叫做RSS。它允许你从RSS文本文件中调用SOAP API,它还允许你传递需要的参数。
尽管RSS脚本的初衷是进行报表自动化管理,但是它还可以用来进行报表的绘制。RSS只支持VB.NET,因此下面的代码就是VB.NET的。它告诉你如何为Main() method编写代码,来连接ReportExecution2005终端,将报表以Excel文件方式呈现并保存在本地磁盘上:
Public Sub Main() Dim format as string = "EXCEL" Dim fileName as String = "C:tempreportsProduct Line Sales.xls" Dim reportPath as String = "/AdventureWorks 2008 Sample Reports/Product Line Sales 2008" ' Prepare Render arguments Dim historyID as string = Nothing Dim deviceInfo as string = Nothing Dim extension as string = Nothing Dim encoding as string Dim mimeType as string Dim warnings() AS Warning = Nothing Dim streamIDs() as string = Nothing Dim results() as Byte rs.LoadReport(reportPath, historyID) results = rs.Render(format, deviceInfo, extension, _ mimeType, encoding, warnings, streamIDs) ' Open a file stream and write out the report Dim stream As FileStream = File.OpenWrite(fileName) stream.Write(results, 0, results.Length) stream.Close() End Sub |
将以上代码粘贴在记事本中并存储为Render Report.rss,你可以在DOS中执行它:
rs -i "c:tempreportsRender Report.rss" -s "http://servername/ReportServerName" -e Exec2005
请记住“-e”参数与“Exec2005”值是必需的,否则你将无法连接到管理终端,并会接收到错误信息,因为Render() method是在execution终端。同时还要注意与.NET代码的不同,RSS中的rs变量没有声明,RSS脚本host将自动设置它为一个终端。
作者
翻译
相关推荐
-
云端SQL Server高可用性最佳做法
与内部部署相比,在云端运行SQL Server可为数据库软件用户提供更多的灵活性和可扩展性,也可能更省钱。但云 […]
-
绘制数据关系图的利器:SQL Server 图像数据库工具
SQL Server 2017新增了图形数据库功能,你可以使用图结构来表示不同数据元素之间的关系。
-
如何在Azure部署时选择合适的SQL Server?
想要在Azure上运行SQL Server,企业一般会面临两种选择:在Azure虚拟机上安装SQL Server或使用Azure SQL Database。
-
Linux支持的引入 推动了SQL Server 2016集成服务的发展
随着SQL Server的不断发展,集成服务也在发生相应的变化。在最新的SSIS更新中,增加Linux支持和SQL Server 2016升级向导。