精选文章 IReport order by作为参数传递

IReport order by作为参数传递

作者:彩虹海呐- 时间: 2020-07-28 11:44:48
彩虹海呐- 2020-07-28 11:44:48

随手记

 

问题背景:

ireport 打印人员信息,需要按照客户选择的排序方式来打印

客户可选 排序方式有5种

IReport order by作为参数传递1

打印的人员:

IReport order by作为参数传递2

 

尝试方案:

这种情况排序板块需要用子模版的方式实现

 

尝试零:

有五种排序方式,新建五个按照不同方式排序的子模版,然后主模板根据标注位,决定用哪个子模版。

尝试零结果:成功,但是直接否决

原因:4个类似的主模板要20个子模版,子模版众多,不能复用

 

尝试一:

主模板通过传递排序的字段到子模板,然后排序

 

传递参数orderBy,处理后获取排序的列传递给子模版:

IReport order by作为参数传递3

子模版直接order by 参数

IReport order by作为参数传递4

 

尝试一结果:失败 

原因:传递的参数类型为字符串,不是列,即(order by 'xxxxx' 而非 order by 列)

----------- $P{orderBy} 换成  $P!{orderBy} 就行了

 

 

尝试二:主模板传递标志,子模版处理标志转化为需要排序的列

主模板传递标志:

IReport order by作为参数传递5

子模版处理标志转化为需要排序的列:

IReport order by作为参数传递6

这个方式基本已经可以了,但是还有一个小问题:

因为某些字段是varchar型,而存储的内容是数字,需要用到to_number来格式化字段(否则11会排到5前面

但是case when end 中,所有的值似乎只能是一种类型,否则会报类型错误。

 

解决方法:用 lpad 函数代替 to_number

IReport order by作为参数传递7

 

尝试二结果:成功

原因:我帅

 

总结:

对sql和ireport的理解不到位,结合使用时出现的问题。此外,ireport虽然限制众多,但是在它的规则内还是可以翻出一些浪花的

勿删,copyright占位
分享文章到微博
分享文章到朋友圈

上一篇:你在滥用Python吗?初学者常会遇到的5个情景

下一篇:weex编译运行

您可能感兴趣

  • Mysqldump参数大全

    Mysqldump参数大全(参数来源于mysql5.5.19源码) 参数 参数说明 --all-databases , -A 导出全部数据库。 mysqldump -uroot -p --all-databases --all-tablespaces , -Y 导出全部表空间。 mysqldump -uroot -p --all-databases --all-tablespaces --n...

  • [svg] D3.js

    选择元素 D3提供了两种高级方法来选择元素:select和selectAll。 这些方法接收选择器字符串。 前者只返回第一个匹配的元素, 后者选择在文档遍历次序中所有匹配的元素。 这个方法也可以接受节点, 这可以用来和第三方库例如JQuery或者开发工具($0)整合。 d3.select(selector) 选中与指定选择器字符串匹配的第一个元素, 返回单元素选择结果。如果当前文档中没有匹配...

  • 学习笔记-mysql_备份与还原

    1.数据备份 1.mysqldump命令备份 mysqldump -u user -h host -ppassword dbname[tbname [tbname...

  • mysqldump参数详细说明

    2019独角兽企业重金招聘Python工程师标准>>> 参数 参数说明 --all-databases , -A 导出全部数据库。 mysqldump -uroot -p --all-databases --all-tablespaces , -Y 导出全部表空间。 mysqldump -uroot -p --all-databases --all-tablespaces --no-tabl...

  • Oracle 游标使用全解

    2019独角兽企业重金招聘Python工程师标准>>> -- 声明游标;CURSOR cursor_name IS select_statement --For 循环游标 --(1)定义游标 --(2)定义游标变量 --(3)使用for循环来使用这个游标 declare --类型定义 cursor c_job is select em...

  • 常见.Net 英文专业词汇收集 个人收集[非发表用]

    abstract class 抽象类 accelerator 快捷键 accelerator mapping 快捷键映射 accelerator table 快捷键对应表 access modifier 访问修饰符 Access Pack 访问包 access specifier 访问说明符 access violation 访问冲突 accessibility 辅助功能 accessibi...

  • C#2.0简介

    C#2.0简介 C# 2.0引入了很多语言扩展,最重要的就是泛型(Generics)、匿名方法(Anonymous Methods)、迭代器(Iterators)和不完全类型(Partial Types)。 • 泛型允许类、结构、接口、委托和方法通过它们所存贮和操作的数据的类型来参数化。泛型是很有用的,因为它提供了更为强大的编译期间类型检查,需要更少的数据类型之间的显式转换,并且减少了对装箱...

  • XML卷之实战锦囊(2):动态查询

    XML卷之实战锦囊(2):动态查询 -- Sailflying Sailflying(车仔)原创,版权所有,如需使用,请与我联系( sailflying@163.net ) 动机: 查询功能是我们在网站上见过的最普遍也是最常用的一个功能模块了。以往的信息查询都是连接到数据库的,每一次点击都必须要后台数据库的支持。然而很多情况下用户往往只针对某一部分的数据进行操作,这样不但服务器的负担加重,而...

华为云40多款云服务产品0元试用活动

免费套餐,马上领取!
CSDN

CSDN

中国开发者社区CSDN (Chinese Software Developer Network) 创立于1999年,致力为中国开发者提供知识传播、在线学习、职业发展等全生命周期服务。