ABAP中使用TABLE CONTROL 显示数据以及操作要点小结:由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“abap内表用法小结”。
TABLE CONTROL操作要点小结
1.屏幕号:100 2.在屏幕100中应用table control *声明control T1应用于屏幕100 CONTROLS T1 TYPE TABLEVIEW USING SCREEN 100.“T1代表自定义的table control的名字
3.要想给table control中自动赋值,则需把table control中的字段名定义为:WA_SPFLI-CARRID格式。
主程序代码:
*&-------*
*& Report ZTABLECONTROL02_
*&-------* *&CREATOR:
*&-------*
REPORT ZTABLECONTROL02_LIUMING.*引入表spfli TABLES:SPFLI.*定义结构体
TYPES:BEGIN OF TY_DATA, CARRID LIKE SPFLI-CARRID, CONNID LIKE SPFLI-CONNID, COUNTRYFR LIKE SPFLI-COUNTRYFR, CITYFROM LIKE SPFLI-CITYFROM, AIRPFROM LIKE SPFLI-AIRPFROM, FLAG TYPE C, END OF TY_DATA.*定义内表和工作区
DATA:IT_SPFLI TYPE TABLE OF TY_DATA, WA_SPFLI LIKE LINE OF IT_SPFLI.*获取数据
SELECT * FROM SPFLI INTO CORRESPONDING FIELDS OF TABLE IT_SPFLI.*定义分页所需参数
DATA: PAGESIZE TYPE I VALUE 23, “每页条数 NUM TYPE I, ”判断是否刚好是整页
COUNT TYPE I, “总条数
AFTER TYPE I, ”下一页的第一条 PAGECOUNT TYPE I, “总共有几页 PAGENUM TYPE I VALUE 1.”第几页 DESCRIBE TABLE IT_SPFLI LINES COUNT.NUM = COUNT MOD PAGESIZE.IF NUM 0.PAGECOUNT = COUNT DIV PAGESIZE + 1.ELSE.PAGECOUNT = COUNT DIV PAGESIZE.ENDIF.*声明变量
DATA:OK_CODE TYPE SY-UCOMM, SAVE_OK TYPE SY-UCOMM.*声明control T1应用于屏幕100
CONTROLS T1 TYPE TABLEVIEW USING SCREEN 100.*调用屏幕100 CALL SCREEN 100.*打印数据
IF NOT IT_SPFLI IS INITIAL.LOOP AT IT_SPFLI INTO WA_SPFLI.WRITE:/2 WA_SPFLI-CARRID,10 WA_SPFLI-CONNID,18 WA_SPFLI-COUNTRYFR, 26 WA_SPFLI-CITYFROM,34 WA_SPFLI-AIRPFROM.ENDLOOP.ENDIF.*&-------*
*& Module STATUS_0100 OUTPUT
*&--------------------* 退出图标
*--------*
MODULE STATUS_0100 OUTPUT.SET PF-STATUS 'STATUS01'.* SET TITLEBAR 'xxx'.ENDMODULE.“ STATUS_0100 OUTPUT
*&-------*
*& Module USER_COMMAND_0100 INPUT
*&-------* * 实现用户命令
*--------*
MODULE USER_COMMAND_0100 INPUT.SAVE_OK = OK_CODE.CLEAR OK_CODE.CASE SAVE_OK.WHEN 'ISWRITE'.”读写转换
PERFORM ISWRITE.WHEN 'ASC'.“升序处理 SORT IT_SPFLI BY CARRID CONNID ASCENDING.WHEN 'DES'.”降序处理
SORT IT_SPFLI BY CARRID DESCENDING CONNID DESCENDING.WHEN 'SHOW'.“用弹出框显示选中行信息
PERFORM SHOW.WHEN 'FIRSTPAGE'.”显示首页
PERFORM FIRSTPAGE.WHEN 'PREVIOUS'.“上一页
PERFORM PREVIOUS.WHEN 'NEXT'.”下一页
PERFORM NEXT.WHEN 'LAST'.“最后一页
PERFORM LAST.WHEN 'SELECTALL'.”选中全部
PERFORM SELECTALL.WHEN 'SELBLOCK'.“选中光标所在行
PERFORM SELBLOCK.WHEN 'DESELALL'.” 取消全选
PERFORM DESELALL.WHEN 'INSERTROW'.“插入一行(内表)
PERFORM INSERTROW.WHEN 'DELETEROW'.”删除选中行(未成功)
PERFORM DELETEROW.WHEN 'LEAVE'.“回到初始屏幕 SELECT * FROM SPFLI INTO CORRESPONDING FIELDS OF TABLE IT_SPFLI.LEAVE TO SCREEN 0.ENDCASE.ENDMODULE.” USER_COMMAND_0100 INPUT *&-------* *& Form ISWRITE
*&-------* * text
*--------* *--> “读写转换
*--------* FORM ISWRITE.DATA COL LIKE LINE OF T1-COLS.LOOP AT T1-COLS INTO COL.IF SY-TABIX = 1 OR SY-TABIX = 2.COL-SCREEN-INPUT = 1.ELSE.IF COL-SCREEN-INPUT = 0.COL-SCREEN-INPUT = 1.ELSE.COL-SCREEN-INPUT = 0.ENDIF.ENDIF.MODIFY T1-COLS FROM COL.ENDLOOP.ENDFORM.” ISWRITE
*&-------* *& Form SHOW
*&-------* * text
*--------*
*--> “用弹出框显示选中行信息
*--------* FORM SHOW.DATA:C_LINE TYPE I, ”定义点击的行id C_INDEX TYPE I.“定义对应的内表中的id
GET CURSOR LINE C_LINE.”鼠标所在的行 C_INDEX = T1-TOP_LINE + C_LINE2)* PAGESIZE.“上两页的最后一条 DELETE IT_SPFLI FROM 1 TO AFTER.PAGENUM = PAGENUM1.ELSEIF PAGENUM = 1.PAGENUM = 1.MESSAGE S000(Z001)WITH '该页是第一页'.ENDIF.ENDFORM.” PREVIOUS
*&-------* *& Form NEXT
*&-------* * text
*--------* *--> “下一页
*--------* FORM NEXT.SELECT * FROM SPFLI INTO CORRESPONDING FIELDS OF TABLE IT_SPFLI.AFTER = PAGENUM * PAGESIZE.”该页的最后一条 DATA AFTER1 TYPE I.AFTER1 =(PAGENUM1.AFTER = P * PAGESIZE.IF PAGENUM = PAGECOUNT.DATA AFTER1 TYPE I.AFTER1 =(PAGENUM1.“TOP_LINE对应第一条数据
READ TABLE IT_SPFLI INTO WA_SPFLI INDEX S_INDEX.WA_SPFLI-FLAG = 'X'.MODIFY IT_SPFLI FROM WA_SPFLI INDEX S_INDEX.ENDFORM.” SELBLOCK
*&-------* *& Form DESELALL
*&-------* * text
*--------* *--> “ 取消全选
*--------* FORM DESELALL.LOOP AT IT_SPFLI INTO WA_SPFLI.IF WA_SPFLI-FLAG = 'X'.WA_SPFLI-FLAG = ''.MODIFY IT_SPFLI FROM WA_SPFLI.ENDIF.ENDLOOP.ENDFORM.” DESELALL
*&-------*
*& Form INSERTROW
*&-------* * text
*--------* *--> “插入一行(内表)
*--------* FORM INSERTROW.CLEAR WA_SPFLI.DATA: I_LINE TYPE I, I_INDEX TYPE I.GET CURSOR LINE I_LINE.INSERT WA_SPFLI INTO IT_SPFLI INDEX I_LINE.ENDFORM.” INSERTROW
*&-------*
*& Form DELETEROW
*&-------* * text
*--------* *--> “删除选中行
*--------* FORM DELETEROW.LOOP AT IT_SPFLI INTO WA_SPFLI.IF WA_SPFLI-FLAG = 'X'.DELETE IT_SPFLI INDEX SY-TABIX.ENDIF.ENDLOOP.ENDFORM.” DELETEROW
*&-------*
*& Module MODI INPUT
*&-------* * text
*--------* MODULE MODI INPUT.MODIFY IT_SPFLI FROM WA_SPFLI INDEX T1-CURRENT_LINE.ENDMODULE." MODI INPUT
屏幕100中的代码:
PROCESS BEFORE OUTPUT.MODULE STATUS_0100.LOOP AT IT_SPFLI INTO WA_SPFLI WITH CONTROL T1.ENDLOOP.PROCESS AFTER INPUT.*MODULE CANCEL AT EXIT-COMMAND.LOOP AT IT_SPFLI.MODULE MODI.ENDLOOP.MODULE USER_COMMAND_0100.
ABAP直接操作EXCEL实现数据处理。这里是用OLE实现操作EXCEL的。现在还有 DOI操作EXCEL等方法。以后用到再做介绍。此处不是直接生成EXCEL文件,而是从 服务器已经上传的EXCEL......
人老眼花记忆力下降 不熟悉操作遇到麻烦教您使用自动取款机 编辑同志:现在,我市各银行都开设了ATM机自助服务窗口,但操作有点复杂,特别是老年人眼花,记忆力下降,用后就忘了,下次使......
使用高倍显微镜操作技巧小结湖北省巴东县第二高级中学 刘先柱 444324 高中生物实验中,有关显微镜的操作最多,它也是完成许多其它实验的前提。因此,如何熟练地使用高倍显微镜对......
网络营销中的大数据使用——以中粮大悦城为例摘要:随着计算机的普及与电子商务的发展,网络营销和大数据在互联网中的应用越来越明显,为企业带来了无穷的商机和广阔的市场空间。......
主要材料设备价格表没有数据显示2016费用定额的招投标中的主要材料设备价格表显示的是对工程主体质量安全有影响的材料设备。因此,在软件中,用户需要根据工程实际情况将当前工......