专栏首页JadePeng的技术博客Reporting Service报表开发

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;   //不显示参数提示

     运行的效果:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 高效沟通技巧

    高效沟通是工作中的必备技巧,本文为学习总结。 什么是沟通? 沟通是达成共识,理解一致 沟通 VS. 表达 : 沟通是双向交流,而表达是单向 沟通关键在于通,需要...

    JadePeng
  • 图数据库HugeGraph源码解读 (1) —— 入门介绍

    划重点: - 基于TinkerPop3框架,兼容Gremlin查询语言 - OLTP(开源) 与 OLAP(商业版) - 常用图应用支持—— 路径搜索、推...

    JadePeng
  • 管理培训笔记

    同时注意,选择合适人员 - 客观条件 - 人员意愿 + 不会做 + 不能做 + 不想做

    JadePeng
  • 腾讯云秒杀活动

    自2019年4月15起长期有效,每天3场(9:00, 14:00,19:00)秒杀;

    折白
  • ROC分析

    算法工作中,经常要对模型进行评估,由此衍生出很多指标。比如Accuracy、Precision、Recall、F1-score、AUC等等。准确理解各指标的内涵...

    用户2183996
  • Python爬虫之模拟登录拉勾网

    模拟登录想必大家已经熟悉了,之前也分享过关于模拟登录wechat和京东的实战,链接如下:

    用户2769421
  • PyTorch实现Word2Vec

    其中两个必选参数num_embeddings表示单词的总数目,embedding_dim表示每个单词需要用什么维度的向量表示。而nn.Embedding权重的维...

    mathor
  • 记对OpenSNS的一次代码审计

    我在FreeBuf上每天都可以学到很多新思路新技术,感谢这个平台,为了回馈FreeBuf的小伙伴们,写下这篇文章,希望在可以为奋斗在网络安全路上的小伙伴们提供一...

    FB客服
  • AWS 容器三大新品:K8s 发行版,免费镜像库和 “Game Changer”AWS Proton

    上半年,DOIT 发布了《行业云原生应用白皮书》,下半年,阿里云发布《云原生架构白皮书》,腾讯云发布《腾讯云原生路线图手册》,华为云也提出了云原生 2.0 的概...

    米开朗基杨
  • python模块SocketServer

    参考http://my.oschina.net/u/1433482/blog/190612

    py3study

扫码关注云+社区

领取腾讯云代金券