ABAP学习----ALV注意事项_ABAP小萌新的博客-程序员宅基地

技术标签: 2018  ALV  SAP750  ABAP  

2018年/8月/1日。
到今天为止,学习ABAP大概快一个月了,我知道一个月,对于任何一门计算机语言来说,都只能说才了解,更何况是在自学,没有视频的情况下。ABAP语言相对其他语言来说,较为封闭,因为它只能在SAP系统里才能编写实现,而SAP系统对于个体户来说,安装太不现实。应该说几乎所有的ABAP开发人员都是在项目上学习的。幸运的是,我碰巧来到一个实施SAP的项目,目前在学习ABAP开发。
今天学习的内容:
目前手上的书籍有黄佳的黄皮书和王宏的蓝皮书。书本的知识还可以,但是操作和程序都太老了。
这里写图片描述
在SMARTFORMS里添加系统字段,蓝皮书说是直接拖过去,但是在SAP750里是不可以的。方法:系统的当前日期怎么显示出来。有两步:第一:在表格接口自定义DATE TYPE BUCHDATUM**可选的和值传递都要选,然后激活**。
二:在对应的WORD里插入字段”&SFSY-DATE&”。就可以自动显示了。
第二个知识点:
****ALV列表输出 。注意注意了:如果没有子程 序。ALV的顺序是:全局定义—–得到数据——CALL FUNCTION.
并不是说在ABAP中程序的顺序没有意义,是根据关键字来走的,像FORM —ENDFORM谁在前谁在后都无所谓,但是PERFORM的顺序就有意义了,他们谁在前谁就会先执行,那么相对应的 perform中有些变量就有值了,如果后面的程序应用到PERFORM的变量的值,如果这个时候顺序搞反了,也许会出现语法没有错误,激活也成功,就是没有结果,可能是程序的顺序出错了。**
**标准的报表ALV输出**
DATA:GT_ZTSTUDENT TYPE TABLE OF ZTSTUDENT WITH HEADER LINE.
DATA:GS_FCAT TYPE LVC_S_FCAT,
GT_FCAT TYPE LVC_T_FCAT,
GS_LAYO TYPE LVC_S_LAYO,
GS_SETS TYPE LVC_S_GLAY.
DATA: BOX(1).
*查询数据
START-OF-SELECTION.
SELECT XUEHAO XINGMING XINGBIE
INTO CORRESPONDING FIELDS OF TABLE GT_ZTSTUDENT
FROM ZTSTUDENT.
*ALV列表输出。
END-OF-SELECTION.
PERFORM FRM_LIST_OUTPUT.

FORM FRM_LIST_OUTPUT .
PERFORM FRM_BULID_LIST.
CLEAR GS_LAYO.
GS_LAYO-ZEBRA = ‘X’.
GS_LAYO-SEL_MODE = ‘X’.
GS_LAYO-NO_ROWMARK = ‘X’.
CLEAR GS_SETS.
GS_SETS-EDT_CLL_CB = ‘X’.
CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY_LVC’
EXPORTING
I_CALLBACK_PROGRAM = ‘SY-REPID’
I_STRUCTURE_NAME = ‘程序’
IS_LAYOUT_LVC = GS_LAYO
IT_FIELDCAT_LVC = GT_FCAT
I_DEFAULT = ‘X’
I_SAVE = ‘X’
TABLES
T_OUTTAB = GT_ZTSTUDENT
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
ENDFORM.
&———————————————————————
*& Form FRM_BULID_LIST
&———————————————————————
*& text
&———————————————————————
*& –> p1 text
*& <– p2 text
&———————————————————————
FORM FRM_BULID_LIST.
REFRESH GT_FCAT.

CLEAR GS_FCAT.
GS_FCAT-FIELDNAME = ‘BOX’.
GS_FCAT-COLTEXT = ‘选择’.
GS_FCAT-EDIT = ‘X’ .
GS_FCAT-CHECKBOX = ‘X’.
APPEND GS_FCAT TO GT_FCAT.

CLEAR GS_FCAT.
GS_FCAT-FIELDNAME = ‘xuehao’.
GS_FCAT-COLTEXT = ‘学号’.
GS_FCAT-REF_TABLE = ‘ztstudent’.
GS_FCAT-REF_FIELD = ‘xuehao’.
APPEND GS_FCAT TO GT_FCAT.

CLEAR GS_FCAT.
GS_FCAT-FIELDNAME = ‘xingming’.
GS_FCAT-COLTEXT = ‘姓名’.
GS_FCAT-REF_TABLE = ‘ztstudent’.
GS_FCAT-REF_FIELD = ‘xingming’.
APPEND GS_FCAT TO GT_FCAT.

CLEAR GS_FCAT.
GS_FCAT-FIELDNAME = ‘xingbie’.
GS_FCAT-COLTEXT = ‘性别’.
GS_FCAT-REF_TABLE = ‘ztstudent’.
GS_FCAT-REF_FIELD = ‘xingbie’.
APPEND GS_FCAT TO GT_FCAT.
ENDFORM.
最简单的ALV报表:
TYPES:BEGIN OF TY_TAB,
XUEHAO TYPE ZTSTUDENT-XUEHAO,
XINGMING TYPE ZTSTUDENT-XINGMING,
XINGBIE TYPE ZTSTUDENT-XINGBIE,
END OF TY_TAB.
DATA: GT_TAB TYPE TABLE OF TY_TAB,
GS_TAB TYPE TY_TAB.
DATA:GS_FCAT TYPE LVC_S_FCAT,
GT_FCAT TYPE LVC_T_FCAT,
GS_LAYO TYPE LVC_S_LAYO,
GS_SETS TYPE LVC_S_GLAY.
DATA: BOX(1).
*查询数据
START-OF-SELECTION.
SELECT XUEHAO XINGMING XINGBIE
INTO CORRESPONDING FIELDS OF TABLE GT_ZTSTUDENT
FROM ZTSTUDENT.
*ALV列表输出。
CLEAR GS_LAYO.
GS_LAYO-ZEBRA = ‘X’.
GS_LAYO-SEL_MODE = ‘X’.
GS_LAYO-NO_ROWMARK = ‘X’.
CLEAR GS_SETS.
GS_SETS-EDT_CLL_CB = ‘X’.
REFRESH GT_FCAT.
*ALV报表布局
CLEAR GS_FCAT.
GS_FCAT-FIELDNAME = ‘BOX’.
GS_FCAT-COLTEXT = ‘选择’.
GS_FCAT-EDIT = ‘X’ .
GS_FCAT-CHECKBOX = ‘X’.
APPEND GS_FCAT TO GT_FCAT.
*字段目录
CLEAR GS_FCAT.
GS_FCAT-FIELDNAME = ‘xuehao’.
GS_FCAT-COLTEXT = ‘学号’.
GS_FCAT-REF_TABLE = ‘ztstudent’.
GS_FCAT-REF_FIELD = ‘xuehao’.
APPEND GS_FCAT TO GT_FCAT.

CLEAR GS_FCAT.
GS_FCAT-FIELDNAME = ‘xingming’.
GS_FCAT-COLTEXT = ‘姓名’.
GS_FCAT-REF_TABLE = ‘ztstudent’.
GS_FCAT-REF_FIELD = ‘xingming’.
APPEND GS_FCAT TO GT_FCAT.

CLEAR GS_FCAT.
GS_FCAT-FIELDNAME = ‘xingbie’.
GS_FCAT-COLTEXT = ‘性别’.
GS_FCAT-REF_TABLE = ‘ztstudent’.
GS_FCAT-REF_FIELD = ‘xingbie’.
APPEND GS_FCAT TO GT_FCAT.
CALL FUNCTION 一定要放在最后*布局和字段目录的后面*
CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY_LVC’
EXPORTING
I_CALLBACK_PROGRAM = ‘SY-REPID’
I_STRUCTURE_NAME = ‘程序’
IS_LAYOUT_LVC = GS_LAYO
IT_FIELDCAT_LVC = GT_FCAT 只有布局和字段目录在前面有值了,J才不会出错
I_DEFAULT = ‘X’
I_SAVE = ‘X’
TABLES
T_OUTTAB = GT_ZTSTUDENT
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xxy24682468/article/details/81348843

智能推荐

java.lang.NoClassDefFoundError: Lorg/apache/log4j/Logger_顺便挣钱W先生的博客-程序员宅基地_lorg/apache/log4j/logger;

今天启动项目的时候,发现tomcat一直报错,之前都一直没有问题的啊,提示dardHost[localhost].StandardContext[]]at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)... 6 moreCaused by: java.lang.NoClassDefFoundError: L...

docker 通过Dockerfile安装jdk_追夢鹿少年的博客-程序员宅基地_dockerfile jdk

将自己下载好的jdk压缩包,我下载的是jdk-8u261-linux-x64.tar.gz ,上传到服务器上,我是使用的ubuntu将jdk-8u261-linux-x64.tar.gz 复制到你的docker目录下,之后创建一个Dockerfile 要保证两个在同一个目录下:#指定基础镜像,并且必须是第一条指令FROM ubuntu:latest#指明该镜像的作者和其电子邮件(这里随便就好)MAINTAINER tina "[email protected]"#一个复制命令,把jdk安装文件复制到.

mysql数据库中的utf8mb4、utf8mb4_unicode_ci、utf8mb4_general_ci的区别_好名字都被人取完了的博客-程序员宅基地

mysql中的utf8mb4、utf8mb4_unicode_ci、utf8mb4_general_ci问题:今天在公司项目的日志里面看到了这么一个报错,如下图:这问题一看就是编码的问题,怎么产生的呢?1、可能用户有添加emoji的表情2、MySQL 的 utf8 并不是真正的 utf8解决方法当然是把数据库该字段的编码格式改成utf8mb4到底utf8和utf8mb4有什么区别呢?...

ASP.NET中前台javascript与后台代码的相互调用_huating008的博客-程序员宅基地

      1.如何在JavaScript访问C#函数?  2.如何在JavaScript访问C#变量?  3.如何在C#中访问JavaScript的已有变量?  4.如何在C#中访问JavaScript函数?        问题1答案如下:  javaScript函数中执行C#代码中的函数:  方法一:1、首先建立一个按钮,在后台将调用或处理的内容写入button_c

资料 05encodeURI来解决URL传中文参数乱码问题(转载)_huangsong_Java的博客-程序员宅基地_encodeuri中文乱码

首先,在前端页面准备参数的时候,需要对中文参数进行encode处理:var url = 'HelloWorldServlet?star_name='+encodeURI(encodeURI("刘德华"));window.open(url);其次,在服务端后台程序代码中用java.net.Decoder进行解码,从而得到中文参数的真实值:String starName = ja

随便推点

Java程序员:工作还是游戏,是该好好衡量一下了_huangshulang1234的博客-程序员宅基地_java程序员玩什么游戏

Java程序员:工作还是游戏,是该好好衡量一下了来源:博客园前阵子我终于下定决心,删掉了硬盘里所有的游戏。身为一个程序猿,每天都要和各种新技术打交道,闲暇时间,总还得看一下各大论坛,逛逛博客园啥的,给自己充充电。游戏的话,其实我自小就比较喜欢,可以算是一种兴趣,而且在现在的大趋势下,这种兴趣变得再正常不过。然而我还是毅然决然地决定,要渐渐放下,直到彻底放下这个兴

如何在 ASP.NET Core 中使用 ActionFilter_一线码农的博客-程序员宅基地

ASP.NET Core MVC 中的 Filters 允许我们在 请求处理管道 中的某一个阶段的之前和之后执行自定义代码,不同类型的 filter 对应着 请求处理管道 的不同阶段,比如说:ActionFilter 可以在 Action 方法的之前或者之后执行自定义代码,这篇文章我们就来讨论 ASP.NET Core MVC 中内建的 ActionFilter,为什么它非常有用以及在程序中如何使用它。Filter 过滤器其实在 ASP.NET Core MVC 中有很多的内建 filter,大体罗列如

android inputType属性_晓果博客的博客-程序员宅基地_android inputtype属性

android 1.5以后添加了软件虚拟键盘的功能,所以在输入提示中将会有对应的软键盘模式 android中inputType属性在EditText输入值时启动的虚拟键盘的风格有着重要的作用。这也大大的方便的操作。有时需要虚拟键盘只为字符或只为数字。所以inputType尤为重要。 //文本类型,多为大写、小写和数字符号。 android:inputType=”none”

android接收广播监听网络状态变化_华珍珠的博客-程序员宅基地

A. 收广播监听网络状态变化extends BroadcastReceiverintentFilter.addAction(WifiApManager.WIFI_AP_STATE_CHANGED_ACTION);intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);如何接收广播实现网络状态监听可以结合

使用FILE结构操作文本文件(文件实训)_【执珪】瑕瑜·夕环玦的博客-程序员宅基地_使用file结构操作文本文件

编写函数,该函数从已有的当前目录下的文件a.txt中读取并解析出其中的数值,并将结果写到当前目录下的文件b.txt中。相关知识文件文件是存储在某种长期储存设备(磁盘、光盘等)上的一段数据流。C 语言中把文件看成一个有序的字节流,每个文件都以文件结束标志( EOF )结束。下图是包含 n 个字节的文件内容:磁盘文件由操作系统中的文件系统统一管理,也只有文件系统才能直接操作文件。所以编写 C...