REPORT RSDEMO02.
* demostrates the use of table controls
* unsolved problems: attributes left_col and v_scroll do not work
* correctly
TABLES: SPFLI. "flight connections, flights
DATA: FCODE2(4), FCODE(4). "ok-code
CONTROLS: TC_SPFLI TYPE TABLEVIEW USING SCREEN 100, "flights
TC_COLS TYPE TABLEVIEW USING SCREEN 100. "column props
DATA: COL TYPE CXTAB_COLUMN. "column of table control
TABLES: DEMO_CPROP, DEMO_TPROP. "structures for displaying
* global and column specific props
DATA: BEGIN OF IT_SPFLI OCCURS 20, "flight connections
MARKED. "Check box
INCLUDE STRUCTURE SPFLI.
DATA: END OF IT_SPFLI.
DATA LINNO TYPE I. "line number at cursor position
DATA FLD(20). "field name at cursor position
DATA OFF TYPE I. "offset of cursor position START-OF-SELECTION.
* read flight connections
SELECT * FROM SPFLI UP TO 100 ROWS.
MOVE-CORRESPONDING SPFLI TO IT_SPFLI.
APPEND IT_SPFLI.
ENDSELECT.
DESCRIBE TABLE IT_SPFLI LINES TC_SPFLI-LINES.
TC_COLS-LINES = 6.
* display flights with table control
CALL SCREEN 100.
*&---------------------------------------------------------------------*
*& Module FCODE_100 INPUT
*&---------------------------------------------------------------------*
* handle user command *
*----------------------------------------------------------------------*
MODULE FCODE_100 INPUT.
DATA: FLDNAME(100),FLDNAME2(100),FLDNAME3(100).
* copy global property changes made by the user
TC_SPFLI-FIXED_COLS = DEMO_TPROP-FIXED_COLS.
TC_SPFLI-LINES = DEMO_TPROP-LINES.
TC_SPFLI-LINE_SEL_MODE = DEMO_TPROP-LINE_SEL_M.
TC_SPFLI-COL_SEL_MODE = DEMO_TPROP-COL_SEL_MO.
TC_SPFLI-LINE_SELECTOR = DEMO_TPROP-LINE_SELEC.
TC_SPFLI-V_SCROLL = DEMO_TPROP-V_SCROLL.
TC_SPFLI-H_GRID = DEMO_TPROP-H_GRID.
TC_SPFLI-V_GRID = DEMO_TPROP-V_GRID.
FCODE2 = FCODE.
CLEAR FCODE.
* handle ok code
CASE FCODE2.
WHEN 'INFO'. "display online docu
CALL FUNCTION 'RS_TOOL_ACCESS'
EXPORTING
OPERATION = 'DOCS'
OBJECT_NAME = 'RSDEMO02'
OBJECT_TYPE = 'PROG'
* ENCLOSING_OBJECT =
* position = '1 1'
* DEVCLASS =
* INCLUDE =
* MONITOR_ACTIVATION = 'X'
* IMPORTING
* NEW_NAME =
* TABLES
* OBJLIST =
EXCEPTIONS
NOT_EXECUTED = 1
INVALID_OBJECT_TYPE = 2
OTHERS = 3. WHEN 'SORT'.
DATA: FLD_LIST LIKE TC_SPFLI-COLS.
* search for selected columns.
REFRESH FLD_LIST.
LOOP AT TC_SPFLI-COLS INTO COL.
IF COL-SELECTED = 'X'.
APPEND COL TO FLD_LIST.
ENDIF.
ENDLOOP.
SORT FLD_LIST BY INDEX.
CLEAR:FLDNAME, FLDNAME2, FLDNAME3.
READ TABLE FLD_LIST INDEX 1 INTO COL.
FLDNAME = COL-SCREEN-NAME+9.
READ TABLE FLD_LIST INDEX 2 INTO COL.
FLDNAME2 = COL-SCREEN-NAME+9.
READ TABLE FLD_LIST INDEX 3 INTO COL.
FLDNAME3 = COL-SCREEN-NAME+9.
SORT IT_SPFLI BY (FLDNAME) (FLDNAME2) (FLDNAME3).
WHEN 'BACK'.
SET SCREEN 0.
LEAVE SCREEN.
WHEN 'DELL'.
* remove marked lines
LOOP AT IT_SPFLI WHERE MARKED = 'X'.
DELETE IT_SPFLI.
ENDLOOP.
IF SY-SUBRC <> 0.
GET CURSOR FIELD FLD LINE LINNO OFFSET OFF.
SET CURSOR FIELD FLD LINE LINNO OFFSET OFF.
IF FLD CP 'IT_SPFLI*' AND SY-SUBRC = 0.
LINNO = LINNO + TC_SPFLI-TOP_LINE - 1.
DELETE IT_SPFLI INDEX LINNO.
TC_SPFLI-LINES = TC_SPFLI-LINES - 1.
ENDIF.
ENDIF.
WHEN 'INSL'.
* insert line above cursor position
GET CURSOR FIELD FLD LINE LINNO OFFSET OFF.
SET CURSOR FIELD FLD LINE LINNO OFFSET OFF.
IF FLD CP 'IT_SPFLI*' AND SY-SUBRC = 0.
IF LINNO >= 1.
LINNO = LINNO + TC_SPFLI-TOP_LINE - 1.
CLEAR IT_SPFLI.
INSERT IT_SPFLI INDEX LINNO.
TC_SPFLI-LINES = TC_SPFLI-LINES + 1.
ELSE.
CLEAR IT_SPFLI.
APPEND IT_SPFLI.
TC_SPFLI-LINES = TC_SPFLI-LINES + 1.
ENDIF.
ENDIF.
ENDCASE.
ENDMODULE. " FCODE_100 INPUT
*&---------------------------------------------------------------------*
*& Module INIT_100 OUTPUT
*&---------------------------------------------------------------------*
* *
*----------------------------------------------------------------------*
MODULE INIT_100 OUTPUT.
SET PF-STATUS 'S100'.
* make global props visible
MOVE:
TC_SPFLI-FIXED_COLS TO DEMO_TPROP-FIXED_COLS,
TC_SPFLI-LINES TO DEMO_TPROP-LINES,
TC_SPFLI-TOP_LINE TO DEMO_TPROP-TOP_LINE,
TC_SPFLI-CURRENT_LINE TO DEMO_TPROP-CURRENT_LI,
TC_SPFLI-LEFT_COL TO DEMO_TPROP-LEFT_COL,
TC_SPFLI-LINE_SEL_MODE TO DEMO_TPROP-LINE_SEL_M,
TC_SPFLI-COL_SEL_MODE TO DEMO_TPROP-COL_SEL_MO,
TC_SPFLI-LINE_SELECTOR TO DEMO_TPROP-LINE_SELEC,
TC_SPFLI-V_SCROLL TO DEMO_TPROP-V_SCROLL,
TC_SPFLI-H_GRID TO DEMO_TPROP-H_GRID,
TC_SPFLI-V_GRID TO DEMO_TPROP-V_GRID.
ENDMODULE. " INIT_100 OUTPUT
*&---------------------------------------------------------------------*
*& Module MODIFY_IT_SPFLI INPUT
*&---------------------------------------------------------------------*
* transport changes to internal table *
*----------------------------------------------------------------------*
MODULE MODIFY_IT_SPFLI INPUT.
MODIFY IT_SPFLI INDEX TC_SPFLI-CURRENT_LINE.
ENDMODULE. " MODIFY_IT_SPFLI INPUT
*&---------------------------------------------------------------------*
*& Module READ_COLS OUTPUT
*&---------------------------------------------------------------------*
* Read according column property and make it visible *
*----------------------------------------------------------------------*
MODULE READ_COLS OUTPUT.
READ TABLE TC_SPFLI-COLS INDEX TC_COLS-CURRENT_LINE INTO COL.
IF SY-SUBRC <> 0.
EXIT FROM STEP-LOOP.
ENDIF.
MOVE:
COL-SCREEN-NAME TO DEMO_CPROP-NAME,
COL-SCREEN-GROUP1 TO DEMO_CPROP-GROUP1,
COL-SCREEN-GROUP2 TO DEMO_CPROP-GROUP2,
COL-SCREEN-GROUP3 TO DEMO_CPROP-GROUP3,
COL-SCREEN-GROUP4 TO DEMO_CPROP-GROUP4,
COL-SCREEN-REQUIRED TO DEMO_CPROP-REQUIRED,
COL-SCREEN-INPUT TO DEMO_CPROP-INPUT,
COL-SCREEN-OUTPUT TO DEMO_CPROP-OUTPUT,
COL-SCREEN-INTENSIFIED TO DEMO_CPROP-INTENS,
COL-SCREEN-INVISIBLE TO DEMO_CPROP-INVISIBLEV,
COL-SCREEN-LENGTH TO DEMO_CPROP-LENGTH,
COL-SCREEN-ACTIVE TO DEMO_CPROP-ACTIVE,
COL-INDEX TO DEMO_CPROP-INDEX,
COL-SELECTED TO DEMO_CPROP-SELECTED,
COL-VISLENGTH TO DEMO_CPROP-VISLENGTH,
COL-INVISIBLE TO DEMO_CPROP-INVISIBLEC. ENDMODULE. " READ_COLS OUTPUT
*&---------------------------------------------------------------------*
*& Module MODIFY_COLS INPUT
*&---------------------------------------------------------------------*
* text *
*----------------------------------------------------------------------*
MODULE MODIFY_COLS INPUT.
CLEAR COL.
READ TABLE TC_SPFLI-COLS INDEX TC_COLS-CURRENT_LINE INTO COL.
COL-SCREEN-GROUP1 = DEMO_CPROP-GROUP1.
COL-SCREEN-GROUP2 = DEMO_CPROP-GROUP2.
COL-SCREEN-GROUP3 = DEMO_CPROP-GROUP3.
COL-SCREEN-GROUP4 = DEMO_CPROP-GROUP4.
COL-SCREEN-REQUIRED = DEMO_CPROP-REQUIRED.
COL-SCREEN-INPUT = DEMO_CPROP-INPUT.
COL-SCREEN-OUTPUT = DEMO_CPROP-OUTPUT.
COL-SCREEN-INTENSIFIED = DEMO_CPROP-INTENS.
COL-SCREEN-INVISIBLE = DEMO_CPROP-INVISIBLEV.
COL-SCREEN-LENGTH = DEMO_CPROP-LENGTH.
COL-SCREEN-ACTIVE = DEMO_CPROP-ACTIVE.
COL-INVISIBLE = DEMO_CPROP-INVISIBLEC.
* update column specific property changes made by the user
MODIFY TC_SPFLI-COLS INDEX TC_COLS-CURRENT_LINE FROM COL.
ENDMODULE. " MODIFY_COLS INPUT

SAP Table control的更多相关文章

  1. SAP ABAP编程 Table Control动态隐藏列

    在SAP DIALOG设计中,有时候须要动态的隐藏某些列,以下是方法. ***数据定义 CONTROLS: table_control TYPE TABLEVIEW USING SCREEN 0100 ...

  2. ABAP中的Table Control编程

          SAP中,Table Control是在Screen中用的最广泛的控件之一了,可以实现对多行数据的编辑.       简单来说,Table Control是一组屏幕元素在Screen上的重 ...

  3. ABAP Table Control

    SAP中,Table Control是在Screen中用的最广泛的控件之一了,可以实现对多行数据的编辑.  简单来说,Table Control是一组屏幕元素在Screen上的重复出现,这就是它与普通 ...

  4. table control里面各种属性和事件

    [转自]http://blog.csdn.net/hackai886/article/details/7935366 SAP中,Table Control是在Screen中用的最广泛的控件之一了,可以 ...

  5. abap table control里面各种属性和事件的写法

    SAP中,Table Control是在Screen中用的最广泛的控件之一了,可以实现对多行数据的编辑. 简单来说,Table Control是一组屏幕元素在Screen上的重复出现,这就是它与普通屏 ...

  6. TABLE CONTROL隐藏列和固定列的实现

    一.设置固定列 需求:为了方便对主要关心信息地查看,用户希望TABLE CONTROL左边的一列或者几列在屏幕上固定.针对用户这样子的需求, 我们首先会想到类似与屏幕编辑/可见等字段属性设置,但是此方 ...

  7. ABAP 表格控制(Table Control)和步循环

    表格控制(Table Control)和步循环     1.两个标准Demo: SAPMTZ60,SAPMTZ61 2.简介 3.建立Table Control程序的基本流程 4.使用步循环 5.表格 ...

  8. ABAP 中 Table Control例子

    实现了Table Control的主要的一些功能,可以作为例子参考,实现的功能有是否可编辑切换,选择某一条记录点击按钮显示详细信息,新增记录,删除记录,选择所有记录,选择光标所有记录,取消选择所有,排 ...

  9. ABAP table control例子

    [转自]http://blog.csdn.net/lhx20/article/details/3039909Table control用于在screen上以表格的形式显示数据,在table contr ...

随机推荐

  1. Adobe Xd 练习

    作业要求: 我的work: 下载练习: 2020_3/work.xd 参考教程: https://www.youtube.com/watch?v=dbpGJU4WL1U

  2. signed integer overflow整数溢出

    整数越界情况 1. 数组下标越界, 大于N或者小于0 2. 数字过大,可以选择取个模,或者换long long, double  我笑了 还有一个暂时没有好的解决方法的:string s:cin/输入 ...

  3. js字符串常用的方法总结,及其用法

    JS自带函数concat将两个或多个字符的文本组合起来,返回一个新的字符串.var a = "hello";var b = ",world";var c = a ...

  4. Ubuntu 下 Mariadb 数据库的安装和目录迁移

    Ubuntu 下 Mariadb 数据库的安装和目录迁移 1.简介 本文主要是 Ubuntu 下 Mariadb 数据库的安装和目录迁移,同样适用于 Debian 系统:Ubuntu 20.0.4 M ...

  5. .NET Core(.NET6)中gRPC注册到Consul

    一.简介 上一篇文章介绍了.NET Core 中使用gRPC,在微服务中,我们通常要把服务做成服务注册,服务发现的方式,那么这里来说一下gRPC是如何注册到Consul中的. Consul的安装这里就 ...

  6. Google广告批量投放脚本

    该脚本文件是一个转化文件,将编辑的Google投广告模板转化成Google批量投放广告的脚本文件,实现批量投放广告,节省投广时间.PS:要与相应的模板结合使用,投广告模板在本人博客的文件中,可以下载. ...

  7. PostgreSQL配置调优在线工具

    链接: https://pgtune.leopard.in.ua/#/

  8. Unity—TextMeshPro

    矢量文字,不会因为放大缩小而变的不清晰: 1.TextAsset Window/TextMeshPro/Font Assets Creator 创建TextAsset字体: SourceFont是.t ...

  9. XCTF练习题---MISC---stage1

    XCTF练习题---MISC---stage1 flag:AlphaLab 解题步骤: 1.观察题目,下载附件 2.打开附件后发现是一张图片,初步判断是图片隐写,上Stegsolve进行转换,得到一张 ...

  10. 百度SEO算法技术的局限性,怎么做才能有收益

    不知道大家有没有发现,我们使用百度的频率在减少,就算有时遇到一些问题,需要用百度来寻找答案,也会经常遇到搜索不到答案的情况.到底是出了什么问题?难道网络上的资源不够丰富了?浩如烟海的互联网,居然搜索不 ...