Reporting Service报表开发
项目中需要用到报表,经过技术验证和成本方面的考虑,最后决定使用Reporting Service,因此在这里把开发中的一些故事记下来,以备后用。
开发环境:VS2005,SQL SERVER 2005 SP3,这里说下为什么要用SP3,安全问题嘛,呵呵,如果用SP2,就会出现报表无法打印,报的错误是“无法加载客户端打印控件”,升级成SP3就OK了。
一、 中国式报表#
对于形如Grid的这种表格,用RS来做超级简单,直接拖拽个表格就OK了。难的是中国式报表,比如下面这个:
直接用表格来做比较麻烦,用矩阵来做的话,上图中的“其中”又不好画出来。
对这种情况,偷一下懒,先用文本框绘制静态的部分,堆一个表格,然后用表格来显示空具体的数据
最后运行的结果
二、在web中显示报表#
将前面的报表稍微修改下,在数据源里加上一个参数,比如
SELECT top 8 s.SalesOrderID, e.EmployeeID, e.Title, s.SalesOrderNumber, title=@title
FROM Sales.SalesOrderHeader AS s INNER JOIN
HumanResources.Employee AS e ON s.SalesPersonID = e.EmployeeID
这里的@title就是一个参数,需要在运行的时候提供
在web中显示报表可以通过MS提供的ReportViewer控件,
<rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt"
Height="487px" ProcessingMode="Remote" Width="1094px">
<ServerReport ReportPath="/Dynamic Query Tutorial/SmallSchoolBase7" />
</rsweb:ReportViewer>
在控件的标记里可以直接设定报表所在的路径,当然,这些都可以在代码里来实现
比如
ReportParameter parameter = new ReportParameter("title", "test");//添加参数
List<ReportParameter> list = new List<ReportParameter>();
list.Add(parameter);
this.ReportViewer1.ServerReport.SetParameters(list);
this.ReportViewer1.ShowParameterPrompts = false; //不显示参数提示
运行的效果:
关注作者
作者: JadePeng
出处:https://www.cnblogs.com/xiaoqi/archive/2009/05/14/1456919.html
版权:本文采用「署名-非商业性使用-相同方式共享 4.0 国际(欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接) 」知识共享许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了