SAP Table control



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的更多相关文章
- SAP ABAP编程 Table Control动态隐藏列
在SAP DIALOG设计中,有时候须要动态的隐藏某些列,以下是方法. ***数据定义 CONTROLS: table_control TYPE TABLEVIEW USING SCREEN 0100 ...
- ABAP中的Table Control编程
SAP中,Table Control是在Screen中用的最广泛的控件之一了,可以实现对多行数据的编辑. 简单来说,Table Control是一组屏幕元素在Screen上的重 ...
- ABAP Table Control
SAP中,Table Control是在Screen中用的最广泛的控件之一了,可以实现对多行数据的编辑. 简单来说,Table Control是一组屏幕元素在Screen上的重复出现,这就是它与普通 ...
- table control里面各种属性和事件
[转自]http://blog.csdn.net/hackai886/article/details/7935366 SAP中,Table Control是在Screen中用的最广泛的控件之一了,可以 ...
- abap table control里面各种属性和事件的写法
SAP中,Table Control是在Screen中用的最广泛的控件之一了,可以实现对多行数据的编辑. 简单来说,Table Control是一组屏幕元素在Screen上的重复出现,这就是它与普通屏 ...
- TABLE CONTROL隐藏列和固定列的实现
一.设置固定列 需求:为了方便对主要关心信息地查看,用户希望TABLE CONTROL左边的一列或者几列在屏幕上固定.针对用户这样子的需求, 我们首先会想到类似与屏幕编辑/可见等字段属性设置,但是此方 ...
- ABAP 表格控制(Table Control)和步循环
表格控制(Table Control)和步循环 1.两个标准Demo: SAPMTZ60,SAPMTZ61 2.简介 3.建立Table Control程序的基本流程 4.使用步循环 5.表格 ...
- ABAP 中 Table Control例子
实现了Table Control的主要的一些功能,可以作为例子参考,实现的功能有是否可编辑切换,选择某一条记录点击按钮显示详细信息,新增记录,删除记录,选择所有记录,选择光标所有记录,取消选择所有,排 ...
- ABAP table control例子
[转自]http://blog.csdn.net/lhx20/article/details/3039909Table control用于在screen上以表格的形式显示数据,在table contr ...
随机推荐
- 关闭Mac的Microsoft AutoUpdate
最近使用Office 发现AutoUpdate一直会启动.我也不需要里面的更新.每次还要把它推出. 网上看到有两种方法,一种是暴力删除,另一种是通过权限限制. 暴力可不是我喜欢的方式,所以选择后者. ...
- 界面优化--如何提升用户体验(Velocity.js和GSAP)
Velocity.js和GSAP 我们需要提升代码质量来留住用户.作为用户界面的建设者,我们的工作是迅速引导和引导用户的注意力,指导他们如何有效地使用我们的应用程序. 1. 如何提升代码质量 定向聚焦 ...
- Java第十五周作业
Cola公司的雇员分为以下若干类:(知识点:多态) [必做题]• 4.1 ColaEmployee :这是所有员工总的父类,属性:员工的姓名,员工的生日月份.方法:getSalary(int mont ...
- 接口测试实战| GET/POST 请求区别详解
1.请求行的 method 不同:2.POST 可以附加 body,可以支持 form.json.xml.binary等各种数据格式:3.从行业通用规范的角度来说,无状态变化的建议使用 GET 请求, ...
- Day 004:PAT练习--1033 旧键盘打字 (20 分)
题目要求如下: 我一开始理解的题意:第一行给出的是坏掉的键,这里的规则应该是这样的: 1."对应英文字母的坏键以大写给出",若有字母,则与其相关的字母全部不能输出,不论是大 ...
- 基于.Net C# 通信开发-串口调试助手
基于.Net C# 通信开发-串口调试助手 1.概述 串口调试助手,广泛应用于工控领域的数据监控.数据采集.数据分析等工作,可以帮助串口应用设计.开发.测试人员检查所开发的串口应用软硬件的数据收发状况 ...
- 百度SEO算法技术的局限性,怎么做才能有收益
不知道大家有没有发现,我们使用百度的频率在减少,就算有时遇到一些问题,需要用百度来寻找答案,也会经常遇到搜索不到答案的情况.到底是出了什么问题?难道网络上的资源不够丰富了?浩如烟海的互联网,居然搜索不 ...
- fedora使用root超级用户
sudo -i可以使当前用户变成root帐号. 这样就不用一遍一遍的输sudo 了! 原来用sudo su也可以.
- Java编程小技巧(1)——方法传回两个对象
原文地址:Java编程小技巧(1)--方法传回两个对象 | Stars-One的杂货小窝 题目是个伪命题,由Java语法我们都知道,方法要么返回一个对象,要么就不返回 当有这样的情况,我们需要返回两个 ...
- form表单,css简介,css选择器,css样式操作
form表单 简介 表单在Web网页中用以让访问者输入数据,当提交表单时,表单中输入的数据被打包传递给Web服务器端的程序 以处理,从而使得Web服务器与用户之间具有交互功能. 表单实现前后台交互:用 ...