目录

显示格式、显示值

显示格式、显示值

在中设计的报表性别、学历都是用数值显示的,而且奖金等格式也并不美观,那么我们可以在的基础上增加显示格式、显示值等设置,使报表可读性更强

第一步:增加一个数据集 ds2: SELECT DEGREE.ID,DEGREE.NAME FROM DEGREE

第二步:定义表达式:


1、将A2单元格表达式修改为:=ds1.Select(int(EMPID),false)

该表达式是将字符串型的EMPID转换成整数,再做排序操作。

2、设置C2单元格的显示格式为:yyyy年MM月dd日

3、设置F2单元格的显示格式为:¥#0.00

4、设置D2的显示值为:map(list("1","2"),list("男","女"))

5、设置E2的显示值为:ds2.select1(name,id==value())

第三步:保存预览

此报表保存为3.2.raq,预览效果如下图所示:


第四步:发布报表


  • 增加数据集

    单击菜单栏中的【配置】->【数据集】,在弹出的“数据集设置“窗口中点【增加】按钮,弹出“数据集类型”窗口,如图:


    选择“SQL检索”,点【确定】按钮,即可弹出“SQL检索“窗口,接下来可像新建报表时一样定义SQL。

  • Int函数说明

    将字符串或数字转换成整数

    语法: int( string ) int( number )

    参数说明:

    string 需要转换的字符串表达式

    number 数字,如果带有小数位,转换后小数位被截掉

    返回值: 32位整数

    示例:

    例1:int( "100" ) 返回:100

    例2:int( 100.1 ) 返回:100

    例3:int(100.9999) 返回:100

  • 显示格式

    报表运算出来的数据,往往需要按照一定的格式进行展现,例如金额1234.5678希望显示成¥1,234.56,日期2005/12/25希望显示成2005-12-25,百分比0.2345希望显示成23.5%等等

  • 虽然对数据的显示格式有一定的要求,但是单元格里真实的数据不能改变,照样能够被其他单元格引用,例如1234.5678虽然显示成1,234.56,但是其他单元格引用时,引用的是1234.5678而不是1,234.56,否则会导致误差

  • 显示格式的设置方法

    选中需要设置显示格式的单元格(可以批量选择),双击属性列表中的 显示格式,如下图所示:


    双击后,弹出显示格式编辑对话框,如下图所示:


    选择相关的显示格式,也可手工敲入,点击确定,显示格式设置完成。

  • 显示值:由于业务的需要以及设计数据库的考虑,从数据库事实表中取出来的很多度量字段的值往往是编码,例如员工表的性别字段,往往存的是0或者1,但是在报表中希望显示成 男 或 女

  • 虽然编码字段在报表中显示成对应的中文,但是该单元格的真实编码还需要保留,当别的单元格引用该单元格时,引用的是编码而非中文,此时就需要用到单元格的显示值属性

  • 单元格的显示值也可以被引用,此时用到disp函数,例如:disp(A1) 代表A1单元格的显示值。

显示值的定义有两种方式:单值和对照表

举例:

单值定义法: 1、例如:"中国",那么该单元格就显示为"中国" 2、例如:ds1.select1(name,value()==id)

对照表定义法: 例如:map(list("0","1"),list("男","女"))

  • 特别说明

    当对数据集运用过滤条件后确定只剩一条记录时,虽然select和select1的的运算结果一样,但是select1运算效率高,因为他只要找到符合条件的记录,就不继续检索了,而select要检索完所有的记录才返回。考虑到显示值属性的定义里,几乎所有情况都只需要返回一条记录,因此建议大家使用select1,不要使用select

  • map函数说明

    显示值对照表函数,从对照表中找出当前单元格对应值的显示值,没有则返回null

    语法: map(valueListExp, displayListExp)

    参数说明:

    valueListExp 真实值列表,可以是可扩展单元格或结果为集合列表的表达式

    displayListExp 显示值列表,可以是可扩展单元格或结果为集合列表的表达式 真实值列表和显示值列表一一对应

    返回值: 字符型,和当前格真实值对应的显示值

    示例:

    例1:map(to(1,3),list("男","女","不定"))

    例2:map(arg1,arg2) 其中arg1为1,2,3组成的参数组,arg2为"男","女","不定"组成的字符串组

    例3:map(list(1,2,3),list("男","女","不定"))

  • Select1函数说明

    从数据集中按顺序检索到符合过滤条件的第一条记录,返回其selectExp值

    语法: datasetName.select1(selectExp{,filterExp{,rootGroupExp}})

    参数说明: selectExp 要选择的字段列名/列号,,也可以是表达式。 列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推 filterExp 过滤条件 rootGroupExp 是否root数据集表达式

    返回值: 数据类型不定,由selectExp的运算结果决定

    特别说明: 当对数据集运用过滤条件后确定只剩一条记录时,虽然select的运算结果一样,但是select1运算效率高,因为他只要找到符合条件的记录,就不继续检索了,而select要检索完所有的记录才返回。

    示例:

    例1:ds1.select1(name) 返回数据集ds1中第一条记录的name字段值

    例2:ds1.select1(name,score>90) 从数据集ds1中检索出成绩大于90的记录,返回第一条记录的name字段值

  • Value函数说明

    取得当前单元格的值

    语法: value()

    返回值: 当前单元格的值