FINEREPORT报表软件 日期时间段查询问题
这个文章改了三四次 没有一次 是对的 就对自己一个总结
数据库的where 条件 是一条一条对应的 比如 where id=‘cd12’ 上来是所有的条数都去跟cd12 比较 所以当你写case when 语句时候 case when 条件 then true 只有满足这个条件的才会返回 true
数据库 oracle
页面如下图当第一次打开页面的时候 入场时间 这个筛选条件控件是没有值的如果是字符串格式 返回的可能是''(但是我在数据库中,他也识别成了null 不知道为啥)
假设入厂时间控件 id 为rc_s(开始时间) rc_e(结束时间) 日期字段为date 表名table(只是举个例子)
finereport 报表规则
select * from table where to_char(date,'yyyy-mm-dd') between '${rc_s}' and '${rc_e}' (这么写可能很垃圾但是很爽)
如果正巧没有传进来值 页面是不展示的 要求是 打开页面展示全部的数据 添加条件在展示条件数据
(想过赋值控件初始值,呵呵我没找到咋赋值 也不会也不想找api了)
解决方案 如果是’‘ 或者null 值时 只要将这个空值 赋值成该字段的值就可以了
case when 比较好把 毕竟mysql 也可以
select * from table where
decode('${rc_s}',NULL,to_char(date,'yyyy-mm-dd'),'${rc_s}')<=to_char(date,'yyyy-mm-dd') and
decode('${rc_e}',NULL,to_char(date,'yyyy-mm-dd'),'${rc_e}')>=to_char(date,'yyyy-mm-dd')
我知道没人这么写代码因为没必要,人家都用动态sql,xml文件(现在想要查询的数据是 规定时间段内 的数据 若 一个为空就查全部,上面decode 这种写法 会导致 例如开始时间是空 他查出的数据就是 结束时间之前的所有数据 结束之后的数据是不是展示的 丢失了 结束时间之后的数据 )
oracle 无法写case when 条件 then true(这个true 不允许写 )
where 条件里面再添加 if这种判断条件 本来就是有病 只能想别的办法解决
1 对控件赋值初始值(我将finereport 输出改成了info 发现 打印出来sql 还是不会获取到 控件的值(我是6.5 ) 我根本不懂这个报表机制 就这样吧 )
2 (null 和 你给的条件比较 是false 比如 A字段 (字段内容是‘’ 或者 null ) A LIKE '%%' 是查不到任何数据 ) 所以要对字段 添加非空 nvl(A,'%') (前面还有个条件 因为这个字段是空的 所以我的日期也炸了 )
-- 现在有一张 A表 A表字段为 T date 时间类型 查询指定时间段 内数据
-- 指定的时间段变量为 s 和 e s和e 可能都是空的
SELECT T FROM A WHERE (T BTWEEN '${S}' AND '${E}' OR S IS NULL OR E IS NULL )
FINEREPORT报表软件 日期时间段查询问题相关推荐
- mybatis之xml中日期时间段查询的sql语句
<if test="startDate!=null and startDate!=''"> and CREATEDATE >=#{startDate}</i ...
- 目前国内几大著名报表软件(2014更新)
目前国内几大著名报表软件(2014更新) cnham 2017-05-08 09:44:24 4044 已收藏 2 分类专栏: HTML和脚本 文章标签: 报表工具 最后发布:2017-05-08 0 ...
- 国内主流报表软件比较分析(2014最新版)
NO1: 帆软报表(FineReport)--国内最专业的 JAVA 报表软件,企业级报表的最佳选择 软件下载地址:http://www.finereport.com/products/trial 软 ...
- FineReport 报表模板生成+导出Excel表格
跟spring boot 整合 :https://blog.csdn.net/zhanglixin_1984/article/details/79194145 看官方的文档纠结了一天,好东西,这个怎么 ...
- 帆软Java报表软件
帆软Java报表软件 百科名片 帆软Java报表软件 FineReport是由帆软自主 研发的一款纯Java编写的报表软件产品,集数据展示(报表)和数据录入( 表单)功能于一身,能够制作复杂的报表,操 ...
- java定时器参数_Java报表软件定时器参数之一
在FineReport报表软件为例,详细介绍一下定时器的参数. 1.时间 定时器中主要用到的时间参数如下: 日报 当前日期的前一天:Format(today()-1,"yyyy-MM-dd& ...
- 报表软件公司悬赏 BUG,100块钱1个的真实用意
上一篇文章我讲到,报表软件FineReport一反常态,做了个<提BUG,拿现金>的活动,1个BUG,100块钱.纵览软件行业,如金蝶用友浪潮IBM微软等国内外巨头,均没有这样的举动去征集 ...
- FineReport表格软件-CSS动态切换年月日查询报表
1. 概述 1.1 版本 报表服务器版本 功能变更 11.0 -- 1.1 预期效果 由于业务的需要,很多情况下需要当满足某个条件时,某些查询条件才显示出来,如下图所示: 1.2 实现思路 由于业务的 ...
- mysql 查询某个日期时间段,每天同一时间段的数据
mysql 查询某个日期时间段,每天同一时间段的数据: SELECT * FROM t_a01_eltable WHERE DATE_FORMAT(acqtime,'%Y-%m-%d')>='2 ...
最新文章
- 年年英雄会,岁岁侠客行
- poj1503(高精度模拟加法)
- 心血来潮学python
- 4.5.3 BGP协议
- 悬崖边上的舞者,记7.2生产数据库灾难事件
- jzoj6804-NOIP2020.9.26模拟jerry【dp】
- 并查集(Disjiont Set)
- mysql大小写敏感_MySQL数据库大小写敏感的问题
- Discuz代码片段
- mysql 数据库优化
- 汇川H5U PLC通过EtherCAT总线控制SV660N和X3E伺服
- 74LS151 8选1数据选择器实现4位奇偶判断电路-QuartusII 软件仿真
- matlab 复制 模块,想把m文件在simulink 中的调用,我用的是matlab function 模块。
- Excel怎么在指定文本后面插入短横线符号
- HIVE中 ROW_NUMBER() OVER() 函数
- 吴恩达机器学习18-应用实例:图片文字识别
- 华为服务器修改root密码,华为云服务器root权限设置密码
- 猫眼电影经典电影爬取
- Spring资源抽象Resource
- Minecraft 1.19.2 Forge模组开发 08.生物生成
热门文章
- XP系统的Python3.4.4安装pandas
- 计算机2013最新未来教学计划,2013计算机二维动画制作教学计划1.doc
- 神奇的视频压缩工具HandBrake
- 自动驾驶模拟软件Carla---环境搭建和编译
- 不能将“this”指针从“const CPaopao”转换为“CPaopao
- BeagleBoneBlack学习(一):BBB相关文档及链接
- 超级简单的解压缩方法
- 支持中国信用卡网购的海外好网店(希望各位坛友补充)
- C# 含runat=server属性 select控件的value和text赋值(实际值和显示文本)
- 洛谷P1304 哥德巴赫猜想