一、ureport中表达式(其实也包含了函数,函数也是在表达式进行定义)

(1)基本表达式类型:数字(含小数位支持),字符串,布尔值

(2)支持加减乘除,求余数(%)。

(三)三元表达式:

可以看到,和普通的三元表达式一样,它的第一部分是条件部分,条件部分可以有多个条件(用and或or连接),“?”后面是条件满足后执行并返回的表达式部分,“:”后面则是条件不满足时执行返回的表达式部分。

(四)if用法:

if(A1>1000 and A1<20000){

return "正常值:"+A1

}else if(A>20000 and A1<40000){

return "超高值"

}else{

"低值"

}

(五)case用法:

case{
A1==100 
return "正常值",
A1>100 and A1<1000
return '偏高'
}

二、单元格引用(表达式如何用法)

在报表当中,大多数的计算都是针对单元格或与单元格有关,因为报表中单元格多数都与数据绑定,而数据往往又是多条,所以计算后的报表一个单元格会产生多个,这样对于单元格的引用就变的比较复杂。

这里有一个概念牢记:

  • 一个单元格的左边一定均是它的左父格;
  • 一个单元格的上边一定均是它的上父格。

设定单元格的表达式,数据来源设定是来自同行或同列是:首先判断的是目标单元格与其所在单元格是否位于同一行或行,如果是则直接取对应行或列上目标单元格的值

如果当前单元格与目标单元格不在同一行或列:  这时候一个原则,找到其共同的左父格或者上父格的间接父单元格(即左父或者上父),然后把它的子单元格所有值取出来,例如:

(1)有共同的父格:

多个值的输出在 UReport2 中,如果取到值超过一个,输出时多个值间以“,”分隔,如上图所示。

(2)无共同的父格:

在上面的例子中,B2 单元格表达里输入 C1,因为 B2 和 C2 既不在同一行或列,也没有共同的父格,所以 B2 中将取到所有的 C1 单元格的值,如下图所示:

总结:目标格获取原则(重点记住)
由上面的例子可以看出,UReport2 中单元格表达式在取目标格值时,优先考虑的是目标格是否与其位于同一行或列,如果是则取与其位于同一行或列的目标单元格,如果不是,则取与当前单元格有共同父格的所有目标单元格,如果他们有共同的上父格或共同的左父格,那么就取共同上父格与共同左格交集部分的目标单元格;如果他们没有共同的父格,那么就取迭代后所有的目标单元格。

另一个重点记住:所以ureport提供了更改父格实现单元格的取值,有时候就是为了实现当前单元格与目标单元格拥有特定的父单元格。

(3)单元格座标:为了实现更复杂的单元格引用:用于做同比和环比

单元格坐标格式(即只有向上,向下位移的概念)
单元格名称[Li:li,Li-1:li-1,…;Ti:ti,Ti-1:ti-1…]{条件...}

L 表示左父格,l 表示左父格展示后的序号,序号为负值,表示向上位移;T 表示上父格,t 表示上父格展开后的序号,序号为负值,表示相对于当前单元格向上位移,正值则表示向下位移,如果只有左父格,那么直接写 L 部分即可;如果只是上父格,那么前面需要加上“;”号,然后写 T 部分,后面的大括号中是条件部分,多个条件之间用 and/or 连接,表示对通过坐标取到的单元格进行条件过滤(如果取到多个单元格的话),条件部分是可选的,相关示例如下:

单元格坐标示例

说明

C1[A1:2,B1:1]

在找 C1 时先找单元格 A1 展开后的第2格;再找第二个 A1 下的 B1 单元格展开后的第一个单元格,然后再找这个 B1 单元格对应的 C1 单元格

C2[A1:2,B1:2;C1:3] 在找 C2 时,先找 A1 单元格展开后的第二格,再找第二个 A1 单元格下 B2 单元格展开后的第二格,再根据第二个展开的 B2 单元格找其下名为 C2 单元格的左子格;然后再找到 C1 单元格展开后的第三格,再看其下的 C2 单元格,取 C2 单元格的交集
C2[A1:2,B2:2]{C2>1000} 表示取 A2 单元格展开后的第二格,再取其下 B2 单元格展开后第二格,再取 B2 下所有的 C2 单元格,最后再对取到的 C2 单元格进行条件过滤,只取出 C2 单元格值大于1000的所有 C2 单元格。
C2[A1:2,B2:2]{C2>1000 and C2<10000} 表示取 A2 单元格展开后的第二格,再取其下 B2 单元格展开后第二格,再取 B2 下所有的 C2 单元格,最后再对取到的 C2 单元格进行条件过滤,只取出 C2 单元格值大于1000且小于10000的所有 C2 单元格的值。

引用所有单元格
如果我们需要引用所有单元格时,那么只需要在单元格名称后跟”[]“即可,如 A1[],表达引用所有 A1 单元格,而不管当前引用格所在位置,同时在引用所有单元格时,还可以后跟条件,以对引用格做进一步条件限制,如 A1[]{@>1000 and @<10000},表示要引用所有的 A1 单元格,但要求引用的 A1 单元格值要大于1000同时小于10000,这里的@符号是2.2.3及以后版本新增加的一个表达式符号,专门用于取条件循环中当前循环对象。

开源UReport 整合到产品中实践简要:(七)ureport设计器设计报表前基本功知识-表达式与函数相关推荐

  1. 开源UReport 整合到产品中实践简要:(六)ureport设计器设计报表前基本功知识-计算模型

    一.报表计算模型理解 (一)报表中的单元格,每个单元格无非用来显示: 文本:一般就是文字,例如表的标题,表格的列标题,小计,合计,制作人等文本标签. 数据集中某一个字段:数据集中字段的值 表达式:这个 ...

  2. 开源UReport 整合到产品中实践简要:(二)UReport 设计器制作的报表效果参考(转载)

    ​ UReport2是一款基于架构在Spring之上纯Java的高性能报表引擎,通过迭代单元格可以实现任意复杂的中国式报表. ​ 在UReport2中,提供了全新的基于网页的报表设计器,可以在Chro ...

  3. 开源UReport 整合到产品中实践简要:(五)vue中用iframe显示展现报表数据解决token问题及跨域问题

    一.vue页面组件中定义以下内容: <iframe ref="iReportFrame" id="uReportFrame" src="&quo ...

  4. 数据仓库自动抽取:通过 SQL Server 企业管理器中的数据转换服务 (DTS) 设计器 创建 Analysis Services 处理任务...

    本次学习 是为了实现 通过 SQL Server 企业管理器中的 数据转换服务 (DTS) 设计器 创建 Analysis Services 处理任务 以实现数据仓库所需数据的自动抽取转换填充 --- ...

  5. 基于云原生的大数据产品前端实践 | 第七期图文直播文字回放

     点击"蓝字"关注我们 2月5日晚,智领云第七次社群图文技术直播如约而至.本次直播由智领云Web开发经理陈磊为大家分享了<基于云原生的大数据产品前端实践>主题内容,其中 ...

  6. 使用开源的驰骋表单设计器设计表单案例演示

    我们以客户提供如下原始的word表单样本,使用驰骋表单设计器制作表单的过程介绍如下: 工业设计和创意需求登记表原始表单图 在ccform表单设计器中,设计如下: 驰骋表单设计器,设计表单所见既所得,操 ...

  7. B端产品中,Web端表单如何设计

    作者:Nick (转载已获得作者授权) 一.表单的定义 表单是信息添加.录入的通用形式:其作为获取用户输入的重要交互方式,也承担着将问题和答案进行配对的角色. 二.表单的设计原则 设计原则是任何一种解 ...

  8. UE4学习笔记:学习UE4中的UMG(图形UI设计器)工具(四):UMG中的动画

    学习完了各自控件及操作后来了解控件蓝图中的动画功能 一.简单的UI动画 我们先来接触控件蓝图左下角的动画面板,首先在视觉界面中添加一个Image控件,并设置图片 在动画面板中单击+Animation, ...

  9. 水晶报表 jar包版本过低_工具类学习-UReport报表设计器整合

    dada-report报表整合UReport报表设计器工具 结合日常工作和学习实践,针对传统报表子站面临的问题,尝试借助UReport报表设计器解决 1.可在现有工程基础上引入Ureport2报表设计 ...

最新文章

  1. c语言统计最长单词长度,求3个字符串中最长单词的长度 求救 会一个的
  2. 用偷梁换柱法清除腾讯QQ迷你首页的方法
  3. 技术干货-PCB彩印教程(水转印)
  4. QUIC的前世今生——HTTP演变史
  5. 【theano-windows】学习笔记十四——堆叠去噪自编码器
  6. lambda表达式浅析【C++学习笔记】
  7. ftp 530 This FTP serveris anonymous only,
  8. 手机900e模式如何救_手机护眼模式真的有用吗?长时间看手机如何保护视力?...
  9. ADB命令行工具使用
  10. s3c2440串口详解
  11. Chrome 76.0.3809.100(正式版本) (64 位) 版本 77.0.3865.90不显示网址中的www怎么解决...
  12. 大一新生应该如何学习C语言,书上代码看不懂理解不了怎么办?
  13. windows 一些恶搞的bat小脚本
  14. UMLChina公众号文章精选(20220126更新精选)
  15. winserver2008 安装elasticsearch
  16. TP5整合阿里云OSS上传文件第二节,异步上传头像(下)
  17. 【JJ斗地主官网下载】在线斗地主比赛赢大奖,中文棋牌游戏
  18. Excel批量合并相同内容单元格操作——WPS太秀了
  19. excel应用技巧:F功能键诸多应用汇总
  20. linux下挂载gpt格式的移动硬盘

热门文章

  1. 抖音平台多产物代码隔离技术的实践与探索
  2. Linux gtypist
  3. 四五打印助手无效属性值380_错误3706、错误429、错误-2147217900 四五打印助手使用帮助...
  4. 【Altium Designer】使用AD17导出Gerber文件
  5. 电脑开机报警声音大全
  6. 深度学习服务器怎么选?哪个更划算?
  7. 一起自学SLAM算法:8.2 Cartographer算法
  8. cs131 第二讲 颜色与线性代数
  9. JDK 16 新特性,正式发布!程序员:追不上了……
  10. android系统定制开发动态显示隐藏虚拟按键虚拟导航Navigationbar