如何让筛选控件默认显示最新一条的数据?

因为最新一条数据是不定时变化的,所以使用字符串的默认值不理想;

使用字段获取数据集里最新一条数据,会影响其他筛选条件框,就是当我变更这一个筛选条件的时候,之前其他选好的筛选框条件会为空,要重新选择,不符合理想;

使用公式不知道截取字段第一个数据函数咋写

FineReport yzm545275 发布于 2022-9-22 13:39
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
CD20160914Lv8专家互助
发布于2022-9-22 14:44

如果数据集已经做了排序,直接这样就行了

INDEXOFARRAY(数据集.select(字段),1)

最佳回答
0
runerLv7资深互助
发布于2022-9-22 13:47(编辑于 2022-9-22 14:32)

加个判断

order by 一下

${if(len(参数名)== 0 ,"limit 1 ","")}

------

select * from 表名 

order by 字段 desc

${if(len(参数名)== 0 ,"limit 1 ","")}

参考

-------

你说的是参数,默认值是数据集的最大一条吧

数据集函数概述- FineReport帮助文档 - 全面的报表使用教程和学习资料 (fanruan.com)

SQL函数- FineReport帮助文档 - 全面的报表使用教程和学习资料 (fanruan.com)

image.png

  • yzm545275 yzm545275(提问者) 这个方法不行,不会自动填充进筛选条件框,而且也需要其他条件可选。只是默认显示值要为最新。
    2022-09-22 14:00 
  • runer runer 回复 yzm545275(提问者) max(数据集.select(字段))
    2022-09-22 14:05 
  • yzm545275 yzm545275(提问者) 回复 runer 数据集.select(字段,limt 1)这样的公式是最合理的,可惜limit在公式里没有,字段不是数值,是一个字符串,是一个年份段,比如2010年-2016年,这样的,就是不知道有哪个函数可以平替limit,我已经在数据集里做好排序了。
    2022-09-22 14:13 
  • runer runer 回复 yzm545275(提问者) 我觉着用sql函数可以 SQL(connectionName,sql,columnIndex,rowIndex) 语法 SQL(connectionName,sql,columnIndex,rowIndex) 返回的数据是从 connectionName 数据库中获取的 SQL 语句的表中的第 columnIndex 列第 rowIndex 行所对应的元素。
    2022-09-22 14:31 
  • yzm545275 yzm545275(提问者) 回复 runer 这个我也用过,但是sql语句如果太复杂的话,感觉放公式里会很冗长。楼下的大哥给的公式解决了我的问题,(┌・ω・)┌✧谢谢惹
    2022-09-22 15:32 
  • 4关注人数
  • 301浏览人数
  • 最后回答于:2022-9-22 15:24
    请选择关闭问题的原因
    确定 取消
    返回顶部