本章对一般单元格属性中的值、显示、段落、字体、扩展、超链接、分页、WEB、其他、表达式、类型以及统计进行了详细的讲解。
本小节对一般单元格的属性值、显示格式、显示值进行了详细介绍。
值
单元格属性列表中第一项就是值。值是单元格的真实值,当单元格被引用时,引用的就是单元格的真实值
● 举例:表达式A1+B1,其运算结果就是A1单元格的值加上B1单元格的值。
显示格式
单元格属性列表中第二项是显示格式,用来设置值在报表展现时的显示格式。
● 举例:
如果该单元格的值是一个数值型的数据1.33333,我们希望显示的时候只显示小数点后两位小数,这个就是通过显示格式完成的,可以在显示格式属性值中编辑#0.00,预览可以发现,显示的数值就变成了1.33。
也可以双击显示格式属性值,在弹出的显示格式对话框中选择你需要的格式,确定即可,如下图所示:
显示值
单元格属性列表中第三项就是显示值,显示值是在报表展现时所显示的内容,仅仅用来显示,很少被引用,如果要引用单元格的显示值,需要用disp函数,例如:disp(A1) 代表A1单元格的显示值。
通常我们在数据表里取出的某个字段的值是一个代号,但我们展现出来的报表,并不希望显示代号,希望显示的是每个代号代表的具体值,这时就要用到显示值的属性。
显示值的定义有两种方式:单值和对照表
● 举例:
单值定义法:
1、例如:"中国",那么该单元格就显示为"中国"
2、例如:ds1.select(name,id == value()),这样根据当前单元格中的值从数据集ds1中找到与之相等的id,根据id,显示对应name字段的值。
对照表定义法:
map(list(0,1),list("男","女")),这样如果单元格中的数据值为0,则报表展现时,该单元格显示的就是男。同理,如果是1,则显示的是女。
本小节对一般单元格的可视、隐藏行、隐藏列、前景色、背景色、尺寸调整方式等进行了详细介绍。
可视
设置当前单元格是否可见,该属性值为true代表可见,false代表不可见。可以在行首格、列首格、一般单元格和报表首格里控制是否可见属性。
该属性可以是属性值也可以是表达式。很多时候,我们需要设定在满足某一条件时显示,不满足某一条件时不显示。这时,可在表达式中编辑条件表达式。
● 表达式举例:
if(@arg1=="raqsoft",true,false) 当参数arg1为raqsoft时,当前格可见,否则不可见
隐藏行
当前行是否隐藏,可以是属性值也可以是表达式
实现隐藏本行效果,可通过“隐藏行”属性和行首格的行属性中 “是否可见“属性实现。
如果在行首格设置“是否可见“属性,该属性会复制到该行的所有单元格的“隐藏行“属性里。
● 举例:
在A1单元格中编辑=to(1,10),希望当当前单元格的数据值为5时,隐藏该行,则应该在该单元格“隐藏行”,或者在行首格的行属性中“是否可见”属性表达式中编辑if(A1==5,true,false)。预览发现数据值为5的那一行隐藏了。
如果希望某一行里任何一个单元格里的值为负数时,该行就隐藏,则在该行行首格“隐藏行”属性表达式中编辑if(value()<0,true,false),该属性表达式会复制到该行扩展出来的所有单元格中。
注:在分栏报表中不允许存在隐藏行。
隐藏列
当前列是否隐藏,可以是属性值也可以是表达式。
实现隐藏本列效果可设在一般单元格中,也可以设在列首格中,至于什么情况设在一般单元格,什么情况设在列首格,规则与“隐藏行”相同,可参考前面所述。
前景色
单元格里文本的颜色
● 举例:如下图(左边的为默认的前景色<黑色>,右边的设置前景色为红色)
在此需要说明是:在Excel里仅仅支持256色,而润乾报表支持任意的颜色,因此某些颜色导出Excel时可能会没有对应色,此时系统会找个最接近的颜色来代替。
背景色
单元格的背景色
● 举例:如下图(左边的为默认的背景色<白色>,右边的设置背景色为红色)
在此需要说明是:在Excel里仅仅支持256色,而润乾报表支持任意的颜色,因此某些颜色导出Excel时可能会没有对应色,此时系统会找个最接近的颜色来代替。
尺寸调整方式
有四个选项:按设计尺寸不变/按单元格内容扩大/图片填满单元格/缩小字体填充。
1、如果设置为“按设计尺寸不变”,那么当该单元格里的数据超过单元格宽度的时候,只显示宽度范围内的数据。
2、如果设置为“按单元格内容扩大”,那么当该单元格里的数据超过单元格宽度的时候,单元格宽度可根据其数据内容调整。子报表或者图片单元格,也可以通过上面两个属性把子报表或者图片缩在单元格内,或者把单元格撑大。
3、如果设置为“图片填满单元格“,图片根据单元格的大小缩放图片,以保证图片填满单元格。
[ Show » ]
4、如果设置为“缩小字体填充“,那么当该单元格里的数据超过单元格宽度的时候,这个时候又不希望单元格被撑大,可以设置该属性,将字体缩小填充在单元格中。这个时候如果配合自动换行使用的话,单元格里的数据在缩小字体的同时,并折成多行显示。这样配合使用可避免单元格里的数据在一行里显示而将字体缩小的过于小。
当单元格字体小于12号字体时,使用360极速浏览器或者谷歌Chrome浏览器时会出现字体重叠的问题。原因是由于谷歌Chrome浏览器默认不支持显示字体大小为12号以下的字体,因此如需解决该问题则需要手工修改谷歌Chrome浏览器中对最小字体的设置。
是否可视表达式
填报专用。
设置单元格内容是否可视,该属性值为表达式,表达式的值为true代表可视,false代表不可视。用于单元格类型为维度格或非自动计算数值格时。是否可视表达式为Excel风格,也可引用参数 ,在填报表编辑过程中,当被依赖格格值改变时会引起重新计算,并根据计算结果设定此格是否可视。
很多时候,我们需要设定在满足某一条件时显示,不满足某一条件时不显示。这时可用是否可视表达式。
● 表达式举例:
false 当前单元格不可视
I3>=5000 当I3单元格的格值大于等于5000时,当前格可视,否则不可视
B3!=arg1 参数arg1的值为研发部。当B3单元格的格值为研发部时不可视,否则可视。
F3.getTime()>arg2.getTime() 参数arg2的值为1993-01-01。日期比较时先用js函数getTime()把日期换算成毫秒数,再比较。日期参数值格式需与填报 - 选项 - 集算器选项中的日期格式一致。当F3单元格的日期晚于1993-01-01时可视,否则不可视。
本小节对一般单元格的自动换行、对齐方式、缩进进行了详细介绍。
自动换行
设置当前单元格的数据值长度超出单元格的宽度时,是否自动换行。
此属性一般适用于中文值字段,如果此属性打勾,当数据值长度超出单元格的宽度时,文字会自动换行,单元格自动被撑高。
例如某单元格的自动换行和缩小字体填充同时被选中,那么当文字超长时,会既折行又缩小字体填充,系统会根据格子的大小,自动选择一个最优的算法
● 举例:C3单元格中有这样一串文字
如果我们设置自动换行,则预览的结果是:
可以看到,单元格被撑高,折成多行显示;
如果把自动换行和尺寸调整的“缩小字体填充”结合起来使用,则预览的结果是:
可以看到,单元格宽度和高度都没变,字体缩小折成多行显示。
● 注意:
1.下拉列表框、下拉数据集、下拉日历、下拉数据表、异步下拉树和下拉树类型的单元格不能使用自动换行属性,否则会导致下拉属性不可用。
2.在报表中,除字符串以外的数据类型都不可以设置自动换行属性。
水平对齐
设置单元格数据在水平方向上的对齐方式:靠左、居中、靠右、两端对齐、分散对齐。
● 举例:
纵向对齐
设置单元格数据在垂直方向上的对齐方式:靠上、居中、靠下。
● 举例:
缩进
单元格数据值的缩进位置,缺省为0,此时数据值会紧挨着边框。一般设置为2-3比较合适。
★ 注意点:
1、一旦为单元格设置了缩进属性,则文字在单元格里会相对左或相对右或者相对左右缩进。如果水平对齐方式为左对齐,则相对左边缩进;如果水平对齐方式为中对齐,则相对左右两边缩进;如果水平对齐方式为右对齐,则相对右边缩进。
2、统计图最好不要设缩进,即缩进值最好为0,否则图形被压缩后,变形效果不好看。
3、交叉报表中的交叉单元格建议不要设置缩进。
● 举例:如下图(左边的缩进为0,右边的缩进为5)
本小节对一般单元格的字体大小、加粗、斜体、下划线进行了详细介绍。
字体
单元格的值/显示值的字体
★ 注意点:
如果服务器操作系统是linux、unix等非windows操作系统时,需要注意凡被使用到的字体,都必须在操作系统里安装,否则当报表打印、输出到PDF、统计图等时,会乱码或者变成小方框。一般要求安装相应的中文包,然后再安装jdk。如果已经安装了jdk,补救办法就是拷贝字体。
拷贝字体的方法:把windows操作系统下,…\WINDOWS\Fonts目录下的所有字体文件拷贝到服务器的jdk安装目录下的…\jre\lib\fonts子目录下即可。某些操作系统下如果这样拷贝还不灵,可能还需要打开…\jre\lib\font.properties文件进行修改。
字大小
单元格的值/显示值的字大小
● 举例:如下图(左边的为小四,右边的为二号字)
加粗
单元格数据是否显示为粗体
● 举例:如下图(左边的为设置粗体前,右边的为设置粗体后)
斜体
单元格数据是否显示为斜体
● 举例:如下图(左边的为设置斜体前,右边的为设置斜体后)
下划线
单元格数据是否带下划线
● 举例:如下图(左边的为不带下划线,右边的为带下划线)
运算结果为集合的函数,我们称为集合函数。集合函数包括:group(),select(),list(), query(),call(),to()等。
to()函数举例:to(1,3)
计算结果为集合的表达式称为集合表达式。
计算结果为单值的表达式称为单值表达式。
当单元格的数据值表达式为集合表达式时,该单元格默认为可扩展单元格。否则该单元格默认为不可扩展。
扩展方式
单元格的扩展方式属性分为默认、横向扩展、纵向扩展、不可扩展四种。当单元格为可扩展单元格时,可以默认扩展方向,也可以为扩展单元格设置一个扩展方向,扩展可以有横纵两个方向,即横向扩展和纵向扩展,但一个扩展格同时只能有一个扩展方向。
1、默认
l 单元格的表达式为单值表达式时,该单元格默认为是不可扩展的。
l 单元格的表达式为集合表达式时,该单元格默认为是可扩展的。
l 可扩展单元格的主单元格为行首格或列首格时,该单元格默认为纵向扩展。
l 可扩展单元格的上主格横向扩展时,该单元格默认为横向扩展。
l 可扩展单元格的左主格纵向扩展时,该单元格默认为纵向扩展。
2、横向扩展
l 当可扩展单元格的扩展方向为横向时,该单元格进行的扩展称为横向扩展。此时该单元格会横向进行复制,复制出的单元格的数据值依次为表达式的结果数据值,表达式返回几个值,单元格就复制几个。
l 复制出来的新单元格的所有属性都引用被复制单元格的属性;
图例
3、纵向扩展
l 当可扩展单元格的扩展方向为纵向时,该单元格进行的扩展称为纵向扩展。此时该单元格会纵向进行复制,复制出的单元格的数据值依次为表达式的结果数据值,表达式返回几个值,单元格就复制几个。
l 复制出来的新单元格的所有属性都引用被复制单元格的属性;
图例
4、不可扩展
l 当单元格里表达式的值是单值时,该单元格默认为不可扩展的单元格。
左主格
单元格进行纵向扩展时,我们又称其为其右边格子的左主格。左主格属性可以默认缺省,也可以人为的改变。
缺省左主格认定规则:
单元格纵向扩展时,左边纵向扩展单元格缺省为它的左主格,右边单元格缺省为它的附属格;如果左边没有纵向扩展格,则左主格缺省为 `0 格。
人为改变主格规则:
可以将某个单元格的左主格设置成某个纵向扩展格。如果要将某单元格的左主格改为00格,则将其左主格属性设置为`0。
为了符合扩展变化的规则,我们可以知道人为设置主格需要满足一些条件:
Ø 左主格必须是纵向扩展格,否则设置无效。
Ø 不允许出现循环设置的情况,即设置A的主格是B,B的主格是C,C的主格又是A,出现循环设置时认为设置有误,报表无法计算。显然,在缺省的情况下是不可能出现循环设置的,而在人为设置时必须避免这种情况的出现。
Ø 横向扩展格不允许有左主格。
人为设置时,可能发生左主格在右边的情况,而且主格也不一定和附属格在同一行上。
上主格
单元格进行横向扩展时,我们又称其为其下边格子的上主格
缺省上主格认定规则:
单元格横向扩展时,上方横向扩展单元格缺省为它的上主格,下方单元格缺省为它的附属格;如果上方没有横向扩展格,则上主格缺省为 `0 格。
人为改变主格规则
可以将某个单元格的上主格设置成某个横向扩展格。如果要将某单元格的上主格改为00格,则将其上主格属性设置为`0。
为了符合扩展变化的规则,我们可以知道人为设置主格需要满足一些条件:
Ø 上主格必须是横向扩展格,否则设置无效。
Ø 不允许出现循环设置的情况,即设置A的主格是B,B的主格是C,C的主格又是A,出现循环设置时认为设置有误,报表无法计算。显然,在缺省的情况下是不可能出现循环设置的,而在人为设置时必须避免这种情况的出现。
Ø 纵向扩展格不允许有上主格。
人为设置时,可能发生上主格在下边的情况,而且主格也不一定和附属格在同一列上。
同值合并
报表有分页时,针对扩展后单元格,对相邻格值相同的单元格设置合并方式,有四个选项:不合并/横向合并/纵向合并/双向合并。同值合并仅对同一扩展格有效。
1、如果设置为“不合并”,那么相邻格值相同的单元格不会合并成一个大的单元格。
● 举例:A1、B1设置为不合并
报表打印或导出分页呈现为:
2、如果设置为“横向合并”,那么左右相邻单元格格值相同的则横向合并成一个大的单元格。合并顺序:按行从上到下
● 举例:A1、A2设置为横向合并
报表打印或导出分页呈现为:
但是,同列所在格子或者包含,或者被包含,不会存在交叉,所以当后合并的格子出现交叉则不会同值合并,比如:
上图中,蓝框里的两个同值单元格不会合并,合并后就与红框中的单元格交叉了。
3、如果设置为“纵向合并”,那么上下相邻单元格格值相同的则纵向合并成一个大的单元格。合并顺序:按列从左到右。
● 举例:A1、A2设置为纵向合并
报表打印或导出分页呈现为:
但是,同行所在格子或者包含,或者被包含,不会存在交叉,所以当后合并的格子出现交叉则不会同值合并,比如:
上图中,蓝框里的两个同值单元格不会合并,合并后就与红框中的单元格交叉了。
4、如果设置为“双向合并”,那么相邻格值相同的单元格则合并成一个大的单元格。“双向合并”用于交叉报表。合并顺序:先纵向(按列从左到右)后横向(按行从上到下)
● 举例:B3设置为双向合并
报表打印或导出分页呈现为:
同样,从上图也可以看出,同列/同行所在格子或者包含,或者被包含,不会存在交叉,所以当后合并的格子出现交叉则不会同值合并。
合并同值模式
报表有分页时,针对同值合并的单元格设置合并模式,有四个选项:默认/顺序/逆序/简单,常用的合并方式为默认。
1、如果设置为“默认”,合并时只会对同源格的格子执行同值合并。
● 举例:C2同值合并设置为“纵向合并”,合并同值模式设置为“默认”
预览报表呈现为:
2、如果合并同值模式设置为“简单”,那么相邻的无关单元格格值相同则会合并。
● 举例:C2同值合并设置为“纵向合并”,合并同值模式设置为“简单”
报表打印或导出分页呈现为:
3、合并同值模式设置为“顺序”。合并顺序:从左到右从上到下。
● 举例:A2、B2同值合并设置为“纵向合并”,A2合并同值模式设置为“顺序”,B2合并同值模式设置为“默认”
报表打印或导出分页呈现为:
4、合并同值模式设置为“逆序”。合并顺序:从下到上从右到左。
● 举例:A2、B2同值合并设置为“纵向合并”,A2合并同值模式设置为“逆序”,B2合并同值模式设置为“默认”
报表打印或导出分页呈现为:
空值合并
报表有分页时,针对扩展后单元格,对空值单元格设置合并方式,有五个选项:不合并/向上合并/向下合并/向左合并/向右合并。
空值合并可以来自不同的扩展格。
向上/下合并,上下单元格必须同宽。
向左/右合并,左右单元格必须同高。
不同的空值单元格可以设置不同的空值合并方式,全表执行完一个方向的合并后再执行另一个方向的合并,合并次序为:向下,向上,向左,向右。
当报表同时设置有同值合并和空值合并时,则先同值合并,后空值合并。
1、如果设置为“不合并”,那么空值单元格不会与相邻单元格合并。
● 举例:C1设置为不合并
预览报表呈现为:
2、如果设置为向上合并/向下合并,那么空值单元格会向上/向下找相邻的同列等宽的格子合并单元格。
● 举例:C1设置为向上合并
空值单元格向上找相邻的同列等宽的格子合并单元格,打印或导出分页结果如下:
3、如果设置为向左合并/向右合并,那么空值单元格会向左/向右找相邻同行等高的格子合并单元格。
● 举例:C1设置为向左合并
空值单元格向左找相邻同行等高的格子合并单元格,打印或导出分页结果如下:
4、不同的空值单元格可以设置不同的合并方式,全表执行完一个方向的合并后再执行另一个方向的合并,合并次序为:向下,向上,向左,向右。
● 举例:A1设置为向右合并,B1设置为向下合并
先执行向下合并,再执行向右合并,结果如下:
● 举例:B1设置为向左合并,A2设置为向上合并
先执行向上合并,再执行向左合并,A2向上合并没有同宽单元格,结果如下:
5、先同值合并,后空值合并
● 举例:A2设置为横向同值合并,A3设置为向上空值合并
先同值合并,A3向上空值合并时没有同宽单元格,结果如下:
本小节对超链接和填报表超链接的定义、用法和适用场景进行了详细介绍。
单元格的超链接属性,可以是属性“值”,也可以是“表达式”。
如果超链接字符串不需要动态生成,可以直接在属性“值”中写所要链接的路径。
如果超链接字符串需要根据单元格或者参数值动态生成,则需要在超链接“表达式”中写所要连接的路径。
超链接路径可以是绝对路径也可以是相对路径。下面分别举例说明:
1、在超链接中引用单元格的值,例如:
"defaultArg.jsp?report=/exercise/grid&customerid="+urlencode(A6,"UTF-8")
2、在超链接中链接到其他报表页面,例如:
reportJsp/showReport.jsp?rpx=test.rpx
3、绝对路径
绝对路径一定要写完整,包含传输协议。例如:http://www.raqsoft.com.cn,不可只写 www.raqsoft.com.cn。
4、相对路径
相对路径是相对应用路径的,例如:jsp/myreport.jsp,系统运算后会自动给加上应用的路径,相对路径最前面不需要用/开头。
5、dashboard中使用超链接
dashboard中报表的超链接联动采用js函数的方式,可以同时刷新多个面板的内容, 说明如下:
dashboardLink( url1,boardId1,url2,boardId2,urln,boardIdn,......)
urln为要刷新的子报表的url,boardIdn为要显示此url的子报表面板id(即子报表的逻辑名)
超链接如:
="javascript:dashboardLink('board.jsp?board=2.rpx&arg1=A1','item2')"
(1) board.jsp是展现Dashboard中的单个子报表,用于动态关联时的超链接url。
(2) 当超链接使用dashboardLink函数时,给函数传中文参数值时可不用转码,直接传递中文。
6、超链接定义
编辑超链接有两种方式,一种是直接在属性值编辑框中添加超链接url串,另一种添加表达式。
在超链接“表达式”中双击。双击后会弹出超链接定义窗口,选择jsp路径,并配置参数名称与参数值。系统会自动生成超链接表达式,同时也可以直接在表达式tag页中添加或修改超链接表达式,表达式中link函数的用法可参考《程序员参考》link()小节。
当要链接的JSP资源需要传递的参数有多个时,可直接在JSP中添加参数,选择JSP文件时会自动将参数显示到参数列表中。当参数类型为报表名称或JSP名称时可通过动作按钮快速将报表或JSP里所需要的参数添加至参数列表中,效率高于手动逐条添加,使用方法如下:
Jsp中需添加参数注释,注释格式为:
<!--### 参数名=参数标题,参数类型,缺省值;… ###-->
参数类型取值说明:
参数类型 含义
0 缺省(以=开始表示表达式)
1 报表名称
2 JSP名称
3 日期(可界面选择)
4 时间(可界面选择)
5 日期时间(可界面选择)
举例:
tetLink.jsp添加的注释内容如下:
当选择的JSP文件中已添加注释参数时,超链接表达式中选择JSP后会自动解析出JSP中的参数。如上图(1)所示将JSP中rpx和arg1参数显示至参数列表中。
参数列表中的[动作]是根据JSP中参数注释里参数类型判断显示。参数类型是报表名称或者JSP名称时,[动作]会解析为[列出参数],点击[列出参数]按钮,会自动添加报表或者JSP中的需要传递的参数,上图(2)所示点击[列出参数]将test.rpx中的subject参数添加至参数列表中;其他参数类型时[动作]为空。
注意:
1、超链接定义中的参数不需要在当前报表中定义。
2、选择JSP路径之前,需要先在【工具】à【选项】à【JSP】中设置JSP主目录,这样在JSP主目录下的路径中选择jsp文件时,此处会自动变成相对路径,点击超链接时才能正常连接访问。
超链接窗口
超链接跳转方式:
1、属性值为_self时,在当前页面跳转。
2、属性值为_blank时,在新页面打开。
该属性如果不写,缺省为_self。
为填报表单元格增加超链接时,可选中单元格,在右侧单元格属性中增加超链接属性值。
使用超链接时,单元格属性需设置为不可编辑。
使用超链接时,超链接的值必须用引号圈起来。
超链接路径可以是绝对路径也可以是相对路径。下面分别举例说明:
1、在超链接中链接到其他填报表页面,例如:
"showInput.jsp?sht =test.sht"
2、在超链接中引用单元格的值,例如:
"showInput.jsp?sht=yuangong.sht&arg1="+C6
3、绝对路径
绝对路径一定要写完整,包含传输协议。例如:"http://www.raqsoft.com.cn",不可只写 "www.raqsoft.com.cn"。
4、相对路径
相对路径是相对于展现填报表的jsp所在路径,例如,展现填报表的jsp为http://localhost:6868/demo/test/showInput.jsp,超链接值为"jsp/myinput.jsp?sht=mytest.sht",系统运算后的超链接跳转路径为:http://localhost:6868/demo/test/jsp/myinput.jsp?sht=mytest.sht,相对路径最前面不需要用/开头。
本小节对分页、分栏、单元格拆分等进行了详细介绍。
分页时伸缩
该属性适用于除报表头、分组表头、数据区和表尾区以外的区域。
行后分页
当前行是否行后分页,可以是属性值也可以是表达式。该属性可设置在一般单元格,也可设置在行首格中。
强制分页,我们可以通过设置按数据行分页的报表分页方式,然后设置每页显示数据行数来实现。但有的时候我们并不固定每页的显示数据行数,只想设定其中某一行或某几行的行后分页,这时利用行后分页就可以达成这个目的。
行后分页可以设在一般单元格,也可以设在行首格。
如果设置在行首格,而且该行是可以扩展的,则该属性会复制到该行扩展出来的所有单元格中。
● 举例:
在A1单元格中编辑=to(1,10),并在该单元格“行后分页”的表达式中编辑
if(A1= =5,true,false):当当前单元格的数据值为5时,行后分页。打印预览发现数据值为6的那一行在下一页了。
列后分页
当前列是否列后分页,可以是属性值也可以是表达式。该属性可设置在一般单元格,也可设置在列首格中。规则与“行后分页”相同。
行后分栏
当前行是否行后分栏。可以是属性值也可以是表达式。该属性可设置在一般单元格,也可设置在行首格中。
有时使用分栏后,我们并不固定每页的显示数据行数,只想设定其中某一行或某几行的行后分栏,这时利用行后分栏就可以达成这个目的。
行后分栏可以设在一般单元格,也可以设在行首格。
如果设置在行首格,而且该行是可以扩展的,则该属性会复制到该行扩展出来的所有单元格中。
● 举例:
在A1单元格中编辑=to(1,10),并在该单元格“行后分栏”的表达式中编辑
if(A1= =5,true,false):当当前单元格的数据值为5时,行后分栏。打印预览发现数据值为6的那一行在下一栏了。
单元格拆分
该属性主要为合并格服务的,当分页断开正好位于合并格的中间时,合并格里的值是否拆分后在两页里显示。
● 举例:如下图:
分页断开位于合并格中间。
如果设置该属性,该合并单元格里的文字被拆成两部分,分别在两页里显示。
如果未设置该属性,两页里都是重复显示断开前的文字。
本小节对报表在web端展现时用到的变量名、HTML事件、提示进行了详细介绍。
变量名
1,在html网页上引用该单元格的数据值时使用的变量名。
● 举例:在JSP文件中有两种使用方法(假如变量名为myVar):
(1)在JSP代码中引用:
<%
String myVar = request.getAttribute( "myVar" );
%>
(2)使用tag标签引用:
<report:var name="myVar" />
两种引用方式均需在报表标签<report:html …… />之后方可有效。
HTML事件
在web端发布报表时,可以根据单元格的HTML事件来执行相应的操作,例如鼠标移入、点击、移除时执行某些操作。
注意:
1. 所有的事件,都写在“值”中,当需要拼接字符串时,写到“表达式”里
2. 参数模板里不支持HTML事件
提示
当在web上发布报表时,希望鼠标移动到某位置时,显示一些提示信息,就可以设置该属性。
● 举例:
某一单元格“数据值”属性值编辑为“超链接”,“WEB”中的提示信息为“这就是WEB中的提示信息”。 这样,该报表在网页中展现的时候,当鼠标移动到超链接的位置上时,鼠标箭头变成手形,手形鼠标旁会出现刚刚编辑的提示信息,如下图所示效果:
本小节对一般单元格的注释、导出Excel方式、能否修改、单元格样式名、是否可编辑表达式、填报表的是否可编辑表达式、填报表的超链接等属性进行了详细介绍。
注释
制作报表的人可在此对该报表单元格做些说明和注释,以方便其他人,或日后自己查看。
导出excel方式
通过设置该属性可控制导出的Excel文件是缺省值、真实值、显示值还是公式。
缺省值:导出结果与预览效果一致。
真实值:导出结果为“值 + 显示格式”。
显示值:导出结果为“显示值 + 显示格式”。
公式:格值表达式为Excel能识别公式时,导出为公式,否则直接导出计算结果。
Excel能识别的公式包括最基本的加减乘除运算(A1+A2),统计函数(sum、avg、max、min),简单的数学和三角函数(abs、exp、lg、ln、sin、cos、tan、asin、acos、atan等)以及一些常用的字符串函数(left、right、len、upper、lower等)。
● 举例:
例1:单元格A1获取GENDER的值,其原值是“F”或“M”。单元格A1设置显示值表达式map(list("F","M"),list("女","男"))。
预览时:显示为“男”或“女”;
导出真实值:显示为“M”或“F”;
导出显示值:显示为“男”或“女”。
例2:单元格A1获取SALARY的值,其中一个原值是“7000”。单元格A1设置显示值表达式“ds1.SALARY+1000”,设置显示格式“¥#.00”。
预览时:显示为“¥8000.00”;
导出真实值:显示为“¥7000.00”;
导出显示值:显示为“¥8000.00”。
例3:单元格A2对A1扩展单元格求SALARY之和,A2单元格设置值表达式=sum(A1{}),设置显示格式“¥#.00”。
预览时:显示为“¥18000.00”;
导出公式:显示为“=SUM(A1:A2)”,值为“¥18000.00”。
能否修改
通过设置该属性既可以在打印预览时修改单元格数据,还可以在web端修改单元格数据。如需在web端修改单元格数据需先在html标签中添加modifiable属性,具体关于属性的介绍可参考《程序员参考》Html模式发布报表小节的属性详细说明。
单元格样式名
用于设置单元格样式,单元格样式名列表从报表 - 报表属性菜单的报表样式所指向的.css文件中读取。报表属性中的报表样式从工具 - 选项 - 文件tab页中报表样式配置的.xml中读取。
报表属性中设置报表样式后,该样式会自动列入到右侧属性中的单元格样式名列表中,如下图所示:
reportStyleConfig.xml:
globalTemp.css:
注意:
web端如需使用报表样式需在raqsoftConfig.xml中配置styleConfig属性,具体可参考《程序员参考》raqsoftConfig.xml小节。
是否可编辑表达式
填报专用。
设置单元格内容是否可编辑,该属性值为表达式,表达式的值为true代表可编辑,false代表不可编辑。用于单元格类型为维度格或非自动计算数值格时。是否可编辑表达式为Excel风格,也可引用参数 ,在填报表编辑过程中,当被依赖格格值改变时会引起重新计算,并根据计算结果设定此格是否可编辑。
很多时候,我们需要设定在满足某一条件时数据可写,不满足某一条件时不可写。这时可用是否可编辑表达式。
● 表达式举例:
false 当前单元格不可编辑
I3>=5000 当I3单元格的格值大于等于5000时,当前格可编辑,否则不可编辑
B3!=arg1 参数arg1的值为研发部。当B3单元格的格值为研发部时不可编辑,否则可编辑。
F3.getTime()>arg2.getTime() 参数arg2的值为1993-01-01。日期比较时先用js函数getTime()把日期换算成毫秒数,再比较。日期参数值格式需与填报 - 选项 - 集算器选项中的日期格式一致。当F3单元格的日期晚于1993-01-01时可编辑,否则不可编辑。
超链接
填报专用。
用于为不可编辑的单元格设置超链接,超链接路径可以是绝对路径也可以是相对路径。下面分别举例说明:
1、在超链接中链接到其他报表页面,例如:
reportJsp/showInput.jsp?sht=test.sht
2、绝对路径
绝对路径一定要写完整,包含传输协议。例如:http://www.raqsoft.com.cn,不可只写 www.raqsoft.com.cn。
3、相对路径
相对路径是相对应用路径的,例如:jsp/myreport.jsp,系统运算后会自动给加上应用的路径,相对路径最前面不需要用/开头。
填报专用,填报表单元格属性。
表达式
填报表单元格的格值,可以写值或者表达式。
维度格的表达式返回结果通常是一个序列且不能有重复值,单值数据维度格表达式返回值为单值。
数据类型
默认情况下程序会自动检测页面上输入数据的数据类型,如果输入数据的数据类型和数据库定义的数据类型不符,那么在提交报表时页面会报错。除此之外还可以指定数据类型为字符串、整数、数值型、双精度型、日期型、时间型、BLOB、图片和日期时间型等,指定了数据类型的填报会在焦点离开时立即校验。
缺省值表达式
行式填报专用
用于web预览后在插入或者添加行时给单元格设置一个缺省值。该属性值可以用js表达式,也可以引用报表参数,不支持引用单元格。
很多时候,我们需要在插入行或者添加行时给某个单元格一个缺省值。这时可用缺省值表达式。
● 表达式举例:
arg1 参数arg1的值为10。当插入一行时,设置缺省值表达式为arg1的单元格自动填写10为缺省值。
(new Date()).format("yyyy-MM-dd") 当插入一行时,设置缺省值表达式为(new Date()).format("yyyy-MM-dd")的单元格自动填写当前日期为缺省值。
显示格式
用来设置在填报表时值的的显示格式。
举例:如果该单元格的值是一个数值型的数据1.33333,我们希望显示的时候只显示小数点后两位小数,这个就是通过显示格式完成的,可以在显示格式属性值中编辑#0.00,预览可以发现,显示的数值就变成了1.33。
也可以双击显示格式属性值,在弹出的显示格式对话框中选择你需要的格式,确定即可,如下图所示:
填报专用,填报表单元格属性。
单元格类型
填报表单元格分为:维度格,普通格,数值格
维度格不可填写,维度格表达式语法遵循集算器脚本语法。
数值格又分为填写格和计算格,其中填写格可以填写。当一个数值格里有表达式,那么这个数值格就被认为是计算格,是不可以填写的。数值格表达式语法需遵循JavaScript语法。除JavaScript官方提供的函数可以在数值格中使用之外,润乾报表也提供了聚合函数方便用户使用,函数说明可参考《程序员参考》填报表JavaScript函数小节。
维度格和数值格可以设置编辑风格,通常数值格的编辑风格是为了录入数据方便,维度格的编辑风格通常用于设置显示值。
字段名称
维度格和数值格都是有字段名称属性的,缺省情况下按照字段名采集规则认定,否则就按照该属性里设置的字段名称认定,此属性可以直接写字段名称,也可以写成“对象名.字段名称”的形式,这个对象名即为序表变量名
字段名采集规则具体可参考《填报教程》字段名采集规则小节。
序号格
行式填报专用,web端填报时自动给每行添加编号,数据行有增删时动态改变序号值,作为数值格处理,但是不可填写。
填报专用,填报表单元格属性。
数据来源格
统计表中用来设置某一单元格数据来源于基准表中的哪个非普通格字段。数据来源格的格式为页名!单元格名,例如Sheet1!D4。如果统计表和基准表的页名相同,可以省略页名,例如统计表Sheet1中对基准表的Sheet1中的数据进行统计,此时页名Sheet1!可以省略不写;统计表和基准表页名相同的情况下如果对应的单元格也相同,那么单元格也可以省略不写,例如统计表Sheet1中D4单元格要对基准表的Sheet1中D4单元格的数据进行统计,此时页名Sheet1!和单元格D4都可以省略不写,数据来源格为空。
基准表如下图:
统计表如下图:
同页名同单元格时省略页名和单元格名,如D4和基准表中Sheet1中的D4对应。
同页名不同单元格时省略页名,如C4和基准表中Sheet1中的D4对应。
不同页名不同单元格时页名和单元格名都不能省略,如B2和基准表中Sheet1中的D4对应。
统计方式
对基准表中某一单元格的数据进行统计计算后填入统计表中某一单元格,统计方式包括:求和、计数、最大、最小和平均。