永洪社区

标题: 日期过滤-范围模式实现不绑定数据传参过滤 [打印本页]

作者: yhdata_zEA8cy17    时间: 2022-4-29 15:57
标题: 日期过滤-范围模式实现不绑定数据传参过滤
报表样式如下:

其中 选择时间是日期过滤主键-范围模式,这里我没有绑定数据,点击查询时,变化时运行脚本 设置
param['开始日期']=日期范围.firstDates
param['结束日期']=日期范围.secondDates
然后直接在下面指标展示设置日期dt(日期格式‘yyyy-mm-dd’)在['开始日期']和['结束日期']之间
报以下错误

执行数据失败:g5.util.GRTException: 类型强制转换异常:t2022-3-1不能转化为日期类型
如何实现参数正确传值呢?并且当参数不传值的时候,怎么保证报表可查询所有数据而不会报日期不能为Nan错误呢?




报表具体信息见附件

作者: 永洪tech-lqf    时间: 2022-4-29 15:57
脚本设置可以修改为这个:
param['当周第一天']=formatDate(dateTrunc('week',dateAdd(date(2022,4,16),'day',-1),'Monday'),'yyyy-MM-dd');
param['上周第一天']=formatDate(dateTrunc('week',dateAdd(date(2022,4,16),'day',-7),'Monday'),'yyyy-MM-dd');
param['上月同日']=formatDate(dateAdd(dateAdd(date(2022,4,16),'day'),'month',-1),'yyyy-MM-dd');

var a = 日期范围.firstDates[0];
var b =replace(a,1,1,'');
var y = left(b,4);
var m = mid(b,6,1);
var d = right(b,1);
param['开始日期'] = date(y,m,d);
var a1 = 日期范围.secondDates[0];
var b1=replace(a1,1,1,'');
var y1 = left(b,4);
var m1 = mid(b,6,1);
var d1 = right(b,1);
param['结束日期'] = date(y1,m1,d1);
refreshData();
作者: Fiona    时间: 2022-4-29 17:31
你用文本参数,设置成日期类型来选把。
日期过滤选值后,选择的值为t2022-3-20,是字符串的,你还得通过脚本将它转为日期类型2022-04-20
作者: yhdata_zEA8cy17    时间: 2022-4-29 21:28
本帖最后由 yhdata_zEA8cy17 于 2022-4-29 22:01 编辑
永洪tech-lqf 发表于 2022-4-29 17:33
脚本设置可以修改为这个:
param['当周第一天']=formatDate(dateTrunc('week',dateAdd(date(2022,4,16),'da ...

这样写我选择2022.4.1-2022.4.7,开始日期、结束日期怎么是3月份?
作者: 永洪tech-lqf    时间: 2022-4-30 11:18
yhdata_zEA8cy17 发表于 2022-4-29 21:28
这样写我选择2022.4.1-2022.4.7,开始日期、结束日期怎么是3月份?

已提交工单,后续产品迭代会解决




欢迎光临 永洪社区 (https://club.yonghongtech.com/) Powered by Discuz! X3.4