ABAP表控件查询
1.准备工作
首先SE11自建一个数据库表(数据元素,域信息请提前建好)
2.编写代码
2.1 新建一个子屏幕
子屏幕中需新定义一个文本输入框,命名为:key_word,新建一个表控件,命名为tab,该表控件的字段选取自建表zchenh001上的所有字段。
可以在“元素清单”界面调整字段显示的宽度,这样更美观:
2.2 拷贝状态栏
SE41 -> 状态
从 程序:SAPLKKBL
状态:STANDARD_FULLSCREEN
到 程序:你的程序
状态:你的程序中需要使用的状态及自定义按钮
2.3 子屏幕的逻辑流
PROCESS BEFORE OUTPUT. MODULE tab_init.
MODULE status_0100.
LOOP AT g_tab_itab
INTO g_tab_wa
WITH CONTROL tab
CURSOR tab-current_line.
MODULE tab_move.
ENDLOOP. PROCESS AFTER INPUT.
MODULE user_command_0100.
LOOP AT g_tab_itab.
CHAIN.
FIELD zchenh001-znum.
FIELD zchenh001-zname.
FIELD zchenh001-zsex.
FIELD zchenh001-zhigh.
ENDCHAIN.
ENDLOOP.
2.4 se38编写代码
*&---------------------------------------------------------------------*
*& Report ZCHENH039
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------* REPORT zchenh039. TABLES: zchenh001. TYPES: BEGIN OF t_tab,
znum LIKE zchenh001-znum,
zname LIKE zchenh001-zname,
zsex LIKE zchenh001-zsex,
zhigh LIKE zchenh001-zhigh,
END OF t_tab. DATA: gt_tab_itab TYPE t_tab OCCURS ,
g_tab_itab TYPE t_tab OCCURS WITH HEADER LINE,
g_tab_wa TYPE t_tab. "work area
DATA: g_tab_copied. "copy flag
DATA: key_word(). CONTROLS: tab TYPE TABLEVIEW USING SCREEN . START-OF-SELECTION.
CALL SCREEN . *----------------------------------------------------------------------*
* MODULE TAB_INIT OUTPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE tab_init OUTPUT.
SELECT * FROM zchenh001
INTO CORRESPONDING FIELDS OF TABLE gt_tab_itab.
IF g_tab_copied IS INITIAL.
PERFORM frm_get_data.
g_tab_copied = 'X'.
REFRESH CONTROL 'TAB' FROM SCREEN ''.
ENDIF. ENDMODULE. "TAB_INIT OUTPUT *----------------------------------------------------------------------*
* MODULE TAB_MOVE OUTPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE tab_move OUTPUT.
MOVE-CORRESPONDING g_tab_wa TO zchenh001.
ENDMODULE. "TAB_MOVE OUTPUT
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
SET PF-STATUS 'ZCHENH039'.
ENDMODULE. " STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
CASE sy-ucomm.
WHEN 'EXIT' OR '&F03' OR '&F15' OR '&F12'.
LEAVE PROGRAM.
WHEN 'SEARCH'.
PERFORM frm_get_data.
WHEN OTHERS.
ENDCASE. ENDMODULE. " USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
*& Form FRM_GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_get_data .
DATA:ls_tab TYPE t_tab,
lv_len TYPE string,
lv_msg().
* 从内表中取数,减少重复使用数据库的操作
g_tab_itab[] = gt_tab_itab[].
" 此处 模糊查询 LIKE '% ... %' 不适用
IF key_word IS NOT INITIAL.
LOOP AT g_tab_itab WHERE znum NS key_word
AND zname NS key_word
AND zsex NS key_word
AND zhigh NS key_word.
DELETE g_tab_itab.
ENDLOOP.
ENDIF.
DESCRIBE TABLE g_tab_itab LINES lv_len.
CONCATENATE '本次供查询到:' lv_len '条数据!' INTO lv_msg.
MESSAGE lv_msg TYPE 'S'. ENDFORM. " FRM_GET_DATA
3. 验证效果
默认为空则查询所有
查询所有“男”性
ABAP表控件查询的更多相关文章
- delphi 控件查询
//老古董,以前这些东西太多了,收藏的没过来,只好粘贴至此,当然不是本人整理的. delphi 控件查询:http://www.torry.net/ http://www.jrsoftware.org ...
- Qt属性表控件的使用 QtTreePropertyBrowser
属性表是vs2003时引入的的新控件,用于流量和设置大量的信息,现在,很多软件上都能看到它的身影,如vs,Qt Creator等IDE的详细设置里都离不开属性表. 下图是Qt Creator里的属性表 ...
- c# 数据库数据与DataGridView表控件的绑定
public Form1() { InitializeComponent(); //连接数据库 string str = "Data Source=IP;Initial Catalog=数据 ...
- [RadControl] RadCartesianChart-功能強大圖表控件
由於最近做了一些統計的圖表分析,須使用到RadCartesianChart控件,因此就在這分享給大家順便為自己學習紀錄一下. 在介紹RadCartesianChart控件前,先看一下我所使用的到的功能 ...
- WPF 圖表控件 MetroChart
Torsten Mandelkow MetroChart包括以下: ColumnChart(ClusteredColumnChart,StackedColumnChart,StackedColumnC ...
- qt5--列表控件QListWidget
需要 #include <QListWidget> #include <QListWidgetItem> 列表控件可以让我们以列表形式呈现内容,是界面 ...
- 基于CkEditor实现.net在线开发之路(3)常用From表单控件介绍与说明
上一章已经简单介绍了CKEditor控件可以编写C#代码,然后可以通过ajax去调用,但是要在网页上面编写所有C#后台逻辑,肯定痛苦死了,不说实现复杂的逻辑,就算实现一个简单增删改查,都会让人头痛欲裂 ...
- ActiveReports 报表控件V12新特性 -- 新增矩表的RepeatToFill属性
ActiveReports是一款专注于 .NET 平台的报表控件,全面满足 HTML5 / WinForms / ASP.NET / ASP.NET MVC / WPF 等平台下报表设计和开发工作需求 ...
- ASP.NETserver控件使用之Reportviewer 报表
1. Reportviewer 报表 1.1. Reportviewer控件 注:本教程附2个事例: l 演练:在本地处理模式下将数据库数据源与 ReportViewer W ...
随机推荐
- c++引用(修改引用的值)
当我们希望修改某个函数的返回值时,通常我们会返回这个值的引用(因为函数返回值其实是返回那个值得一份拷贝而已,所以想要修改必须使用引用): .h文件 #pragma once #include < ...
- tornado-cookies+pycket 验证
1.pip install pycket pip install redis 2.config settings = dict( debug=True, template_path='template ...
- <Linux> SSH配置之后 SHH slave1 测试 error:SSH: command not found
首先要查看一下ssh命令存在何处 # which ssh /usr/bin/ssh 使用ssh的绝对路径 # /usr/bin/ssh slave1Welcome to Ubuntu 16.04 LT ...
- MIME Type和Content-Type
告知浏览器:资源的媒体类型MIME Type: application/json HTTP协议中的媒体类型,由 Web服务器告知浏览器的,更准确地说,是通过响应头中的Content-Type表示.Co ...
- LabelFunction 允许在显示数据以前进行处理
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...
- BBS-文章详情页、评论、评论树
1.简单的实现评论功能 article_detail.html,拿到数据 由路--给视图函数--写入数据库 <p>评论内容:</p> <textarea name=&q ...
- java通过过滤器 设置跨域允许
前人种树:https://www.cnblogs.com/CBDoctor/p/4235082.htmlhttps://blog.csdn.net/yuting0787/article/details ...
- Oracle 学习总结 - 物理结构
参考了很多文章,学习自网络 数据库 = 实例(数据库启动时初始的进程和内存结构,进程会作用到对应的内存区域-数据写入器到写入内存缓冲区,日志写入器到日志缓冲区等) + 数据库(物理文件-控制文件,数据 ...
- DMA/Zero copy
DMA: 直接内存访问,是一种不经过CPU而直接从内存存取数据的数据交换模式.在DMA模式下,CPU只须向DMA控制器下达指令,让DMA控制器来处理数据的传送,数据传送完毕再把信息反馈给CPU,这样就 ...
- vue:页面跳转和传参(页面之间,父传子,子传父)
1.返回上一个页面: A.<a @click="$router.back(-1)" class="btn">重新加载</a> B.thi ...