一. 用户简介

积成电子股份有限公司是国家重点高新技术企业、国家规划布局内重点软件企业、国家计算机系统集成一级资质企业,主营业务涵盖智能电网、智慧燃气、智慧水务、能源管理信息化、行业信息安全测评,并积极推进智慧城市、水利信息化等领域的信息化应用,是国内技术领先的行业自动化和信息化整体解决方案供应商,拥有青岛积成、积成慧集、华电卓识、上海积成四家子公司。公司于 2010 年 1 月在深圳证券交易所上市,股票代码 002339。

积成电子始终坚持以科技创新为本,主持或参与了 30 余项国家标准或行业标准的制定,取得 40 余项技术专利、100 余项计算机软件著作权,50 余项产品通过省部级科技成果鉴定,获得 20 多项国家、省部级奖项。

积成电子以客户满意的“专家型服务”赢得市场,主要产品遍布全国 31 个省(直辖市/自治区)、300 多个地市,并出口到新加坡、泰国等东南亚国家。

二. 替换 SSRS 的需求背景

我们主要是为客户提供智能电网解决方案,其中有大量电网设备数据需要通过数据交叉汇总的方式输出为报表。从系统 1.0 版本研发至今,一直困扰我们的就是这类复杂报表在创建和运行时遇到的各种莫名其妙的问题,比如:模板设计难度大,甚至有些需求无法实现;数据汇总不正确;不同浏览器查看效果不一样;无法迁移至 Oracle 数据库等。而 ActiveReports 可以很快速的实现这些需求,最终确定使用 ActiveReports 替换 SSRS。

虽然现有系统中使用 SSRS 通过寻找各种替代方案基本满足需求,但是在这次系统升级时提出的新需求再也无法通过 SSRS 实现了,索性我们就开始调研其它的报表控件产品,希望通过新的工具来完全取代 SSRS。

1. SSRS 无法实现中国式复杂交叉数据汇总报表需求
在这次系统升级提出的新需求中,最为典型报表的数据源结构和需求原型如下,看上去一个并没有太大难度的报表需求,我们在使用 SSRS 尝试实现时耗费了近 1 人/月的投入,给系统按时发布带来极大风险,最后我们不得不寻找新的报表控件。

数据源结构:
主要是每月的生产数据。

数据源结构

报表原型:
以下是新增报表通过 Excel 实现的原型,该报表前四列按照【生产方式】、【产品性质】、【所属事业部】、【类别/ TYPE 】进行数据分组,后面两列【月】和【周】根据数据库中的数据动态向右扩展生成列,汇总数据是【QTY】。

使用 SSRS 无法实现的需求就是红框中的部分,数据源中【类别】列数据分为三个类型,【本次机柜数量】、【本次终端数量】和【金额】,但是在数据统计时却需要分别统计,而且在做分组小计时也需要分类小计,这是我们在使用 SSRS 时没能实现的功能。

报表原型

2. SSRS 在 ASP.NET 系统中存在跨浏览器兼容性问题

我相信使用 SSRS 的 Web 系统都遇到了该问题,在 IE8 /9/10/11、Chrome、Firefox 中浏览报表或多或少的出现差异,领导在查看报表时我们不得不先给他安装 IE9 或 10,而我们的产品用户数量本身很大,这个系统实施带来很大难度。

不兼容一:前四列列宽与设计效果不一致,文字全部变为纵向排列

不兼容一

不兼容二:推动滚动条时红框中的列位置错误,浮动到整个报表之上,出现闪屏现象

不兼容二

3. SSRS 与 SQL Server 捆绑,报表无法使用 Oracle 数据库

这也算是 SSRS 最为封闭的一面,一旦和 SQL Server 绑定就再也无法迁移到其他数据库,而随着系统中数据量的急剧增加,我们正在评估使用 Oracle 替换 SQL Server,只是原有几百张报表的迁移工作量就会非常庞大。

4. 遇到产品使用问题,无法获得官方技术支持,更不能提交 Bug

也可能是因为我们的报表大多具有中国式复杂报表的特点,比如:复杂的报表头、复杂的数据公式运算、多级数据分组和小计、数据高亮、数据钻取等,在使用 SSRS 开发过程中,我们遇到的问题不下 100 个,一些常见的问题查查文档,或者百度一下也能解决,再不然就在他们的英文论坛去问,只是时差和语言表达的差异,得到的技术支持效果也不理想。但是因为 SSRS 的一些 Bug 让我们不得不更改原始需求,因为我们得不到官方的及时技术支持,也无法向他们提交产品 Bug,更别说能够及时获得官方的产品补丁。

三. 一波三折的报表控件选型过程

我们的产品选型耗时近一个月,整个过程可谓一波三折,先后评估了两家国内产品,三家国际产品,最终全员同意使用 ActiveReports 替换 SSRS。

在评估 SSRS 的替代产品时,我们综合分析 SSRS 为什么给系统研发带来如此大的困难。首先,SSRS 是一个国际化产品,全球有那么多的用户在使用,其功能本身还是非常强大,我们在做一些常规报表模板设计时还是非常快速,不过,在我们系统中相当一部分报表具有中国式复杂报表的特点,我们的开发工程师都有超过 5 年的 SSRS 使用经验,尽管如此,其根本原因在于我们遇到使用问题时得不到厂商的及时技术支持, 在遇到产品 Bug 时无法提交,更无法获得产品补丁。

鉴于此,在评估新的控件产品时,为了获得更及时的技术支持,首先考虑的国内报表控件。我们评估了国内比较优秀的两个报表控件(这里就不提他们的名字了,因为最终并没有选择他们,嘿嘿!),先后每个产品花费了 2 周左右的时间进行评估,因为都在国内一些技术问题沟通起来也很方便,最后这两个产品在实现报表格式和数据汇总时基本没有问题, 只是在给领导审查时,领导既没有说好也没有说不好,让我们再看看有没有其他工具可以更好的实现这个需求,本身替换 SSRS 就是一个很有风险的决定,在选择替换产品时一定要综合评估、慎之又慎,仅考察某一个功能是否能够实现还远远不够,包括厂商技术实力、产品发展历史、整体功能、易用性、学习成本、技术服务等方面都需要考察,选择一个真正值得长期信赖的产品。

最后,因为国内的优秀产品也就那么两三家,我们就将评估的产品范围扩大到全球范围,为了避免之前使用 SSRS 时遇到的跨国沟通时差和语言问题,我们将需求和之前实现过程中遇到的问题等资料整理之后,通过邮件发送给了三家全球领先的控件产品厂商。值得欣慰的是,第二天早上我们收到了三家厂商的回信,其中两家的内容大概是说您的需求已经收到,我们需要进行研究,如果有进展会给我们回邮件(这样的回复内容和之前 SSRS 的相似,我们就基本知道没多大戏了),另外一家厂商(也就是 ActiveReports )的回复让我们有些意外,除了说需求收到外,还提到中国团队会与我们联系,果然,早上 9:15 收到了葡萄城控件(ActiveReports 厂商名称)销售妹妹的电话,在了解我们的基本情况后,很快为我们安排了技术顾问。

四. ActiveReports 是我们替换 SSRS 最佳的选择

接到技术顾问的电话之后,技术顾问针对邮件中提到的几个需求进行了仔细了解,并在确认所有需求之后,询问我们希望获得什么样的协助。我将实际情况告诉技术顾问:”我们所剩时间只有一周,怎样才能让我们通过 ActiveReports 快速实现该功能,我们之前并没有接触过 ActiveReports 产品“,技术顾问回答”如果您这边有明确的产品原型和数据,可以直接将这些资料发送给我们,我们会为您指派一名资深的技术专家,验证该功能是否可以通过 ActiveReports 实现”。

当天快下班的时候,我们完成了产品原型和原始数据的重新整理工作并发送给技术顾问,双方对原型中的需求做了最终确认。技术顾问并承诺会协调一切技术资源,最晚在明天下午给我们答复 ActiveReports 是否能够实现该需求。

第二天早上我不到 8 点就到公司(比平时差不多早了一个小时),想看看另外两家报表厂商有没有给我们最新的回复,收件箱中只有一封未读邮件,发件时间是昨天晚上凌晨 1 点,稍微有些失落(我以为是另外两家厂商中的一家给我的回信),不过在打开该邮件之后我却非常惊喜,我第一样看到的是以下两张截图。

第一张:使用 ActiveReports 实现的报表预览界面截图

使用 ActiveReports 实现的报表预览界面截图

第二张:使用 ActiveReports 实现的报表设计界面截图

使用 ActiveReports 实现的报表设计界面截图

实现效果比之前评估的两家国内报表产品都要好一些,而且报表模板之简单也有些超出我的期望。我立即将实现效果发送给了领导,领导也表示比较满意,并提到”这个报表控件看上去还不错,可以完全实现我们的功能需求,并希望我继续调研,尽快确定 ActiveReports 是否可以全面解决我们现在遇到的问题。”,我回答道” ActiveReports 报表控件是在全球都数一数二的报表控件,之前没有评估主要是因为产品总部在美国,但是,在我联系他们之后才知道,他们在国内也有很大的产品研发、销售和服务团队。而且,我是昨天快下班时才将需求发给他们,虽然他们口头承诺会协调一切技术人员尽力协助我们,但我以为他们只是随便说说而已,但真没想到他们的技术工程师连夜实现了我们的需求“,最后领导让我赶紧对 ActiveReports 产品及厂商做一个全面的评估,希望能够赶在 2015 年春节之前确定 ActiveReports 是否真的能够替代 SSRS。

在和领导交流完后,我立即与技术顾问进行了电话联系,说明我们对 ActiveReports 产品的实现效果非常满意,但我们面临一个非常实际的问题——我们的技术人员如何快速学习 ActiveReports 产品,技术顾问为我们推荐了售前视频会议。我们的技术人员和领导都参加了这次会议,并看到了这个报表是如何通过 ActiveReports 一步一步实现的,而且整个模板开发用时不到 10 分钟。会后,我们就紧接着对之前评估的两个国内产品、另外两个国际产品和 ActiveReports 做了一个全面的对比,在长达三个小时的会议之后,我们全体赞成使用 ActiveReports 替换 SSRS。

五. 使用 ActiveReports 开发的报表系统正式上线

幸亏年前敲定了使用 ActiveReports 替换 SSRS,并完成 ActiveReports 产品的购买。年后我们在之前报表基础上还添加了数据钻取(红圈所示)和跳转到指定 URL(绿框所示)功能,并在3月上旬完成了系统的上线,目前运行一切正常。

添加了数据钻取(红圈所示)和跳转到指定 URL(绿框所示)功能

六. 赠给阅读此文的朋友

很高兴你看到我分享的选型故事,如果不是亲身经历,我无法想象这项工作的艰难,更不会珍惜这来之不易的现在。所以,请一定花 30 分钟静静的看完此文,这 30 分钟可能节省你 30 人/天的系统研发时间。

最后,分别引用 2014 和 2015 年流行的网络用语表达我此时的心情,我愿意为 ActiveReports 产品强大易用的功能和贴心专业的技术服务点 32 个赞(此文中多次提到的技术顾问,我一直叫他曾老师,后来才知道,他其实是 ActiveReports 产品经理曾健),那么复杂的报表 duang 的一下就开发完成了!!!