码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • ABAB OpenSQL 分页处理


    功能实现

    在 ABAP 中,可以使用 OpenSQL 来实现分页功能。下面是一种实现分页的示例方法:

    1. 首先,定义一个内部表来存储查询结果数据:
    DATA lt_data TYPE TABLE OF your_data_type.
    
    1. 然后,使用 SELECT 语句将数据查询到内部表中,同时获取总数据量 count:
    1. SELECT * FROM your_table INTO TABLE lt_data.
    2. SELECT COUNT( * ) FROM your_table INTO count.
    1. 根据每页显示的数量和数据总量计算页码相关参数:
    1. DATA lv_page_size TYPE i. "每页显示数量
    2. DATA lv_total_pages TYPE i. "总页数
    3. DATA lv_current_page TYPE i. "当前页码
    4. lv_page_size = 10. "每页显示 10 条数据
    5. lv_total_pages = count / lv_page_size.
    1. 根据起始索引和每页显示的数量获取当前页的数据:
    1. lv_current_page = 1. "设置当前页码为 1
    2. DATA lv_start_index TYPE i.
    3. DATA lv_end_index TYPE i.
    4. lv_start_index = ( lv_current_page - 1 ) * lv_page_size + 1.
    5. lv_end_index = lv_current_page * lv_page_size.
    6. DATA lt_current_data TYPE TABLE OF your_data_type.
    7. lt_current_data = lt_data[ lv_start_index - 1 TO lv_end_index ].
    1. 最后,对当前页的数据进行处理,如输出或显示:
    1. LOOP AT lt_current_data INTO DATA(ls_data).
    2. WRITE / ls_data-field1. "假设 field1 是你要显示的字段
    3. ENDLOOP.

    这就是一个简单的 ABAP OpenSQL 分页的示例方法。你可以根据实际需求和业务逻辑进行相应的修改。

    代码封装

    1. FUNCTION zfm_list_paging.
    2. *"----------------------------------------------------------------------
    3. *"*"本地接口:
    4. *"  IMPORTING
    5. *"     REFERENCE(IV_CURRENT_PAGE) TYPE  INT4 DEFAULT 1
    6. *"     REFERENCE(IV_PAGE_SIZE) TYPE  INT4
    7. *"  EXPORTING
    8. *"     REFERENCE(EV_TOTALLINES) TYPE  INT4
    9. *"     REFERENCE(EV_TOTALPAGES) TYPE  INT4
    10. *"  TABLES
    11. *"      IT_DATA
    12. *"----------------------------------------------------------------------
    13.   DATA: lv_totalpage TYPE p.
    14.   CHECK iv_page_size > 0 AND iv_current_page > 0.
    15.   ev_totallines = lines( it_data ).
    16.   lv_totalpage = ceil( ev_totallines / iv_page_size ).
    17.   ev_totalpages = lv_totalpage.
    18.   DATA(begno) = ( iv_current_page - 1 ) * iv_page_size + 1.
    19.   DATA(endno) = iv_current_page * iv_page_size .
    20.   APPEND LINES OF it_data FROM begno TO endno TO it_data.
    21.   IF it_data[] IS NOT INITIAL.
    22.     DELETE it_data FROM 1 TO ev_totallines.
    23.   ENDIF.
    24. ENDFUNCTION.

    入参为:iv_current_page 当前页数,iv_page_size 页面显示数据个数 IT_DATA 查询出的所有数据

    返回: ev_totallines,总行数 ev_totalpages 总页数 IT_DATA 当前页的数

  • 相关阅读:
    MySQL(十)事务隐性提交
    含文档+PPT+源码等]精品基于SSM的民宿预订管理系统[包运行成功]计算机毕设Java项目源码
    柔顺机构学读书笔记1:悬臂梁变形
    ✔ ★【备战实习(面经+项目+算法)】 10.21学习时间表(总计学习时间:5h30min)(算法刷题:7道)
    使用Redis实现延时队列
    在Vue项目导入路径中@符号是什么意思?
    数据库审计的功能是什么
    R语言ggplot2可视化:使用ggpubr包的ggline函数可视化分组折线图(点线图、line plot)、linetype参数指定不同分组线型不同
    Minikube – 配置 Jenkins Kubernetes plugin
    python 逻辑控制语句、循环语句
  • 原文地址:https://blog.csdn.net/u011663865/article/details/134305395
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号