ABAP 动态内表 动态ALV
DATA: DY_TABLE TYPE REF TO DATA,
DY_WA TYPE REF TO DATA. FIELD-SYMBOLS: <DYN_TABLE> TYPE TABLE, "是一个标志,可以理解为一个指针,将来创建的内表就要通过它们来访问
<DYN_WA> TYPE ANY,
<FS> TYPE ANY.
DATA: L_SCRFNAME TYPE SCRFNAME,
LS_LAYOUT TYPE LVC_S_LAYO,
LT_FIELDCAT TYPE LVC_T_FCAT,
LT_EXCLUDE TYPE UI_FUNCTIONS.
* 此方法用于构建动态内表,输入=构建的结构,输出=dy_table
CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
EXPORTING
IT_FIELDCATALOG = LT_FIELDCAT
IMPORTING
EP_TABLE = DY_TABLE. ASSIGN DY_TABLE->* TO <DYN_TABLE>.
CREATE DATA DY_WA LIKE LINE OF <DYN_TABLE>.
ASSIGN DY_WA->* TO <DYN_WA>. DATA FIELDNAME().
SORT IT_DAT_KY[] BY MATNR.
LOOP AT IT_DAT_KY.
"这里把日期类型定义为char型,因为用DATS报错。
FIELDNAME = IT_DAT_KY-DATUM.
ASSIGN COMPONENT FIELDNAME OF STRUCTURE <dyn_wa> TO <FS>.
<FS> = IT_DAT_KY-MENGE.
ASSIGN COMPONENT 'MGSUM' OF STRUCTURE <dyn_wa> TO <FS>.
<FS> = <FS> + IT_DAT_KY-MENGE.
AT END OF MATNR.
"分配结构里的物料号,用FS字段 指向它
ASSIGN COMPONENT 'MATNR' OF STRUCTURE <dyn_wa> TO <FS>.
<FS> = IT_DAT_KY-MATNR.
ASSIGN COMPONENT 'MAKTX' OF STRUCTURE <dyn_wa> TO <FS>.
SELECT SINGLE MAKTX INTO @DATA(L_MAKTX) FROM MAKT
WHERE MATNR = @IT_DAT_KY-MATNR AND SPRAS = @SY-LANGU.
<FS> = L_MAKTX.
APPEND <dyn_wa> TO <dyn_table>.
CLEAR <dyn_wa>.
ENDAT.
ENDLOOP.
*& 102
DEFINE FCAT.
CLEAR : LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = &.
LS_FIELDCAT-COLTEXT = &.
LS_FIELDCAT-SELTEXT = &.
LS_FIELDCAT-SCRTEXT_L = &.
LS_FIELDCAT-INTLEN = &.
LS_FIELDCAT-INTTYPE = 'C'.
LS_FIELDCAT-OUTPUTLEN = .
IF & = 'MATNR'.
LS_FIELDCAT-KEY = 'X'.
LS_FIELDCAT-REF_TABLE = 'MARA'.
LS_FIELDCAT-REF_FIELD = 'MATNR'.
ENDIF.
IF & = 'MAKTX'.
LS_FIELDCAT-KEY = 'X'.
LS_FIELDCAT-OUTPUTLEN = .
ENDIF.
IF & = 'MGSUM'.
LS_FIELDCAT-JUST = 'R' .
LS_FIELDCAT-EMPHASIZE = 'C310' .
ENDIF.
APPEND LS_FIELDCAT TO P_LT_FIELDCAT.
END-OF-DEFINITION. CLEAR P_LS_LAYOUT.
P_LS_LAYOUT-BOX_FNAME = 'SEL'.
P_LS_LAYOUT-ZEBRA = 'X'. CLEAR P_LT_FIELDCAT.
LS_FIELDCAT-CHECKBOX = 'X'.
LS_FIELDCAT-FIELDNAME = 'SEL'.
LS_FIELDCAT-SCRTEXT_L = '选择'.
LS_FIELDCAT-NO_OUT = 'X'.
LS_FIELDCAT-EDIT = 'X'.
APPEND LS_FIELDCAT TO P_LT_FIELDCAT. SORT TDATE[].
LOOP AT TDATE.
CLEAR L_DATUM.
CALL FUNCTION 'FORMAT_DATE_4_OUTPUT'
EXPORTING
DATIN = TDATE
FORMAT = 'YYYY.MM.DD'
IMPORTING
DATEX = L_DATUM .
FCAT TDATE L_DATUM ''.
ENDLOOP.
ABAP 动态内表 动态ALV的更多相关文章
- ABAP 动态内表添加单元格颜色字段
*动态内表alv显示时要求某些单元格显示颜色 *wa_fldcat-datatype不能添加LVC_T_SCOL类型,在创建好内表之后,再添加颜色列. DATA: wa_fldcat TYPE lvc ...
- 转载: ABAP动态内表操作
顾名思义,动态表的列是可以根据数据的变化而变化的,会使报表显示更简洁漂亮. 以下是实现方法. ------------------------------------------- 1, 创建动态内表 ...
- 转ABAP将内表行列转换实例(动态内表) .
把内表的行列转换,网上的例子很多,但是新人想看懂,几乎很难,所以总结下我是怎么完成的. 比如:你的内表如图: 你想让内表最后展示成这样:如图: 那么完成之后会是这样: 完成这个过程,得用到动态内表.看 ...
- SAP ABAP: 把内表数据以excel或csv格式,通过前台或者后台的方式上传至FTP服务器
今天接到一个FTP的需求,就是每天晚上把当天某个报表的数据自动保存excel上传到FTP服务器. SAP已经有现成的FTP函数使用,可以通过函数的方式来实现,实现前先准备一些数据: User:登录FT ...
- SAP ABAP ALV构建动态输出列与构建动态内表(包留备用),包含操作abap元类型表及类
https://blog.csdn.net/zhongguomao/article/details/51095946
- abap将内表数据导出为excel文件
一个不错的方案: WHEN 'EXPORT'. "导出数据 DATA : GT_TEMP TYPE TABLE OF TY_ITEM WITH HEADER LINE. LOOP AT GT ...
- ABAP 动态生成内表的几种方法
最近要写个程序,既有更新的,也有删除的,需要涉及到很多系统表,如果一个表一个表进行更新或者删除太慢了,于是就想通过创建动态内表来实现这些功能,在网上找了一些资料,经过多次尝试,终于测试成功了.网上讲述 ...
- ABAP 动态内标排序
动态内表怎样排序动态内表怎样排序 动态内表要排序时,因为不知道内表中的字段名字,所以不能直接用SORT table BY field1 field2... 可以使用下面的方法来实现:SORT tab ...
- [SAP ABAP开发技术总结]动态语句、动态程序
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
随机推荐
- Swing-setAlignmentX()用法-入门
先看下API: public void setAlignmentX(float alignmentX) 设置垂直对齐方式. 参数: alignmentX - 新的垂直对齐方式 网上关于这个函数的详细情 ...
- 学号:201521123116 《java程序设计》第六周学习总结
1. 本章学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 2.书面作业 1.1.Object对象中的clone方法是 ...
- 201521123009 《Java程序设计》第6周学习总结
1. 本周学习总结 2. 书面作业 Q1:clone方法 1.1 Object对象中的clone方法是被protected修饰,在自定义的类中覆盖clone方法时需要注意什么? 用protected修 ...
- 201521123109《java程序设计》第三周学习总结
1. 本周学习总结 初学面向对象,会学习到很多碎片化的概念与知识.尝试学会使用思维导图将这些碎片化的概念.知识组织起来.请使用纸笔或者下面的工具画出本周学习到的知识点.截图或者拍照上传. 2. 书面作 ...
- 杨晨露 Java 第一周总结
1.学习内容总结 (1)Integer类在对象中包装了一个基本类型int的值.Integer类型的对象包含一个int类型的字段.该类提供了多个方法,能在int类型和String类型之间互相转换,还提供 ...
- 小Writeup
Misc 100 下载文件之后是一个zip压缩包.因为一开始没有给任何提示信息,题目也什么都没说,爆破了一会无果.同时不是伪加密,所以应该是明文攻击.之后官方给出提示,是一个网址. F12进入调试,发 ...
- Java课程设计——学生成绩管理系统(201521123003 董美凤)
Java课程设计--学生成绩管理系统(201521123003 董美凤) 1.团队课程设计博客链接 学生成绩管理系统博客链接 2.个人负责模块或任务说明 信息修改 密码修改 部分界面设计 3.自己的代 ...
- JS判斷文件大小
function findSize(file) { var dom = document.getElementById("file"); var fileSize = dom.fi ...
- WEB中的敏感文件泄漏
文件泄露, 根据泄漏的信息敏感程度, 在WEB漏洞中可以算是中危甚至高危的漏洞, 本篇文章就来 介绍下一些常见的泄漏, 主要分为由版本管理软件导致的泄露, 文件包含导致的泄露和配置错误导致的泄露. 版 ...
- 在web中使用HTTPS
背景 目前网上流行的是HTTP协议,HTTPS协议还在逐步推广的过程中. HTTP协议以明文发送内容,容易被攻击者窃听.HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份[ ...