一、利用Cell设计Web表格应用系统开发套件
Cell毕竟还是一个表格组件,只能用单元格位置标示数据,没有数据模型和数据绑定概念,离真正的应用开发还有段距离,我们可以利用Cell设计一套Web表格应用系统开发套件,以下简称Reports套件。该套件分三个相对独立的部分:Reports模板设计工具、Reports浏览器端API,Reports服务器端API。
1、Reports模板设计工具,是一个独立运行的桌面程序,用于设计表格格式和定义数据模型,完成表格单元格与数据项绑定,设计结果存储在一个独立的Reports模板文件,该文件可以被Reports浏览器端API与Reports服务器端API利用来显示表格格式和处理数据模型。根据实际开发需要,Reports模板分三种类型:单记录表、多记录表和主-细表。单记录表用于一次显示和编制一条记录数据,多记录表用于一次显示和编辑多条记录,主-细表用于一次显示和编辑一条主记录和多条明细记录。在模板设计时,可以充分利用Cell强大的格式定义功能,实现HTML元素无法实现的功能。
2、Reports浏览器端API是一套VBScript脚本库(也可以用于vb),它为开发人员在浏览器上实现表格数据处理提供了一套通用接口函数,它以Cellweb为容器,以Reports模板文件为资源,能够实现数据装入、数据采集、数据显示、合法性检查、表格打印和打印预览等功能。开发者只需要调用几个函数就实现如上功能,不需要考虑单元格数据装入、提取、锁定、格式控制等复杂操作,甚至不需要了解Cell提供的上百个函数。
3、Reports服务器端API是一套面向Java的类库(也可以提供针对c#、asp的类库),它由几个Reports模型类和工具类组成,用于解析和处理与Reports模板文件相对应的Reports数据。浏览器端以xml串方式作为一个整体提交表格数据,服务器端程序利用Reports模型类接收表格数据,调用者可以灵活地读取Reports模型类中的数据项值。数据接收后,往往要存储到数据库中,利用Reports工具类可以实现自动存储,不需要写任何sql语句,同样道理,Reports数据与数据库之间的存储、提取、查询、删除等操作,都可以利用工具类完成,不需要开发者写数据库访问程序,而且,在大多数情况下,开发者没有必要再写实体模型类,利用Reports数据模型类就可以了,这样可大大提高编程效率。
三个独立组件分别运行在不同环境下,实现不同的功能,它们之间的联系纽带是Reports模板文件和Reports数据模型,模型文件用xml封装,具备非常好的扩展性。
二、Reports套件应用实例说明
有了Reports套件,开发一个普通的Web表格应用管理系统将变得非常容易。我们就以用java开发一个“客户购物登记表管理”为例,简述利用Reports套件的开发过程。本模块主要功能是帮助用户管理公司客户基本信息及其购物记录。客户基本信息有客户编号、客户名称、登记日期、代理商编号、客户地址、联系电话、客户照片等,购物记录的基本属性有产品编号、产品名称、购买数量、金额等。用户要求能同时编辑客户基本信息和客户购物记录。以下为开发步骤:
1、第一步:设计Reports模板文件
1)利用Reports模板设计工具新建表格文件,类型选用主-细表,定义表格编号和名称,工具首先生成一个空白表格,设计者可以设计表格样式,操作方式类似Excel。
2)定义数据模型,因为该表是主-细表结构,所以需要定义主数据项和明细数据项,数据项类型支持文本、数值、整数、日期、图片、超连接类型,然后把数据项绑定到对应的单元格中,有数据项绑定的单元格是页面程序运行时用于输入和显示数据的单元格;
3)生成建立数据库表使用的sql语句,在数据库中建立对应数据库表。
4)存储表格模型文件。
2、第二步:设计前端jsp页面
我们需要设计两个jsp文件,一个用于新增客户(AddCustomer.jsp),另一个用于编辑已存在客户(EditCustomer.jsp),因为大多数界面元素都已经在Reports模板中定义,jsp文件中的代码非常简单,大多数代码都是标准代码。下面把jsp文件中的几个关键代码片断进行说明。
1)用xml数据岛指定Reports模板文件和数据文件,这些数据都可以由服务器端动态生成。
2)引入Reports浏览器端API脚本库
3)在窗口初始化函数中,装入表格模板和数据,在装入数据后,可以根据需要进行一些设置,例如当编辑记录时,需要设置编码数据项为只读。
以上是利用Reports浏览器端API设计前端页面时用到的主要代码片断,在开发其他页面时,除了xml数据岛的src内容不同外,其他基本不变。
3、第三步:设计后台处理程序
这里用一个java servlet说明实现过程,在servlet中处理来自前端的请求。
接收并存储新增的客户登记数据
为了使用Reports Java API,必须引入com.anyinfo.rport包。
2)接收并存储修改过的客户登记数据
以上示例运行效果见http://218.247.244.164:5000/reporttest/CustomerList.jsp。
这里仅对Reports套件的最基本功能进行了示例说明,还有一些强大、实用的功能在此不再详述,Reports套件已经过多套企业级应用系统的实践,在改进中不断走向成熟。下面是一些典型应用的截图(在IE中运行效果)。
四、结论
总之,利用Cell插件和Reports套件开发Web表格应用系统(也支持用VB开发的桌面系统),使程序设计和界面设计相独立,界面格式甚至数据模型的改变不需要更改程序,而且可以实现复杂的界面控制,必将大大提高软件开发效率和提高用户界面友好性。经过多个项目和用户实践证明,一般可减少30%-60%的开发工作量。
欢迎大家进行技术交流和合作!
来源:CSDN
作者:n1ghtw1sh
链接:https://blog.csdn.net/N1ghtw1sh/article/details/428551