开源UReport 整合到产品中实践简要:(七)ureport设计器设计报表前基本功知识-表达式与函数
一、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设计器设计报表前基本功知识-表达式与函数相关推荐
- 开源UReport 整合到产品中实践简要:(六)ureport设计器设计报表前基本功知识-计算模型
一.报表计算模型理解 (一)报表中的单元格,每个单元格无非用来显示: 文本:一般就是文字,例如表的标题,表格的列标题,小计,合计,制作人等文本标签. 数据集中某一个字段:数据集中字段的值 表达式:这个 ...
- 开源UReport 整合到产品中实践简要:(二)UReport 设计器制作的报表效果参考(转载)
UReport2是一款基于架构在Spring之上纯Java的高性能报表引擎,通过迭代单元格可以实现任意复杂的中国式报表. 在UReport2中,提供了全新的基于网页的报表设计器,可以在Chro ...
- 开源UReport 整合到产品中实践简要:(五)vue中用iframe显示展现报表数据解决token问题及跨域问题
一.vue页面组件中定义以下内容: <iframe ref="iReportFrame" id="uReportFrame" src="&quo ...
- 数据仓库自动抽取:通过 SQL Server 企业管理器中的数据转换服务 (DTS) 设计器 创建 Analysis Services 处理任务...
本次学习 是为了实现 通过 SQL Server 企业管理器中的 数据转换服务 (DTS) 设计器 创建 Analysis Services 处理任务 以实现数据仓库所需数据的自动抽取转换填充 --- ...
- 基于云原生的大数据产品前端实践 | 第七期图文直播文字回放
点击"蓝字"关注我们 2月5日晚,智领云第七次社群图文技术直播如约而至.本次直播由智领云Web开发经理陈磊为大家分享了<基于云原生的大数据产品前端实践>主题内容,其中 ...
- 使用开源的驰骋表单设计器设计表单案例演示
我们以客户提供如下原始的word表单样本,使用驰骋表单设计器制作表单的过程介绍如下: 工业设计和创意需求登记表原始表单图 在ccform表单设计器中,设计如下: 驰骋表单设计器,设计表单所见既所得,操 ...
- B端产品中,Web端表单如何设计
作者:Nick (转载已获得作者授权) 一.表单的定义 表单是信息添加.录入的通用形式:其作为获取用户输入的重要交互方式,也承担着将问题和答案进行配对的角色. 二.表单的设计原则 设计原则是任何一种解 ...
- UE4学习笔记:学习UE4中的UMG(图形UI设计器)工具(四):UMG中的动画
学习完了各自控件及操作后来了解控件蓝图中的动画功能 一.简单的UI动画 我们先来接触控件蓝图左下角的动画面板,首先在视觉界面中添加一个Image控件,并设置图片 在动画面板中单击+Animation, ...
- 水晶报表 jar包版本过低_工具类学习-UReport报表设计器整合
dada-report报表整合UReport报表设计器工具 结合日常工作和学习实践,针对传统报表子站面临的问题,尝试借助UReport报表设计器解决 1.可在现有工程基础上引入Ureport2报表设计 ...
最新文章
- c语言统计最长单词长度,求3个字符串中最长单词的长度 求救 会一个的
- 用偷梁换柱法清除腾讯QQ迷你首页的方法
- 技术干货-PCB彩印教程(水转印)
- QUIC的前世今生——HTTP演变史
- 【theano-windows】学习笔记十四——堆叠去噪自编码器
- lambda表达式浅析【C++学习笔记】
- ftp 530 This FTP serveris anonymous only,
- 手机900e模式如何救_手机护眼模式真的有用吗?长时间看手机如何保护视力?...
- ADB命令行工具使用
- s3c2440串口详解
- Chrome 76.0.3809.100(正式版本) (64 位) 版本 77.0.3865.90不显示网址中的www怎么解决...
- 大一新生应该如何学习C语言,书上代码看不懂理解不了怎么办?
- windows 一些恶搞的bat小脚本
- UMLChina公众号文章精选(20220126更新精选)
- winserver2008 安装elasticsearch
- TP5整合阿里云OSS上传文件第二节,异步上传头像(下)
- 【JJ斗地主官网下载】在线斗地主比赛赢大奖,中文棋牌游戏
- Excel批量合并相同内容单元格操作——WPS太秀了
- excel应用技巧:F功能键诸多应用汇总
- linux下挂载gpt格式的移动硬盘
热门文章
- 抖音平台多产物代码隔离技术的实践与探索
- Linux gtypist
- 四五打印助手无效属性值380_错误3706、错误429、错误-2147217900 四五打印助手使用帮助...
- 【Altium Designer】使用AD17导出Gerber文件
- 电脑开机报警声音大全
- 深度学习服务器怎么选?哪个更划算?
- 一起自学SLAM算法:8.2 Cartographer算法
- cs131 第二讲 颜色与线性代数
- JDK 16 新特性,正式发布!程序员:追不上了……
- android系统定制开发动态显示隐藏虚拟按键虚拟导航Navigationbar