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 ...
随机推荐
- WPF应用开发之附件管理
在我们之前的开发框架中,往往都是为了方便,对附件的管理都会进行一些简单的封装,目的是为了方便快速的使用,并达到统一界面的效果,本篇随笔介绍我们基于SqlSugar开发框架的WPF应用端,对于附件展示和 ...
- 【Javaweb】六-servlet层
AdminServlet.jap @WebServlet("/AdminServlet") public class AdminServlet extends HttpServle ...
- chatgpt接口开发笔记3: 语音识别接口
chatgpt接口开发笔记3: 语音识别接口 1.文本转语音 1.了解接口参数 接口地址: POST https://api.openai.com/v1/audio/speech 下面是接口文档描述内 ...
- STA分析-复制
1 静态时序分析(Static Timing Analysis)静态时序分析(Static Timing Analysis):静态执行对于数字设计时序的分析,不依赖于施加在输入端口上的激励,验证设计是 ...
- 倒计时4天!解锁《2023 .NET Conf China》 云原生分会场精彩议程
.NET Conf China 2023 定于 12 月16 日于北京举办为期一天的技术交流,届时会有.NET 领域专家与大家一同庆祝 .NET 8 的发布和回顾过去一年来 .NET 在中国的发展成果 ...
- [GDOI22pj2C] 教室的电子钟
第三题 教室的电子钟 提交文件: clock.cpp 输入文件: clock.in 输出文件: clock.out 时间空间限制: 1 秒, 256 MB 为了迎接 GDOI,小蒟蒻学校所有教室的钟都 ...
- [ARC144E]GCD of Path Weights
Problem Statement You are given a directed graph $G$ with $N$ vertices and $M$ edges. The vertices a ...
- Selenium的基本api
1.打开浏览器的驱动,以chrome为例 from selenium import webdriver #chrome驱动 driver = webdriver.Chrome(executable_p ...
- Java并发(十九)----Monitor原理及Synchronized原理
1.Java 对象头 以 32 位虚拟机为例 普通对象 |--------------------------------------------------------------| | ...
- The fourth day learning summary
一.for 循环循环就是重复做某件事,for循环是python提供第二种循环机制(第一种是while循环),理论上for循环能做的事情,while循环都可以做.目的:之所以要有for循环,是因为for ...