热点:

    单数据集分页实现层式报表

      [   原创  ]   作者:
    收藏文章 暂无评论

    Access数据库为例,结合FineReport网页报表工具,阐述如何通过行式引擎处理需分页SQL的数据库,实现层次化报表的生成与展示。

    1、 应对策略

    2、 对于支持行式引擎的MySQL数据库,若启用行式引擎,系统将自动为层式报表生成分页SQL。例如,创建一个源自MySQL的数据集ds1,其基础查询语句会由程序自动扩展,添加分页逻辑以实现高效数据展示与处理,无需手动编写分页代码。

    3、 查询订单明细表中的所有数据信息。

    4、 若未设置分页SQL但启用行式引擎,预览报表时系统会自动将原始SQL转换为分页查询语句,以获取单页数据。

    5、 从订单明细表中查询所有数据,先取出前60条记录,并为每行生成行号,然后在这些结果中筛选出行号大于30的记录,最终返回位于第31至第60之间的数据。该查询通过嵌套子查询结合伪列rownum实现分页效果,确保只获取指定范围内的数据行。

    6、 若数据库为Access等不支持直接生成分页SQL的类型,则需手动编写相应的分页查询语句。

    7、 操作流程

    8、 以FRDemo中的Access为例,介绍其分页查询的编写方法与实现步骤。

    9、 创建新数据集

    10、 创建数据集ds1,查询订单明细表中的所有数据。

    11、 增加分页查询的SQL代码

    12、 在数据查询面板点击分页按钮,编辑相应SQL语句,操作所示。

    13、 完整SQL语句如下所示

    14、 从订单明细表中按订单ID升序排列,取第\${fr_pagenumber}页数据,每页\${fr_pagesize}条记录。

    15、 根据订单ID降序排列,从子查询结果中限制输出指定数量的记录。

    16、 }

    17、 按订单ID升序排列,从子查询结果中选取数据。

    18、 将上述代码用于分页SQL面板时,需移除末尾注释,并确保三条ORDER BY语句完整保留,不可遗漏,以保证查询逻辑正确执行。

    19、 分页查询SQL注解说明

    20、 当当前页码等于总记录数减一除以每页大小加一取整时,表示这是最后一页,应显示剩余的所有记录;否则为非最后一页,仅显示每页设定的数量。即根据当前页码与总页数的关系,判断末页显示实际剩余条数,其他页则显示固定条数。

    21、 若是最后一页,则取该页剩余行数;否则取每页设定的行数,示例中每页显示30行。

    22、 fr_pagenumber 表示当前查看的页码,例如预览第2页时,其值为2。

    23、 fr_rowcount:表示当前数据集中记录的总数量。

    24、 fr_pagesize用于设定行式引擎每页显示的行数,本例中设置为30行。

    25、 当预览报表并翻至第二页时,系统根据设定的分页参数生成对应的数据库查询。例如,当页码为2、每页显示30条数据时,原有的SQL语句将自动转换为适用于当前分页条件的查询语句,确保仅获取所需范围内的数据,提高查询效率与展示性能。

    26、 从订单明细表中,先按订单ID升序取前60条记录,再从中按订单ID降序取前30条,最后将这30条结果按订单ID升序排列并返回。整个过程实现了对数据的多层筛选与排序,最终输出的是经过三次排序操作后按订单ID从小到大排列的30条记录,主要用于获取中间段的订单数据。

    27、 当预览到第3页时,fr_pagenumber值为3,SQL语句相应地进行转换。

    28、 从订单明细表中首先按订单ID升序取出前90条记录,然后在结果中按订单ID降序取最后30条,最后将这30条数据按订单ID升序排列输出。整个过程实现了对指定范围数据的筛选与排序,确保最终结果为符合条件且顺序正确的30条订单明细信息。

    29、 当预览到最后一页时,若剩余数据不足30行,SQL语句将如何调整以适应实际数据量?

    30、 当总行数为100,每页显示30行时,共分为4页。浏览到最后一页即第4页时,当前页码为4。此时系统会根据该参数生成对应的SQL查询语句,用以提取第4页所需的数据内容,确保仅返回对应页码范围内的记录结果。

    31、 从订单明细表中首先按订单ID升序取出前90条记录,然后将这90条结果按订单ID降序排列并取前10条,最后将这10条数据按订单ID升序排序输出。该查询通过多层嵌套排序与限制操作,实现了对中间数据集的筛选与顺序调整,最终返回一个按订单ID从小到大排列的10条记录的结果集,用于获取特定范围内的有序订单信息。

    32、 报表主体结构设计

    33、 把数据列从数据集拖到单元格里。

    34、 行式引擎配置

    35、 进入模板设置,选择报表引擎属性,启用行式引擎执行报表,并勾选按页运算分段处理,每页记录数保持默认30条,具体操作所示。

    36、 效果预览

    37、 点击分页预览,效果所示

    soft.zol.com.cn true https://soft.zol.com.cn/1194/11943420.html report 3439 以Access数据库为例,结合FineReport网页报表工具,阐述如何通过行式引擎处理需分页SQL的数据库,实现层次化报表的生成与展示。 1、 应对策略 2、 对于支持行式引擎的MySQL数据库,若启用行式引擎,系统将自动为层式报表生成分页SQL。例如,创建一个源自MySQL的数据集ds...
    不喜欢(0) 点个赞(0)
    随时随地资讯查报价 就上ZOL手机客户端,点击或扫描二维码下载
    立即下载

    文档式报表SQLDOC

    更新时间:2009年01月07日

    用户评分:0 | 0人点评

    软件类型:共享软件

    软件语言:简体中文

    文档式报表SQLDOC
    • 更新时间:2009年01月07日
    • 软件大小:31.3MB
    • 软件分类:办公应用
    • 语言种类:简体中文
    • 软件评级:0 人点评