目录

填报属性

 填报属性

本菜单项的功能是用于设置填报表单元格的填报属性。

 编辑填报属性

点击 属性-填报属性 ,或者 右键菜单-填报属性,将弹出数据填报定义界面,如下图所示:

 数据填报窗口

数据填报窗口

切换到“常规”标签页,如上图所示:

  • 填报数据类型

    润乾报表提供了字符串,整数,数值型,日期型,数字串,Email地址,时间型,日期时间八种填报数据类型。可以通过填报数据类型的选择,填报时,系统会检查填入的数据类型是否与设置的数据类型一致。如果录入了不合法的数据,系统会弹出错误信息。

  • 编辑风格

    润乾报表提供了编辑框,密码框,下拉列表框,单选按钮、下拉数据集,下拉视图,复选框,下拉日历,下拉树,下拉视图树,上载文件和自定义等编辑风格。

  • 是否可写

    设置单元格是否可填写。如果该可写属性需要通过表达式动态控制,可在是否可写表达式编辑框中编辑表达式(必须以等号开头)。

  • 自动计算 填报表的有些项不用手动填,而是根据填写的其他项自动计算而来。这时,就需要设计填写时计算表达式。

    自动计算的表达式语法规则全部采用javascript 的语法规则,因此,如果自动计算的逻辑很复杂,不能用简单的表达式描述清楚,您可以在jsp 中写入javascript 函数来计算,然后在自动计算属性中写入该函数。

    自动计算表达式中,如果需要相对引用单元格,即当报表进行扩展时,扩展出来的单元格中对该单元格的引用会随位置相对变化,那么要求这个相对引用单元格写成${Cellx}的格式。比如:${B5}+${C5}

    自动计算可以写在报表首格里,也可以写在行列首格里,也可以直接写在单元格里,具体写在什么地方,可以由客户根据具体的业务逻辑来决定。

    一般来说,写在可扩展单元格中的自动计算,会随着单元格的扩展而被复制,写在不可扩展单元格,则不会被复制。

    如果写在报表首格,该属性则会复制到所有单元格中;

    如果写在行首格/列首格中,该属性则会复制到该行/该列的所有单元格中,如果该行/该列是可扩展的,该属性则复制到扩展出来的行/列的所有的单元格中。

  • 流水号

    在行式填报中,有时会用到流水号,在此可以根据需要编辑流水号的javascript表达式。

    举例:现在有一张显示学生信息的行式填报表,第A列显示的是学生编号。如果在web进行填报时,希望添加一个学生记录,学生编号会自动生成。那么可以在A2单元格设置流水号属性。 


    A2单元格的填报属性,如下图所示: 


    该表达式(++xuehao)的意思是当你添加一行时,该学生的编号为流水号变量xuhao初始值+1。

    [注意] 注意

    流水号变量必须首先在报表属性-流水号标签页中进行定义,请参加流水号定义。

    切换到“更新”标签页,设置更新属性。  


  • 更新属性概述 更新属性是指填报数据更新至数据库表、字段的属性。

    更新属性可以写在报表首格里,也可以写在行列首格里,也可以直接写在单元格里,具体写在什么地方,可以由客户根据具体的业务逻辑来决定。

    一般来说,写在可扩展单元格中的更新属性,会随着单元格的扩展而被复制,写在不可扩展单元格,则不会被复制。

    如果写在报表首格,该属性则会复制到所有单元格中;如果写在行首格/列首格中,该属性则会复制到该行/该列的所有单元格中,如果该行/该列是可扩展的,该属性则复制到扩展出来的行/列的所有的单元格中。

  • 编辑更新属性

    点击更新属性列表右侧的【增加】按钮,可以新增一个更新属性,在更新属性列表中选择“更新方式”,

    更新方式有“更新数据库表”、“用储存过程更新”、“用自定义类更新”、“更新语义表视图”四种。根据选择的更新方式的不同,更新字段列表会发生不同的变化,常用的的更新方式是“更新数据库表”。

    如果选择“更新数据库表”的更新方式,则依次选择数据源,模式,更新表名,然后通过更新字段列表右侧的【增加】按钮,设置更新字段和该字段对应的更新表达式(必须以等号开头)。

    如果某一更新字段对应的更新表达式是数据库函数,该函数中用到了参数,则将该函数中用到的参数用问号表示,然后点击右侧【高级】按钮,在展开的编辑框中,按照问号顺序依次定义对应参数。

    [注意] 注意

    更新字段列表中的“参数”这个属性一般情况可以为默认,但当主键为自动增长时,参数类型必须设置为自动增长。

      

    切换到“校验”标签页,设置填报属性的校验规则。

  • 校验属性概述

    填报表往往需要进行合法性检查,比如:要求在c5单元格里填写的数据为在0到100之间,则可编辑数据有效性表达式为:${C5}>=0&& ${C5}<=100。

    合法性检查属性可以写在报表首格里,也可以写在行列首格里,也可以直接写在单元格里,具体写在什么地方,可以由客户根据具体的业务逻辑来决定。

    一般来说,写在可扩展单元格中的校验,会随着单元格的扩展而被复制,写在不可扩展单元格,则不会被复制。

    如果写在报表首格,该属性则会复制到所有单元格中;

    如果写在行首格/列首格中,该属性则会复制到该行/该列的所有单元格中,如果该行/该列是可扩展的,该属性则复制到扩展出来的行/列的所有的单元格中。

  • 编辑校验属性 


    点击【增加】按钮可以增加一个校验规则,编辑校验公式和校验时出错信息,选择是否立即校验。如下图所示:

    立即校验:如果选择,鼠标移开当前单元格时就进行合法性检查,否则在提交到服务器的时候才进行合法性检查。  


 填报编辑风格

润乾报表提供了编辑框,密码框,下拉列表框,单选按钮、下拉数据集,下拉视图,复选框,下拉日历,下拉树,下拉视图树,上载文件和自定义等编辑风格。

  • 编辑框

    设置填报表某单元格为编辑框,操作如下,选中需要设置的单元格,点击右键-填报属性或者点击菜单栏中的属性-填报属性,弹出数据填报窗口,如所示。在编辑风格下拉列表框 中选择编辑框编辑风格,点击【确定】按钮即可。 设置好编辑框风格的填报属性后,发布到web上,效果如图所示:

  • 密码框

    设置填报表某单元格为密码框,操作如下,选中需要设置的单元格,点击右键-填报属性或者点击菜单栏中的属性-填报属性,弹出数据填报窗口,如所示。在编辑风格下拉列表框 中选择密码框编辑风格,点击【确定】按钮即可。 设置好密码框风格的填报属性后,发布到web上,效果如图所示:

  • 下拉列表框

    有些填报,我们会用到下拉列表框,如在人员填报中,分别用1和0代表男、女等类似情况。要设置填报表某单元格为下拉列表框,操作如下,选中需要设置的单元格,点击右键-填报属性或者点击菜单栏中的属性-填报属性,弹出数据填报窗口,如所示。

    在编辑风格下拉列表框 中选择下拉列表框编辑风格,然后在 位置点击 【设置】按钮,系统弹出下拉列表框编辑窗口。   


    允许多选:如果选择了此项,则允许从下拉列表中选择多个值。如图所示:

    增强控件:如果选择了此项,则下拉列表的“允许编辑”和“允许新值”属性可以使用。如果不选择此项则下拉列表的“允许编辑”和“允许新值”属性不可以使用。

    允许编辑:如果选择了此项,可以对下拉列表进行编辑,可以输入显示值,下拉列表框的“允许新值”属性可以使用,否则下拉列表的“允许新值”属性不可以使用。

    允许新值:如果选择了此项,下拉列表框可以输入下拉选项以外的值。

    [注意] 注意

    “允许编辑”和“允许新值”属性能够正确使用的前提条件是下拉列表框没有选择“允许多选”属性。如果下拉列表框允许多选,那么不可以输入显示值和输入下拉选项以外的值,只有在单选的条件下才可以。

    [注意] 注意

    下拉列表的显示值中不能有英文逗号和分号。因为显示值对应着下拉列表的选择项,下拉列表的不同选择项之间在系统内部是以英文逗号或分号间隔的,如果某一显示值包含了逗号或分号,那么系统在处理时就会把逗号或分号前后拆成两个选择项。

    点击【增加】按钮分别在代码值和显示值中输入内容如上图所示。0和1是存入数据库的代码,男、女是显示在页面上的内容。点击【确定】按钮即可。

    设置好下拉列表框风格的填报属性后,发布到web上,我们这里设置下拉列表框为单选。效果如图所示:

    [注意] 注意

    下拉列表框的单元格不能使用自动换行属性,否则会导致下拉属性不可用。

  • 单选按钮

    有些填报,我们会用到单选按钮,列出多个选择项,用户只能选择其中的一项。如在人员填报中,分别用1和0代表男、女,用户要么选择男要么选择女。要设置填报表某单元格为单选按钮,操作如下,选中需要设置的单元格,点击右键-填报属性或者点击菜单栏中的属性-填报属性,弹出数据填报窗口,如图4.4.10-1数据填报窗口所示。

    在编辑风格下拉列表框 中选择单选按钮编辑风格,然后在 位置点击【设置】按钮,系统弹出单选按钮编辑窗口。  


    可以在下面的列数框中输入单选按钮的列数。点击【增加】按钮分别在代码值和显示值中输入内容如上图所示。0和1是存入数据库的的代码,男、女是显示在页面上的内容。点击【确定】按钮即可。

    设置好单选按钮风格的填报属性后,发布到web上,效果如图所示:

  • 下拉数据集

    有的时候我们的下拉列表中的数据来自于数据集,这时我们就用到了下拉数据集的编辑风格。例如在填报人员所属部门的单元格中需要显示所有部门的下拉列表。设置下拉数据集的编辑风格操作如下:

    第一步:为报表新建一个数据集ds_dept,取得部门表中所有部门的编号及名称。在配置-数据集中增加一条部门信息的数据集,如下: 


    并将本数据集命名为ds1。 


    第二步:设置需要显示下拉数据集的单元格填报属性。

    选中需要设置的单元格,点击右键-填报属性或者点菜单栏中的属性-填报属性,弹出数据填报窗口,如所示。

    在编辑风格下拉列表框 中选择下拉数据集编辑风格,然后在 位置点击【设置】按钮,系统弹出下拉数据集编辑窗口。分别在窗口中的数据集,显示列,数据列设置如下内容。数据集是第一步中所建的ds1数据集,显示列对应部门名称,数据列对应部门编号,如下图所示:  


    编辑完成后点击【确定】按钮即可。 设置好下拉数据集的填报属性后,发布到web上,效果如下图所示: 


    [注意] 注意

    1.下拉数据集的显示列值不能包含英文逗号和分号。因为显示列值对应着下拉数据集的选择项,下拉数据集的不同选择项之间在系统内部是以英文逗号或分号间隔的,如果某一显示列值包含了逗号或分号,那么系统在处理时就会把逗号或分号前后拆成两个选择项。

    [注意] 注意

    下拉数据集的单元格如果使用自动换行属性,否则会导致下拉属性不可用。

    [注意] 注意

    下拉数据集的显示列值中如果包含回车换行,引号之类的特殊字符,可能会在使用“关联过滤”属性后,对javascript产生影响,为了屏蔽这些字符的影响,将“清除特殊字符”选项勾选上即可。

    [注意] 注意

    数据集中如果存在重复的显示值,但是有不同的数据值时,那么选择重复的显示值时,返回对应的数据值;如果输入重复的显示值,那么只能返回重复选项中第一个显示值对应的数据值。

  • 下拉视图

    下拉视图的设置方式与下拉数据集的方式是一样的,它们之间的区别是下拉视图的数据集来源于语义层。而下拉数据集来源于报表本身的数据集。

    在设置下拉视图之前,需要先打开语义层文件。在发布时,要通过配置文件,发布语义层文件。

    [注意] 注意

    下拉视图的单元格不能使用自动换行属性,否则会导致下拉属性不可用。

    [注意] 注意

    下拉视图的显示列值中如果包含回车换行,引号之类的特殊字符,可能会在使用“关联过滤”属性后,对javascript产生影响,为了屏蔽这些字符的影响,将“清除特殊字符”选项勾选上即可。

  • 复选框

    复选框常用在参数表单中,通过页面向其它报表传递参数的情况下,在需要设置复选框单元格的属性中 为单元格设置变量名,如:arg_name,这个变量名要与用到该参数的报表中的参数名相同,这样当参数表单提交时,报表会从页面上获取该复选框的状态值做为同名参数值。 选中需要设置的单元格,点击右键-填报属性或者点击菜单栏中的属性-填报属性,弹出数据填报窗口,如所示。

    在编辑风格下拉列表框 中选择复选框编辑风格,然后在 位置点击【设置】按钮,系统弹出复选框编辑窗口。  


    开值表示当复选框选中时的状态值,关值表示没选中时的状态值,标题是复选框显示的内容。

    编辑完成后点击【确定】按钮即可。 设置好复选框的填报属性后,发布到web上,效果如图所示:

  • 下拉日历

    在页面输入时间相关值时,会用到下拉日历。选中需要设置为下拉日历的单元格,点击右键-填报属性或者点击菜单栏中的属性-填报属性,弹出数据填报窗口,如所示。

    在编辑风格下拉列表框 中选择下拉日历编辑风格,然后在 位置点击【设置】按钮,系统弹出下拉日历编辑窗口。


    在取值类型下拉框中选择下拉日历的取值类型,点击【确定】按钮即可。

    设置好下拉日历的填报属性后,发布到web上,效果如下图所示:


    [注意] 注意

    注意:下拉日历的单元格不能使用自动换行属性,否则会导致下拉属性不可用。

    下拉日历的国际化格式定义: 不同国家不同语言的情况下,要求日期的输入格式不同,比如有些国家要求MM/dd/yyyy,此时解决办法是把lib目录下的datetimeformat.jar打开,找到datetimeformat_zh.properties或datetimeformat_en.properties,编辑其中的日期时间格式即可。

  • 下拉树

    有时我们在报表中以树型结构来显示某些信息,这时就用到了下拉树的编辑风格。下拉列表和下拉数据集只能显示一层数据,而下拉树可以显示多层数据。 下拉树的实现步骤如下: 数据库表结构如下:  


    第一步:新建数据集,ds_customerType,得到客户类型编码和名称

    第二步:新建数据集,ds_cust,得到客户信息。

    第三步:选中需要设置为下拉树编辑风格的单元格,点击右键-填报属性或者点击菜单栏中的属性-填报属性,弹出数据填报窗口,如所示。

    在编辑风格下拉列表框 中选择下拉树编辑风格,然后在 位置点击【设置】按钮,系统弹出下拉树编辑窗口。


    选中根节点,点击增加,设置第一层节点如下图所示: 


    添加第二层节点,设置第二层结点如下图:  


    在过滤条件一栏里设置表达式:CUSTOMERTYPE==$1 表示数据集ds_cust中的字段CUSTOMERTYPE值要等于第一层节点的数据列值。 可以通过点击 “帮助” 打开过滤条件的帮助窗口,获得输入过滤条件的帮助信息。如下图所示: 


    编辑完成后点击【确定】按钮即可。 设置好下拉树的填报属性后,发布到web上,效果如下图所示: 


    [注意] 注意

    下拉视图的单元格不能使用自动换行属性,否则会导致下拉属性不可用。

  • 下拉视图树

    下拉视图树的设置方式与下拉树的方式是一样的,它们之间的区别是下拉视图树的数据集来源于语义层。而下拉树数据来源于报表本身的数据集。 在设置下拉视图树之前,需要先打开语义层文件。在发布时,要通过配置文件,发布语义层文件。

    [注意] 注意

    下拉视图树的单元格不能使用自动换行属性,否则会导致下拉属性不可用。

  • 上载文件

    润乾填报表支持把图片或文件保存到数据库中,也支持图片或文件的下载。选中需要设置为上载文件编辑风格的单元格,点击右键-填报属性或者点击菜单栏中的属性-填报属性,弹出数据填报窗口,如所示。

    在编辑风格下拉列表框 中选择上载文件编辑风格,然后在 位置点击【设置】按钮,系统弹出上载文件编辑窗口。  


    通过上图所示的【增加】、【删除】按钮对上传文件的格式进行设置,如,上图表示只能上传gif和jpg格式的图片。 通过上图所示“上下载权限“下拉框选择上下载权限,有“只能上载”,“只能下载”,“上下载均可”三个选项供选择。 如果是需要下载文件,那么下载的时候很可能并不知道文件类型,这样就会导致下载的文件无法正确打开,这个时候就需要用到上图所示的“保存文件名的列名”属性。

    用法如下:

    1, 首先保存图片的数据表必须有一个保存文件名的字段,比如:hz 2, 在“上传文件”编辑框中将该字段名设置到“保存文件名的列名”属性中。 设置了“保存文件名的列名”属性,下载时系统会提示你用上传时的文件名保存该文件。 编辑完成后点击【确定】按钮即可。 设置好上载文件的填报属性后,发布到web上,双击上载文件单元格,弹出上载文件选择窗口,效果如下图所示:


    [注意] 注意

    行式填报不支持上传图片的功能。

  • 自定义

    用户还可以自定义填报表的单元格格式。在设置窗口,输入javaScript脚本的函数名称,当在浏览器中单击该单元格时,用户输入的自定义函数就会被调用,来完成用户自定义的功能。 选中需要设置为自定义编辑风格的单元格,点击右键-填报属性或者点击菜单栏中的属性-填报属性,弹出数据填报窗口,如x所示。 在编辑风格下拉列表框中选择自定义编辑风格类型,然后点击【设置】按钮,系统弹出自定义编辑风格窗口。如下图所示:  


    输入显示自定义控件的JS函数和隐藏自定义控件的JS函数,编辑完成后点击【确定】按钮即可。

    当是否可写 复选框 选中后,填报表页面对应的单元格才能接受数据输入,否则为只读。

 动态过滤

有时下拉框(下拉列表框和下拉数据集)中包含了很多的下拉项,用户要选择某一项如果在所有的下拉项中查找会非常的不方便,而使用动态过滤会使操作非常的便捷。

所谓动态过滤是指同一个下拉框中下拉项的动态匹配关系,在下拉框中输入值则下拉项中自动的列出与输入的值相匹配的选择项,过滤掉不匹配的选择项。比如:在地区下拉框中输入“华”,则下拉选项中自动的列出第一个字为“华”的地区,过滤掉第一个字不为“华”的地区。

把某一单元格的编辑风格设置为下拉数据集,在下拉数据表编辑界面中选择“增强控件”和“允许编辑”两个属性,如下图所示: 


预览效果如图:


[注意] 注意

动态过滤只有在下拉框选择了增强控件和允许编辑两个属性后才可用,因为要实现动态过滤必须往下拉框中输入值,只有选择了这两个属性后才可以往下拉框中输入值。

 关联过滤

所谓关联过滤是指两个或多个下拉框之间的关联关系,前一个下拉框选择的内容决定了后一个下拉框的下拉选择项。

比如:地区和城市两个下拉框,当地区下拉框选择了某一个地区后,城市下拉框自动的进行关联过滤,列出属于该地区的所有城市,过滤掉属于其他地区的城市。

举例:地区下拉框和城市下拉框的关联过滤。 这里假设地区下拉框所在的单元格为C10,城市下拉框所在的单元格为E10。

首先为C10和E10单元格准备数据集,这里为内建数据集。配置-》数据集-》增加-》内建数据,添加字段及数据如下:  

 


准备好数据集后,给C10单元格设置“下拉数据集”编辑风格,并设置显示列和数据列如下图所示。 


给E10单元格设置“下拉数据集”编辑风格,并设置显示列和数据列 


然后,切换到Web特性tab页,设置关联过滤表达式与关联过滤单元格,实现C10与E10的联动。


关联过滤表达式:dq=${C10},表示该下拉菜单中列举的城市名称(csname)对应的地区名称(dqname)必须与C10单元格选择的地区名称一致。而地区名称是通过C10单元格设置的,所以将C10单元格设置为关联过滤单元格。

按照上述方法设置的关联过滤,在C10单元格内不能进行多选。如果要在关联的第一级进行多选的话,必须将E10中的关联过滤表达式写为:(','+C10.toString()+',').indexOf(','+dq+',') >= 0,这样在E10下拉菜单中就会列举C10中所选的多个地区对应的所有城市名称。


[注意] 注意

如果单元格名在报表计算后会发生变化,那么应该写成类似 ${A1} 的格式。过滤表达式中如果单元格与字符串列比较,应写成A1.toString(),与数值列比较则写成A1。

[注意] 注意

下拉数据集的显示列值中如果包含回车换行,引号之类的特殊字符,可能会在使用“关联过滤”属性后,对javascript产生影响,为了屏蔽这些字符的影响,将“清除特殊字符”选项勾选上即可。

[注意] 注意

关联过滤第一级要进行多选的话,在关联的单元格内设置关联过滤表达式的格式为:(','+A1.toString()+',').indexOf(','+colName+',') >= 0。其中A1为关联过滤单元格的名称,colName为关联过滤单元格的数据列名称。

 离线填报

有时用户在填报时需要离线进行,润乾为了满足用户的需求提供了离线填报的功能。

用户可以设置发布报表标签的属性来控制离线填报。

html报表在JSP文件中用<prefix:html>标签来发布,prefix是用户在JSP文件头指定tag定义文件时指定的前缀名。该定义语句如下所示:<%@taglib uri="/WEB-INT/runqianReport4.tld" prefix="report"%>

此定义语句必须写在JSP的开头,其中prefix的值可以自己指定,但tag标签中的前缀必须与其保持一致。

在要发布报表的地方用上面介绍的tag标签来发布,在tag标签中用needOfflineInput属性来指定是否可以离线填报,用offline属性来定义离线保存按钮。

needOfflineInput:是否可以离线填报。取值为yes或no,其中yes表示可以进行离线填报,no表示不可以离线填报,默认属性取值为:no。

offline:离线保存按钮定义。取值为html元素或文字,默认属性取值为:保存到本机。

举例:

<report:html name=”report1” reportFileName=”离线填报.raq” submit="提交数据" //提交按钮外观定义 needOfflineInput="yes" //是否可以离线填报 offline="保存到本机" //离线保存按钮定义 />

 多源填报表

在实际的应用中,经常出现一张填报表填入的数据,同时保存到多张不同的物理表中,并且要求多张报表之间保持数据库的事务一致性。这种填报表,我们称为多源填报表。

常见的多源填报表有:主子填报表和多源交叉填报表等等。

举例:制作一张多源分片交叉填报表。 报表设计如下: 


E3单元格的更新属性:  


E4 单元格的更新属性:  


E5单元格的更新属性:  


E6单元格的更新属性:  


本例多源分片交叉填报表中一片是以货主地区为维度的各产品销售额的统计,一片是以销售人员为维度的各产品销售额的统计,报表中的数据来自订单、订单明细、雇员和产品表,而回填统计销售额数据时需要根据左表头和上表头填到CPXSTJA和CPXSTJB两个表中。