除了强大的统计汇总功能外,润乾报表3.0还提供了丰富实用数据填报功能。而填报能力在国内的应用中是非常常见的,而传统工具完全不支持填报能力。
1.填写控制
润乾报表的填报表提供了丰富的填写控制,在HTML中根据设计的规则生成相应的JavaScript代码实现。
·可填控制:某单元格是否可以填写(或被修改)
·编辑风格:单元格的编辑方式,目前支持如下几种
◆ 文字编辑框,密码编辑框
◆ 复选框
◆ 下拉选择框,下拉内容可以是常数序列,也可以是来自数据库的列表
◆ 图片或文件的上载
·自动计算:某些单元格是由其它单元格运算而成的,当基础单元格的数据被修改时,目标单元格的数据自动跟随改变,计算公式在设计时设定好
·合法性检查:考察数据填写是否合理,某单元格的数据类型是否匹配(如在数字格中填入了非数字字符),单元格之间必须满足的数据校验关系(如某格的数据必须大于另一格的数据);合法性检查有两种:
◆ 即时检查:填写当前格,输入焦点离开该格时进行检查,若校验不满足则不得离开焦点
◆ 提交检查:全部填完后在提交数据前进行检查,校验不满足则不得提交
设计者还可以设置校验不满足时的提示信息,以提示用户出错的原因。
2.数据模型
润乾报表3.0支持如下三种基本填报表样:
·自由式表格:整表对应一条记录,各字段分布在多个无规律的单元格中,如人员的基本情况表;
·行(列)式表格:数据区每行(列)对应一条记录,如人员的履历表,记录的某些字段(一般是主索引码的一部分)会在行外,如人员履历表中的人员编号,这是最常见的表格式样;
·交叉式表格:数据区每格对应一条记录,如学生课程成绩表,左边是学生,上边是课程,数据区是成绩;
润乾报表3.0同时支持以上三种表样的混合,如一张填报表的上半部分是自由式表格、下半部分是行式表格。还可以是更复杂的多页混合的填报表单。
表单数据可以对应数据库中的多个数据表,系统根据要求生成多条SQL语句组成一个事务提交给数据库执行,这样可保证整表数据的一致性。特别地,还允许同一张表单对应不同的多个数据库(如同一张表的不同部分要向不同主管部门的数据库分别提交)。
在设计表单模板时建立了数据库字段与表单单元格之间的对应关系。服务器会根据对应关系生成SQL语句。程序会自动决定生成UPDATE还是INSERT语句,同时会自动判断数据库的类型,在SQL语句中添加相关的数据类型转换函数(如在ORACLE中的日期常数要加TO_DATE,而SQL Server则是CONVERT)。

3.应用方案
除联机填报外,润乾报表还支持离线填报、批量导入及汇总填报等多种应用方案。
·离线填报
润乾报表生成的HTML表单可下载成本地文件中,其中保留了JavaScript代码,因此所有的填写控制均依然有效。用户直接用浏览器打开这些离线HTML即可继续填写数据,填写过程中可以多次保存而不必与服务器有网络连接,填写完成后再联机上传即可将数据提交到服务器的数据库中。离线填报也可以采用导出或用户自行绘制的EXCEL文件进行。
·批量导入
离线用的HTML(或EXCEL)也可不是从浏览器下载而成,而由报表服务器批量生成并采用某种方式(EMAIL、软盘等)分发给填报人,由填报人填好后再收集回来。润乾报表支持批量数据文件导入的功能,配合调度器,可将收集回的报表批量分析将其数据导入到数据库中。
·汇总填报
润乾报表的填报表首先是一个统计汇总表,然后再在其上定义填报属性。统计汇总的数据来源可以和填报的数据目标可以是没有任何关系的,两者可以分别来自完全不同的一些数据表,甚至是不同的数据库!
系统可从某数据库(表)中汇总出一个统计表,然后发布出来填写,用户修改统计结果或填入一些原统计结果中没有的信息,然后再写入另一数据库中。
若汇总出来的统计表中没有可填写的项目,则可用作汇总数据的合法性检查,在提交检查时,系统并不关心是否有信息被填写过,而只是简单地在表格中应用各项合法性检查规则,这样,可以在统计报表上定义一些规则用以检查从各个口径下统计上来的数据是否有误。