实现了Table Control的主要的一些功能,可以作为例子参考,实现的功能有是否可编辑切换,选择某一条记录点击按钮显示详细信息,新增记录,删除记录,选择所有记录,选择光标所有记录,取消选择所有,排序,行选择栏位,列不可编辑,固定列,Table Control标题,分页功能,根据输入A字段的值显示B字段的值,某字段的值如果等于XXX就不可编辑等功能。相信这些功能已经可以满足大部份的开发了。
主程序代码:
DATA: ok_code TYPE sy-ucomm,
save_ok TYPE sy-ucomm.
DATA: l_field TYPE char50,
l_line TYPE i.
TYPES: BEGIN OF ty_spfli,
carrid TYPE spfli-carrid,
connid TYPE spfli-connid,
countryfr TYPE spfli-countryfr,
cityfrom TYPE spfli-cityfrom,
airpfrom TYPE spfli-airpfrom,
mask(1),
END OF ty_spfli.
DATA g_lines TYPE i.
DATA sp2 TYPE TABLE OF ty_spfli WITH HEADER LINE.
DATA sp1 TYPE ty_spfli.
SELECT * INTO CORRESPONDING FIELDS OF TABLE sp2 FROM spfli.
CONTROLS content TYPE TABLEVIEW USING SCREEN 100.
content-top_line = 1.
content-lines = LINES( sp2 ).
CALL SCREEN 100.
LOOP AT sp2.
WRITE: / sp2-carrid,sp2-connid,sp2-countryfr,sp2-cityfrom.
ENDLOOP.
*----------------------------------------------------------------------*
* MODULE status_0100 OUTPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
SET PF-STATUS 'STA'.
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 'EXIT'.
LEAVE TO SCREEN 0.
WHEN 'SWITH'.
PERFORM f_switch.
WHEN 'SORT_UP'.
PERFORM f_sort USING 'UP'.
WHEN 'SORT_DOWN'.
PERFORM f_sort USING 'DOWN'.
WHEN 'DETAIL'.
PERFORM f_detail.
WHEN 'P--'.
PERFORM f_page USING save_ok.
WHEN 'P-'.
PERFORM f_page USING save_ok.
WHEN 'P+'.
PERFORM f_page USING save_ok.
WHEN 'P++'.
PERFORM f_page USING save_ok.
WHEN 'SELECT'.
主程序代码:
DATA: ok_code TYPE sy-ucomm,
save_ok TYPE sy-ucomm.
DATA: l_field TYPE char50,
l_line TYPE i.
TYPES: BEGIN OF ty_spfli,
carrid TYPE spfli-carrid,
connid TYPE spfli-connid,
countryfr TYPE spfli-countryfr,
cityfrom TYPE spfli-cityfrom,
airpfrom TYPE spfli-airpfrom,
mask(1),
END OF ty_spfli.
DATA g_lines TYPE i.
DATA sp2 TYPE TABLE OF ty_spfli WITH HEADER LINE.
DATA sp1 TYPE ty_spfli.
SELECT * INTO CORRESPONDING FIELDS OF TABLE sp2 FROM spfli.
CONTROLS content TYPE TABLEVIEW USING SCREEN 100.
content-top_line = 1.
content-lines = LINES( sp2 ).
CALL SCREEN 100.
LOOP AT sp2.
WRITE: / sp2-carrid,sp2-connid,sp2-countryfr,sp2-cityfrom.
ENDLOOP.
*----------------------------------------------------------------------*
* MODULE status_0100 OUTPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
SET PF-STATUS 'STA'.
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 'EXIT'.
LEAVE TO SCREEN 0.
WHEN 'SWITH'.
PERFORM f_switch.
WHEN 'SORT_UP'.
PERFORM f_sort USING 'UP'.
WHEN 'SORT_DOWN'.
PERFORM f_sort USING 'DOWN'.
WHEN 'DETAIL'.
PERFORM f_detail.
WHEN 'P--'.
PERFORM f_page USING save_ok.
WHEN 'P-'.
PERFORM f_page USING save_ok.
WHEN 'P+'.
PERFORM f_page USING save_ok.
WHEN 'P++'.
PERFORM f_page USING save_ok.
WHEN 'SELECT'.