ABAP步循环
一、在界面中循环输出行数据,屏幕直接画出行数,需要计算翻页,一旦界面行数变动,则需要更改代码,所以引入步循环
二、步循环
首先在界面上画出要展示的内容

注意,在步循环中,文本的名称和输入框的名称不能相同,否则报错

选中显示的框,定义步循环,发现一行框变成了两行

通过下拉框,可以随意展示多行数据

定义翻页按钮

在屏幕输入输出流中加入步循环代码

参考代码如下
"-----------------------------@斌将军-----------------------------
TYPES: BEGIN OF ty_makt,
matnr TYPE makt-matnr,
maktx TYPE makt-maktx,
END OF ty_makt. DATA:gt_makt TYPE TABLE OF ty_makt,
gs_makt TYPE ty_makt. DATA:gv_line TYPE i, "当前行
gv_lines TYPE i, "
gv_row TYPE i, "总行数
gv_page_lines TYPE i.
* gv_limit TYPE i. DATA:ok_code TYPE sy-ucomm,
save_ok TYPE sy-ucomm. START-OF-SELECTION. SELECT
matnr"物料号
spras"语言
maktx"物料描述
FROM makt
INTO CORRESPONDING FIELDS OF TABLE gt_makt
WHERE matnr >= '000000000000000001' AND matnr <= '000000000000004422'. DESCRIBE TABLE gt_makt LINES gv_row.
CALL SCREEN 100.
*&---------------------------------------------------------------------*
*& Module READ_DATA OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE read_data OUTPUT.
gv_page_lines = sy-loopc.
gv_lines = sy-stepl + gv_line.
READ TABLE gt_makt INTO gs_makt INDEX gv_lines.
ENDMODULE. " READ_DATA OUTPUT
*&---------------------------------------------------------------------*
*& Module MODIFY_DATA INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE modify_data INPUT.
gv_lines = sy-stepl + gv_line.
MODIFY gt_makt FROM gs_makt INDEX gv_lines.
ENDMODULE. " MODIFY_DATA INPUT
*&---------------------------------------------------------------------*
*& Module USER_COMM INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_comm INPUT.
DATA:lv_count TYPE i.
save_ok = ok_code.
CLEAR ok_code.
CASE save_ok.
WHEN 'PREV_LINE'.
gv_line = gv_line - 1.
IF gv_line < 0.
gv_line = 0.
ENDIF.
WHEN 'PREV_PAGE'.
gv_line = gv_line - gv_page_lines.
IF gv_line < 0.
gv_line = 0.
ENDIF.
WHEN 'FIRST_PAGE'.
gv_line = 0.
WHEN 'NEXT_LINE'.
* CLEAR gv_limit.
* gv_limit = gv_row - gv_line.
* IF gv_limit > gv_page_lines.
IF gv_line + 1 < gv_row."如果后边已经没有了,就不能再翻页
gv_line = gv_line + 1.
ENDIF.
* ENDIF.
WHEN 'NEXT_PAGE'.
* CLEAR gv_limit.
* gv_limit = gv_row - gv_line - gv_page_lines.
* IF gv_limit > gv_page_lines.
IF gv_line + gv_page_lines < gv_row."如果后边已经没有了,就不能再翻页
gv_line = gv_line + gv_page_lines.
ENDIF.
* ELSE.
* gv_line = gv_row - gv_page_lines.
* ENDIF.
WHEN 'LAST_PAGE'.
* gv_line = gv_row - gv_page_lines.
IF gv_page_lines <> 0.
gv_line = ( gv_row / gv_page_lines ) * 10.
ENDIF. WHEN 'CANCEL'.
LEAVE PROGRAM.
WHEN OTHERS. ENDCASE.
ENDMODULE. " USER_COMM INPUT "-----------------------------@斌将军-----------------------------
定期更文,欢迎关注

- 中文(简体)
- 中文(繁体)
- 丹麦语
- 乌克兰语
- 乌尔都语
- 亚美尼亚语
- 俄语
- 保加利亚语
- 克罗地亚语
- 冰岛语
- 加泰罗尼亚语
- 匈牙利语
- 卡纳达语
- 印地语
- 印尼语
- 古吉拉特语
- 哈萨克语
- 土耳其语
- 威尔士语
- 孟加拉语
- 尼泊尔语
- 布尔语(南非荷兰语)
- 希伯来语
- 希腊语
- 库尔德语
- 德语
- 意大利语
- 拉脱维亚语
- 挪威语
- 捷克语
- 斯洛伐克语
- 斯洛文尼亚语
- 旁遮普语
- 日语
- 普什图语
- 毛利语
- 法语
- 波兰语
- 波斯语
- 泰卢固语
- 泰米尔语
- 泰语
- 海地克里奥尔语
- 爱沙尼亚语
- 瑞典语
- 立陶宛语
- 缅甸语
- 罗马尼亚语
- 老挝语
- 芬兰语
- 英语
- 荷兰语
- 萨摩亚语
- 葡萄牙语
- 西班牙语
- 越南语
- 阿塞拜疆语
- 阿姆哈拉语
- 阿尔巴尼亚语
- 阿拉伯语
- 韩语
- 马尔加什语
- 马拉地语
- 马拉雅拉姆语
- 马来语
- 马耳他语
- 高棉语
一律不翻译英语
一律不翻译i.cnblogs.com
ABAP步循环的更多相关文章
- ABAP 表格控制(Table Control)和步循环
表格控制(Table Control)和步循环 1.两个标准Demo: SAPMTZ60,SAPMTZ61 2.简介 3.建立Table Control程序的基本流程 4.使用步循环 5.表格 ...
- SAS学习笔记之《SAS编程与数据挖掘商业案例》(4)DATA步循环与控制、常用全程语句、输出控制
SAS学习笔记之<SAS编程与数据挖掘商业案例>(4)DATA步循环与控制.常用全程语句.输出控制 1. 各种循环与控制 DO组 创建一个执行语句块 DO循环 根据下标变量重复执行DO和E ...
- 每隔n步循环删除,返回最后一个元素
题目:有一个数组a[N]顺序存放0~N-1,要求每隔两个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置.以8个数(N=7)为例:{0,1,2,3,4,5,6,7},0-& ...
- Java编程的逻辑 (10) - 强大的循环
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...
- JS的for循环包裹异步函数的问题
有个循环,循环一个异步回调,为啥回调引用的循环值都是最后一步循环的循环值?然后,又有些时候无论什么循环值都得不到? var arr = [1,3,5,7,9]; var arrLength = arr ...
- 3.2spring源码系列----循环依赖源码分析
首先,我们在3.1 spring5源码系列--循环依赖 之 手写代码模拟spring循环依赖 中手写了循环依赖的实现. 这个实现就是模拟的spring的循环依赖. 目的是为了更容易理解spring源码 ...
- JAVA用for循环打印*三角形
public class Sanjiaoxing { //本节为for循环的嵌套结构练习 public static void main(String[] args) { // TODO Auto-g ...
- C#中使用Socket请求Web服务器过程
最开始我们需要明白一件事情,因为这是这篇文章的前提: HTTP协议只是一个应用层协议,它底层是通过TCP进行传输数据的.因此,浏览器访问Web服务器的过程必须先有“连接建立”的发生. 而有人或许会问: ...
- Theano:LSTM源码解析
最难读的Theano代码 这份LSTM代码的作者,感觉和前面Tutorial代码作者不是同一个人.对于Theano.Python的手法使用得非常娴熟. 尤其是在两重并行设计上: ①LSTM各个门之间并 ...
- 带阈值的平滑l0范数加速稀疏恢复——同名英文论文翻译
原文链接:Thresholded Smoothed l0 Norm for Accelerated Sparse Recovery http://ieeexplore.ieee.org/documen ...
随机推荐
- 计算网络之IPv6配置DHCP服务及acl
一.DHCPv6服务 DHCP即动态主机地址分配协议,在前面已经启动过IPv4的动态主机分配了, 还是来介绍两种方式 接口模式 全局模式 现在需要了解的就是DHCHv6,即基于IPv6的动态主机地址分 ...
- DP:摆动序列
问题描述 如果一个序列满足下面的性质,我们就将它称为摆动序列: 1. 序列中的所有数都是不大于k的正整数: 2. 序列中至少有两个数. 3. 序列中的数两两不相等: 4. 如果第i – 1个数比第i ...
- 搭建一个简易的IPv6网络测试环境
背景 近期一个项目要求产品在IPv6网络环境部署,在此之前所有的项目网络环境都是IPv4,为了验证产品网络适配能力,需要搭建一套IPv6的网络测试环境,网上搜了很多教程,也在某东找了很多路由器,对于如 ...
- 从0到1,手把手带你开发截图工具ScreenCap------001实现基本的截图功能
ScreenCap---Version:001 说明 从0到1,手把手带你开发windows端的截屏软件ScreenCap 当前版本:ScreenCap---001 支持全屏截图 支持鼠标拖动截图区域 ...
- vertx的学习总结7之用kotlin 与vertx搞一个简单的http
这里我就简单的聊几句,如何用vertx web来搞一个web项目的 1.首先先引入几个依赖,这里我就用maven了,这个是kotlin+vertx web <?xml version=" ...
- UMP系统概述
突出性能: 1.低成本,高性能 2.开源数据库 UMP在设计时要实现一下原则: 多租户:
- 蓝桥杯-最短路 (SPFA算法学习)
SPFA算法主要用来解决存在负边权的单源最短路情况(但不能有负环!!!)一个简单的方法判断是否有没有负环可以通过判断是否有一个节点是否频繁进出队列. 以下内容转自https://blog.csdn.n ...
- 华企盾DSC无缝替换亿赛通案例
第一种方法无缝替换亿赛通案例 1. 把DSCClient.exe和DSCService.exe添加到亿赛通的加密控制策略中,关联类型设置为*.*|,配置为落地自动解密,包括其它程序也配置成落地自动解密 ...
- StingBuilder与StringBuffer包含的常见方法(图示)
StingBuilder与StringBuffer包含的常见方法
- MinIO客户端之ping
MinIO提供了一个命令行程序mc用于协助用户完成日常的维护.管理类工作. 官方资料 mc ping 检查指定的MinIO节点的服务是否可用. 不带参数,命令如下: ./mc ping local1 ...