FineReport SQL查询分页

news2025/1/17 6:01:27

 参考:https://help.fanruan.com/finereport/doc-view-4795.html

参考示例为填报页面,以下为分页预览模式下SQL查询分页的制作。

参数说明:

        模版参数:gPageSize=每页显示数量、gPageNo=当前页数

        数据集结果:totalcnt=总数、totalpage=总页数

1、创建数据集:

1.1、主数据集

.......

-- 添加分页内容
${if(len(gPageNo)=0,"","limit "+((gPageNo-1)*gPageSize)+","+gPageSize)}

 1.2、页码数据集pagetool

select
    count(1) as totalcnt,        -- 总数
    ceiling(count(1)*1.0/${gPageSize}) as totalpage        -- 总页数

from table

2、明细列表内容制作

3、自定义工具栏

3.1、工具栏内容

打开模板>模板web属性>分页预览设置,选择为该模板单独设置,将默认的工具栏按钮全部清除掉,然后依次添加两个自定义按钮,一个邮件按钮,两个自定义按钮,一个Word格式,一个PDF按钮。如下所示:

注:使用具体格式按钮,如邮件、Word格式、PDF按钮是为了JS直接使用控件名称获取空间方便修改其内容;

3.2、工具栏按钮说明

  • 第一个自定义按钮-首页,自定义其事件:

_g().getParameterContainer().getWidgetByName("gPageNo").setValue(1);
_g().parameterCommit();

  • 第二个自定义按钮-上一页,自定义其事件:

var pageno = FR.remoteEvaluate("=$gPageNo");
_g().getParameterContainer().getWidgetByName("gPageNo").setValue(pageno - 1);
_g().parameterCommit();

  • 第三个自定义按钮-下一页,自定义其事件:

var pageno = FR.remoteEvaluate("=$gPageNo");
_g().getParameterContainer().getWidgetByName("gPageNo").setValue(pageno*1 + 1);
_g().parameterCommit();

  • 第四个自定义按钮-末页,自定义其事件:

var totalpage = FR.remoteEvaluate("=value('pagetool',2,1)");
_g().getParameterContainer().getWidgetByName("gPageNo").setValue(totalpage);
_g().parameterCommit();

3.3、工具栏事件

添加加载结束后事件,设置工具栏内容:

setTimeout(function() {
    var bar = 1;    // 工具栏位置:0=上方工具栏、1=下方工具栏

    var totalcnt = FR.remoteEvaluate("=value('pagetool',1,1)");
    var totalpage = FR.remoteEvaluate("=value('pagetool',2,1)");
    // console.log(totalcnt + "-" + totalpage);

    var pageno = FR.remoteEvaluate("=$gPageNo");
    var pagesize = FR.remoteEvaluate("=$gPageSize");
    // console.log(pageno + "-" + pagesize);

    // 当前页
    var currentpageStr = "<input id='currentpage' min='1' type='number' style='width:50px;margin-left:5px;'/><label id='totalpage' style='font:400 14px Arial;'></label>";
    // 数据总量
    var totalcntStr = "<label style='font:400 14px Arial;margin-left:5px;'> 数据总量:" + totalcnt + "</label>";
    // 总页
    var pagesizeStr = "<label style='font:400 14px Arial;margin-left:5px;'>每页显示条数:</label><input id='pagesize' min='10' max='100' type='number' style='width:50px'/><label style='padding-right:20px'></label>";

    // 工具栏内容设置
    $("#fr-btn-Email").replaceWith(currentpageStr);	 // 邮件
    $("#fr-btn-Word").replaceWith(totalcntStr);	// Word格式
    $("#fr-btn-PDF").replaceWith(pagesizeStr);	// PDF

    $("#currentpage").val(pageno);
    $("#currentpage").attr("max", totalpage);
    $("#currentpage").attr("val", pageno);
    $("#totalpage").text(" / " + totalpage);
    $("#pagesize").val(pagesize);

    // 切换页码
    $("#currentpage").change(function() {
        var val = $(this).val();
        // alert(val);
        if (val < 1 || val > totalpage) {
            $(this).val(pageno);
        } else {
			// 查询
			_g().getParameterContainer().getWidgetByName("gPageNo").setValue(val);
			_g().parameterCommit();
        }
    });

    // 切换每页个数
    $("#pagesize").change(function() {
        var val = $(this).val();
        // alert(val);
        if (val < 10 || val > 100) {
            $(this).val(pagesize);
        } else {
			// 查询
			_g().getParameterContainer().getWidgetByName("gPageSize").setValue(val);
			_g().parameterCommit();
        }
    });
    _g().getToolbar(1).setVisible(true);

}, 10);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/829603.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

S形速度曲线轨迹规划(SMART PLC梯形图源代码)

有关S形速度曲线轨迹规划相关内容,可以查看下面相关文章,这里不再赘述公式推导过程。 S速度曲线轨迹规划问题(普通变频位置闭环控制算法介绍+SCL代码)_RXXW_Dor的博客-CSDN博客位置控制用PD控制器,详细内容介绍请查看下面博客文章:PD控制器算法详细解读_RXXW_Dor的博客-CS…

宠物医疗进化:互联网宠物医院开发改变兽医服务方式

随着互联网的飞速发展&#xff0c;各行各业都在积极探索数字化转型的可能性。而宠物医疗行业也不例外。互联网宠物医院的开发将为宠物主人和兽医带来许多好处。下面我们将介绍一些互联网宠物医院开发的好处。   提供便利的服务&#xff1a;互联网宠物医院的开发将使宠物主人能…

C# Blazor 学习笔记(5):blazor文件夹组件引入

文章目录 前言文件夹组件引入文件夹分类文件引入解决方法 前言 为了更好的组件化管理整个文件&#xff0c;我选择使用分文件夹对项目组件进行分类。 文件夹组件引入 文件夹分类 Shared&#xff1a;Layout布局空间放置地方&#xff0c;由于默认创建&#xff0c;动也不好动&a…

一元三次方程求解

一元三次方程求解 题目描述提示输入输出格式输入格式输出格式 输入输出样例输入样例输出样例 算法分析A C 代码 题目描述 有形如&#xff1a; a x 3 b x 2 c x d 0 ax^3bx^2c^xd0 ax3bx2cxd0一元三次方程。给出该方程中各项的系数 ( a a a&#xff0c; b b b&#xff0c;…

如何使用大模型处理生活繁琐的工作

如果每封电子邮件、每个带有订单、发票、投诉、录用请求或工作申请的 PDF 都可以翻译成机器可读的数据&#xff0c;会怎样&#xff1f;然后可以由 ERP / CRM / LMS / TMS 自动处理吗&#xff1f;无需编程特殊接口。 听起来很神奇&#xff1f;它确实有一些魔力。但最近已成为可…

山西电力市场日前价格预测【2023-08-04】

日前价格预测 预测明日&#xff08;2023-08-04&#xff09;山西电力市场全天平均日前电价为388.01元/MWh。其中&#xff0c;最高日前电价为447.89元/MWh&#xff0c;预计出现在19: 30。最低日前电价为348.29元/MWh&#xff0c;预计出现在13: 30。 价差方向预测 1&#xff1a; 实…

掌握Java JDK 1.8 API帮助文档中文版,事半功倍编程

文章目录 1. JDK 1.8 API帮助文档简介2. 如何查阅JDK 1.8 API帮助文档中文版2.1 在线文档2.2 本地文档2.3 集成开发环境&#xff08;IDE&#xff09; 3. 如何使用JDK 1.8 API帮助文档中文版3.1 寻找类和方法3.2 阅读文档说明3.3 查看示例代码 4. 总结 引言&#xff1a; Java是一…

UML—用例图的那些事

目录 背景: 1.用例图的发展史 过程: 1.用例图中的元素和关系 2.应用中的例子 总结&#xff1a; 背景: 1.用例图的发展史 用例图是一种常用的软件工程工具&#xff0c;用于描述系统的功能需求和用户与系统的交互。它在软件开发过程中起到了重要的作用&#xff0c;并且经历了…

工业级芯片 | 拓尔微TMI8920/8940D集成化优势,替代分立器件

电磁阀驱动器作为一种重要的控制装置&#xff0c;在工业设备、汽车、智能家居等行业得到了广泛应用&#xff0c;尤其对于工业设备来说需要长时间连续工作的情况下&#xff0c;芯片的稳定性和可靠性是重中之重。 目前市面上的阀门驱动大部分还在使用传统P-MOSFET驱动电路。相对…

初阶C语言-数组

“少年没有偏旁&#xff0c;自己便是华章&#xff01;” 今天我们继续一起来学习一下数组的相关知识点。 数组 1.一维数组的创建和初始化1.1 数组的创建1.2 数组的初始化1.3 一维数组的使用1.4 一维数组在内存中的存储 2. 二维数组的创建和初始化2.1二维数组的创建2.2二维数组…

安达发|APS系统帮助家具行业建立精益生产计划

随着家具企业的业务量不断扩大&#xff0c;仅依靠传统的ERP系统和人工生产调度已经不能满足精益生产改进的要求。建立高效的精益生产计划模型及其对应的组织结构&#xff0c;提高整个供应链计划的效率&#xff0c;优化计划结果&#xff0c;从而提高供应链的运作效率&#xff0c…

VSCode C/C++ 分目录编译配置

分目录编译配置记录 launch.json文件 注释处为修改内容 {// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息&#xff0c;请访问: https://go.microsoft.com/fwlink/?linkid830387"version": "0.2.0","configur…

ChatGPT已打破图灵测试,新的测试方法在路上

生信麻瓜的 ChatGPT 4.0 初体验 偷个懒&#xff0c;用ChatGPT 帮我写段生物信息代码 代码看不懂&#xff1f;ChatGPT 帮你解释&#xff0c;详细到爆&#xff01; 如果 ChatGPT 给出的的代码不太完善&#xff0c;如何请他一步步改好&#xff1f; 全球最佳的人工智能系统可以通过…

MATLAB算法实战应用案例精讲-【自动驾驶】路径规划

目录 前言 几个高频面试题目 无人车运动规划&#xff0c;路径规划&#xff0c;轨迹规划的区别和联系&#xff1f; 算法原理 路径规划算法原理 1.建立轨迹规划坐标系 2、建立初始规划轨迹 3. 轨迹曲线插值 车辆路径规划跟随原理 运动规划 什么是Motion Planning Moti…

Vite首次启动慢的问题

前言 ::: warning ​ 众所周知&#xff0c;通常情况下Vite要比Webpack快&#xff0c;但经过实际感受&#xff0c;默认情况下&#xff0c;Vite项目的启动速度确实很快&#xff0c;但如果某个界面是第一次进入&#xff0c;且依赖比较多或者比较复杂的话&#xff0c;就会很慢&am…

记一次 .NET某培训学校系统 内存碎片化分析

一&#xff1a;背景 1. 讲故事 前些天有位朋友微信上找到我&#xff0c;说他们学校的Web系统内存一直下不去&#xff0c;让我看下到底是怎么回事&#xff0c;老规矩让朋友生成一个dump文件丢给我&#xff0c;看一下便知。 二&#xff1a;WinDbg 分析 1. 托管还是非托管 要…

elasticsearch 配置用户名和密码

无密码的其他配置项在&#xff1a;https://blog.csdn.net/Xeon_CC/article/details/132064295 elasticsearch.yml配置文件&#xff1a; xpack.security.enabled: true xpack.security.http.ssl.enabled: true xpack.security.http.ssl.keystore.path: /path/to/elastic-certi…

js实现左右列表对齐(左边点击时,右边滚动和左边对齐。反之右边点击时,左边滚动和右边对齐)

需求&#xff1a; js实现左右列表对其&#xff08;左边点击时&#xff0c;右边滚动和左边对齐。反之右边点击时&#xff0c;左边滚动和右边对齐&#xff09; 效果示意图&#xff1a; 点击6666的效果图如下&#xff1a; 实现代码&#xff1a; 思路&#xff1a; 1…需要一个…

日期类相关练习题

前言 本文记录一些有关日期类的oj题题解,实现过日期类小项目的可以练一下手,本文不做过多讲解. 目录 前言一、求123...n题目介绍:解题思路:代码实现: 二、计算日期到天数转换题目介绍:解题思路:代码实现: 三、日期累加题目介绍:解题思路:代码实现 四、日期差值题目介绍代码实…

W6100-EVB-PICO做DNS Client进行域名解析

前言 在上一章节中我们用W6100-EVB-PICO通过dhcp获取ip地址&#xff08;网关&#xff0c;子网掩码&#xff0c;dns服务器&#xff09;等信息&#xff0c;给我们的开发板配置网络信息&#xff0c;成功的接入网络中&#xff0c;那么本章将教大家如何让我们的开发板进行DNS域名解…