65.9K
CodeProject 正在变化。 阅读更多。
Home

为州政府应用程序提供强大的电子表格

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.21/5 (6投票s)

2008年7月2日

CPOL

9分钟阅读

viewsIcon

43972

FarPoint Technologies 的 Spread 提供了比普通网格更强大、比 Excel 更具可定制性的电子表格功能。

执行摘要

桌面应用程序正变得越来越强大,华盛顿州劳工与工业部 (L&I) 对数据处理有着非常严苛的需求。除了对用户界面的易用性要求外,该部门还需要为其应用程序提供后端计算能力。L&I 需要报告的数据量不断增加,并且这些数据必须易于部门内多个部门的几名人员进行管理和阅读。

处理 Excel 文件、提供易于学习和使用的界面,以及快速处理大量数据,只是项目团队在应用程序开发中面临的一些要求。

团队找到了一个提供卓越电子表格功能解决方案。该解决方案比 Excel 更强大、更具可定制性,同时对用户来说仍然很熟悉。该工具与 L&I 的 Visual Studio 开发环境无缝集成。我们数据分析强大功能的引擎是 FarPoint Technologies 的 Spread for Windows Forms 电子表格功能。

背景

华盛顿州劳工与工业部 (L&I) 是一个多元化的州政府机构,致力于保障华盛顿州 320 万工人的安全、健康和保障。L&I 通过在接到危险警报时视察工作场所,帮助雇主达到安全和健康标准。作为州工伤赔偿系统的管理者,L&I 类似于一家大型保险公司,为遭受工伤或职业病的工人提供医疗和有限的工资损失赔偿。L&I 的规则和执法计划还有助于确保工人获得应有的报酬,限制儿童和青少年的工作时间,并保护消费者免受不良建筑实践的影响。

华盛顿州的雇主必须根据其员工所从事的工作类型和工作总时长向 L&I 支付工伤保险费。L&I 设有现场审计部门,负责审计已支付的保费以及已向 L&I 报告的工作时长,并有权处以罚款。现场审计部门还负责对未注册或在华盛顿州非法经营的企业进行审计和罚款征收。

经州立法机构批准,该机构的目标是替换现有的系统——一个由十多年历史的、非集成的应用程序和实用程序组成的集合。该应用程序的名称是 FACT - Field Audit Computer Technology(现场审计计算机技术)。该应用程序支持现场审计人员收集、整理、报告和传播数据,以支持审计活动。它整合了来自该部门内部以及华盛顿州其他州政府机构的服务器和大型机的信息,从而为审计员提供了一个关于企业已向相关州政府机构报告(或未报告)内容的完整视图。该应用程序允许审计员根据雇主自身的记录、工时卡、支票簿等添加数据。通过这些数据,可以做出相当完整的评估。此外,该应用程序还将通过提供诉讼审计摘要信息和审计跟踪来支持部门的法律事务。

原始应用程序设计

该应用程序的第一个版本使用 Microsoft Visual Basic .NET (2005) 编写,包含许多部分,包括两个前端(一个 Windows Forms,另一个基于浏览器)、一个后端数据吸收引擎(打包前端所需的数据)以及一个后端数据集成引擎(在前端不了解或不关心数据来源是本地 SQL 服务器、网络 SQL 服务器、大型机、消息队列还是 Web 服务的情况下提供数据访问)。

该应用程序的主要数据录入机制是 Microsoft Excel,作为托管组件运行。需要注意的是,Microsoft 不推荐此方法。Microsoft Consulting Services 被引入,并推荐了一个不受支持的 C++ 组件 (DSOFramer) 来协助托管。

应用程序已发布到生产环境,但 Windows Forms 前端性能不佳。Excel 在托管环境中未能如预期那样运行。事件未传播到托管应用程序,重新计算未正确触发,并且性能远低于要求水平。例如,一个包含极少数据的典型首次审计加载需要近 40 秒。这是一个需要不同解决方案的限制。数据处理能力是整个应用程序的主要目的。

HIS Consulting Services 被聘请调查性能和用户界面交互问题,并协助开发解决方案。除了提供能够处理数据的内容外,我们还努力使应用程序易于用户接受并能够高效工作。这并非易事:我们面对的是 200 多名用户,他们的主要关注点是收集来自雇主的数据,而不是存储数据的技术细节。他们习惯于以分散和自由格式通过 Excel 存储数据,并且从未有过支持其端到端业务流程的集成应用程序。

更好的解决方案

从这个新阶段开始,项目团队确定必须用一个更强大的解决方案取代 Excel 集成。现有的 .NET GridView 控件在没有大量子类化和重构的情况下无法达到所需性能。这个决定促使我们寻找第三方组件。至少,该组件必须能够读取和写入 Excel 文件,支持公式,支持多种单元格类型,提供颜色、字体、单元格跨越等定制功能,并能够向宿主类公开数据更改事件,而无需笨拙的解决方法和互操作覆盖。此外,该组件必须易于学习,因为它在获得后必须非常快速地实现。L&I 对可以集成到其应用程序基础设施的内容有非常严格的要求。基于这些要求,我们将研究范围缩小到市场上四种领先的电子表格控件。经过两周的评估期,很明显,FarPoint Spread for Windows Forms 是毫无疑问的赢家。在易用性、易实现性、成本、灵活性、文档和基于 Web 的支持方面,没有其他产品能与之媲美。

接下来要做的就是从应用程序中移除 Excel,并创建一个包含多个 FarPoint Spread 控件的新 View 类。移除 Excel 大约花了三天时间,而 FarPoint Spread 的初步“粗略搭建”又花了额外两天时间。初步开发包括控件布局、激活、事件挂钩和初步颜色设置。粗略搭建完成后,我们启动了应用程序,只是想看看加载性能如何。我们非常惊喜地看到,典型的 40 秒加载时间缩短到了 4 秒以下。此外,我们加载了一个我们最大的审计,平均加载时间约为 90 多秒,令人欣喜的是它在不到 10 秒内加载完成。这告诉我们,控件的最大开销是我们的自定义初始化,而不是数据加载。

以前需要一天或更长时间才能完成的功能修改,现在只需几分钟即可编码完成,再花几分钟进行测试。由于 FarPoint Spread 是一个真正的 .NET 组件,因此没有“意外”交互、未知事件或失败的事件触发。

用户界面的每一页都由一个 Spread 实例(工作表)实现。下面显示了构成用户界面的某些工作表的屏幕截图。

Adjustment Report Sheet of the Audit Workbook

图 1. 审计工作簿的调整报告表

三个工作表用于数据录入,三个用于输入数据的汇总,六个用于汇总评估,一个用于图例显示,两个用于标题,一个用于报告预览打包。三个数据录入工作表包含计算以及基于多单元格内容的数据库查找事件处理,而九个汇总工作表则通过任何数据录入更改的事件处理而相互关联。

Reported Hours Sheet of the Audit Workbook

图 2. 审计工作簿的报告工时表

Check Register Sheet of the Audit Workbook

图 3. 审计工作簿的支票登记表

该控件内置支持剪切和粘贴 (Ctrl+C, Ctrl+V)、日历弹出和计算器弹出,节省了代码生成以及开发和测试时间。支持从外部源进行拖放,并带有专门的拖放处理程序,以便在将数据并入每个数据录入工作表之前进行预验证。为了加快拖放处理速度,在拖放操作期间会禁用事件处理程序,仅在数据已验证、应用和汇总后重新启用。在测试过程中,将 1,400 行数据块拖放到“其他审计工时”表上,整个拖放、验证、合并和汇总过程不到一秒钟!我们是否提到了这个控件的速度有多快?

Other Audited Hours Sheet of the Audit Workbook

图 4. 审计工作簿的其他审计工时表

Print Preview of Summary Adjustment Sheet

图 5. 汇总调整表的打印预览

所有这些都在不到 50 个工作日内完成,同时保护了数据完整性,最大限度地减少了应用程序修改,并响应了(有时令人恼火的)用户请求。我们的生产部署取得了巨大成功,该应用程序已从“待淘汰”的名单晋升为“我们投资组合中的一项出色补充”名单。

结论

FarPoint Spread 为该机构节省了大量的持续开发和维护时间,同时在 Microsoft Office 2007 部署到所有部门计算机时,也避免了员工可能面临的、未知的兼容性问题。Microsoft 没有迹象表明托管 Excel 在 2007 版本中会更好,也没有保证 Excel 2007 作为托管组件的功能会与 Excel 2003 类似。鉴于即将到来的 Office 2007 部署以及该机构内即将到来的 Microsoft Windows Vista 部署,使用 FarPoint Spread 成功地降低了对机构审计人员工作停顿的风险,同时赋能了审计员,并将谈话从“……这根本行不通……”转变为“……这太棒了。现在我们想添加……”。选择 Spread 满足了我们的性能要求,并加速了应用程序开发。

这种成功正在被推广,因为该机构目前正在审查适用于 ASP.NET 的 FarPoint Spread(Web Forms 组件),用于另一个具有面向公众的数据采集要求的项目。

最后,我们想指出,我们并没有充分利用 FarPoint Spread 的全部功能。通过我们新应用程序中集成的 Spread,我们才刚刚触及到我所遇到过的最令人印象深刻、最灵活、最强大的组件之一的表面。

查找更多信息

您可以轻松地从 FarPoint 网站下载免费试用评估版,亲身体验开发具有电子表格功能的应用程序是多么容易。

关于 FarPoint

无论您是为 Web 还是独立的 Windows 应用程序开发,FarPoint 都有适合您的 Spread 版本,并且可在您需要的环境中免费部署。FarPoint 提供企业级电子表格解决方案。访问 FarPoint Technologies 网站了解更多信息。

© . All rights reserved.