sql里面应用了当前页数$$page_number这个参数,怎了提示配置数据集错误

image.png

这样写怎么提升数据集配置错误

FineReport 帆软用户p9k8MX4NIW 发布于 2025-8-28 08:49
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
snrtuemcLv8专家互助
发布于2025-8-28 08:51

这个正常可以的,你加下引号试试

where prev_end_page='${arg2)'

  • 帆软用户p9k8MX4NIW 帆软用户p9k8MX4NIW(提问者) prev_end_page这个是个数字,我要如何转换为数字
    2025-08-28 08:53 
  • snrtuemc snrtuemc 回复 帆软用户p9k8MX4NIW(提问者) 你是数字的话,这个写法
    where prev_end_page=int(${arg2))
    主要看你什么数据库,每个数据库转数字的函数不一样
    2025-08-28 08:54 
最佳回答
0
CD20160914Lv8专家互助
发布于2025-8-28 08:58

$page_number不能直接传给数据集

你要自己定页码,类似这样

单数据集分页SQL实现层式报表 - FineReport帮助文档 - 全面的报表使用教程和学习资料

一般类似这样

ROW_NUMBER() OVER(ORDER BY Plant)  AS 行号

from View_tci_rd_p_Analysis_Detail

WHERE 1=1

${if(len(qf)=0,""," and Distinguish in ('"+qf+"')")}

) t

/*以下参数是自定义的,这个会结合自定义的上一页,下一页这样来传的!*/

WHERE 行号 between ${pageSize}*(${pageIndex}-1)+1 and ${pageSize}*${pageIndex}

  • 帆软用户p9k8MX4NIW 帆软用户p9k8MX4NIW(提问者) oracle的写法也是这样吗?
    2025-08-28 09:13 
  • CD20160914 CD20160914 回复 帆软用户p9k8MX4NIW(提问者) oracel中只是改一下类似这样:SELECT * FROM (select A.*,ROWNUM rn from (select * from 产品) A where ROWNUM ${page-1}*20,在oracle中ROWNUM 只支持小于,大于是不支持的,因此要做如上定义
    2025-08-28 09:21 
  • 帆软用户p9k8MX4NIW 帆软用户p9k8MX4NIW(提问者) 回复 CD20160914 ${page-1}这个page取值是取什么?
    2025-08-28 09:27 
  • CD20160914 CD20160914 回复 帆软用户p9k8MX4NIW(提问者) 就是页呀,比如当前你在第2页,那么传的page就是2-1然后再*20 这样就相当于每一页展示20行数据!
    2025-08-28 09:32 
  • 帆软用户p9k8MX4NIW 帆软用户p9k8MX4NIW(提问者) 回复 CD20160914 这个page不是写在sql里面相当于一个参数吗?这个参数不是需要赋值吗?
    2025-08-28 09:37 
  • 3关注人数
  • 44浏览人数
  • 最后回答于:2025-8-28 08:58
    请选择关闭问题的原因
    确定 取消
    返回顶部