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. nginx配置后端映射(反向代理proxy_pass)

    说明:配置反向代理proxy_pass和location无关,location后面加不加 / 都可以 1.配置 proxy_pass 时,当在后面的 url 加上了 /,相当于是绝对路径,则 Ngin ...

  2. AcWing 1027. 方格取数(线性DP)

    题目链接 题目描述 设有 N×N 的方格图,我们在其中的某些方格中填入正整数,而其它的方格中则放入数字0.如下图所示: 某人从图中的左上角 A 出发,可以向下行走,也可以向右行走,直到到达右下角的 B ...

  3. Python学习报告及后续学习计划

    第一次有学习Python的想法是源于寒假在家的时候,高中同学问我是否学了Python(用于深度学习),当时就到b站收藏了黑马最新的教学视频,但是"收藏过等于我看了",后续就是过完年 ...

  4. Java语言学习day27--8月02日

    今日内容介绍1.Eclipse常用快捷键操作2.Eclipse文档注释导出帮助文档3.Eclipse项目的jar包导出与使用jar包4.不同修饰符混合使用细节5.辨析何时定义变量为成员变量6.类.抽象 ...

  5. 新的 css 子选择器

    1. html 结构 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  6. Glade To Code 介绍

    Glade To Code 简介 根据 Glade 文件生成指定语言的 GTK 代码的工具 使用说明 python3 glade-to-code.py -l [语言类型] -i [输入 Glade 文 ...

  7. JVM调优篇

    点赞再看,养成习惯,微信搜索「小大白日志」关注这个搬砖人. 文章不定期同步公众号,还有各种一线大厂面试原题.我的学习系列笔记. 基础概念 一般JVM调优,重点在于调整JVM堆大小.调整垃圾回收器 jv ...

  8. JSP标签、JSTL标签、EL表达

    JSP页面转发,附带数据 <jsp:forward page="/jsptag2.jsp"> <jsp:param name="name" v ...

  9. 团队Beta3

    队名:观光队 链接 组长博客 作业博客 组员实践情况 王耀鑫 **过去两天完成了哪些任务 ** 文字/口头描述 学习 展示GitHub当日代码/文档签入记录 接下来的计划 完成短租车,页面美化 **还 ...

  10. Docker系列教程01-使用Docker镜像

    docker系列导读 一文带你读懂什么是docker Docker安装部署 10张图带你深入理解Docker容器和镜像 前言 学习Docker,我们需要掌握它的三大核心概念:镜像.容器和仓库. 今天先 ...