日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

table control的修改/排序/删除功能实现实例

發布時間:2025/3/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 table control的修改/排序/删除功能实现实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本實例仿照SAP DEMO而寫 DEMO名稱是:demo_dynpro_tabcont_loop_at,自動動手寫一次的目的是把將該程序的注釋寫明白一點,希望本文對剛入門的博友在理解table control有一點幫助,依然很惡心這編輯器不能很方便的插入圖片。

?

主程序:

*聲明table?control里面表控件使用的結構
TABLES?demo_conn.
*聲明table?control
CONTROLS?sflight?TYPE?TABLEVIEW?USING?SCREEN?100.
*定義control?cols表的行工作區
DATA?col?LIKE?LINE?OF?sflight-cols.
*定義一個整型變量用來存儲內表行數
DATA?fill?TYPE?i.
*定義內表用來填充control的table
DATA?itab?TYPE?STANDARD?TABLE?OF?demo_conn.
*定義OK_CODE?存儲ftcode
DATA?ok_code?TYPE?sy-ucomm.
DATA?ok_save?TYPE?sy-ucomm.

*---------------------------------------------------------*
*Event?blocks?????????????????????????????????????????????*
*---------------------------------------------------------*

*start-of-selection?event---------------------------------
START-OF-SELECTION.

*獲取數據
??SELECT?*
????FROM?spfli
????INTO?CORRESPONDING?FIELDS?OF?TABLE?itab.
*取得內表行數
??DESCRIBE?TABLE?itab?LINES?fill.
*初始化table?control的行數
??sflight-lines?=?fill.

??CALL?SCREEN?100.
*&---------------------------------------------------------------------*
*&??????Module??STATUS_0100??OUTPUT
*&---------------------------------------------------------------------*
*???????設置菜單?工具?欄
*----------------------------------------------------------------------*
MODULE?status_0100?OUTPUT.
???SET?PF-STATUS?'STATUS_001'.
*??SET?TITLEBAR?'xxx'.

ENDMODULE.?????????????????"?STATUS_0100??OUTPUT
*&---------------------------------------------------------------------*
*&??????Module??MODIFY_CT??INPUT
*&---------------------------------------------------------------------*
*???????更新內表
*----------------------------------------------------------------------*
MODULE?modify_ct?INPUT.
??MODIFY?itab?FROM?demo_conn?INDEX?sflight-current_line.
ENDMODULE.?????????????????"?MODIFY_CT??INPUT
*&---------------------------------------------------------------------*
*&??????Module??USER_COMMAND_0100??INPUT
*&---------------------------------------------------------------------*
*???????處理那些按鈕事件
*----------------------------------------------------------------------*
MODULE?user_command_0100?INPUT.
??ok_save?=?ok_code.
??CLEAR?ok_code.
??CASE?ok_save.
????WHEN?'CHANGE'.
*當點擊修改按鈕,此時要需要修改control?cols的input屬性(cols包含所有列相關信息)
??????LOOP?AT?sflight-cols?INTO?col?WHERE?index?GT?2.
????????IF?col-screen-input?EQ?'1'.
??????????col-screen-input?=?'0'.
??????????modify?sflight-cols?from?col?index?sy-tabix.
????????ELSEIF?col-screen-input?EQ?'0'.
??????????col-screen-input?=?'1'.
??????????modify?sflight-cols?from?col?index?sy-tabix.
????????ELSE.
????????ENDIF.
??????ENDLOOP.
*當點擊sort_down按鈕,此時需要對內表針對選中的地列進行排序
????WHEN?'SORT_DOWN'.
??????READ?TABLE?sflight-cols?INTO?col?WITH?KEY?selected?=?'X'.
??????IF?sy-subrc?=?0.
??????SORT?itab?BY?(col-screen-name+10)?DESCENDING.
??????col-selected?=?''.
??????MODIFY??sflight-cols?FROM?col?INDEX?sy-tabix.
??????ENDIF.
*當點擊sort_up按鈕。。。。?。。。
????WHEN?'SORT_UP'.
??????READ?TABLE?sflight-cols?INTO?col?WITH?KEY?selected?=?'X'.
??????IF?sy-subrc?=?0.
??????SORT?itab?BY?(col-screen-name+10)?ASCENDING.
??????col-selected?=?''.
??????MODIFY??sflight-cols?FROM?col?INDEX?sy-tabix.
??????ENDIF.
*當點擊刪除按鈕,此時需要更新內表
????WHEN?'DELETE'.
??????READ?TABLE?sflight-cols?INTO?col?WITH?KEY?screen-input?=?'1'.
??????IF?sy-subrc?=?0.
????????LOOP?AT?itab?INTO?demo_conn?WHERE?mark?=?'X'.
??????????DELETE?itab?INDEX?sy-tabix.
????????ENDLOOP.
??????ENDIF.
????WHEN?OTHERS.
??ENDCASE.
ENDMODULE.?????????????????"?USER_COMMAND_0100??INPUT
*&---------------------------------------------------------------------*
*&??????Module??READ_DATA??OUTPUT
*&---------------------------------------------------------------------*
*???????讀取內表數據
*----------------------------------------------------------------------*
MODULE?read_data?OUTPUT.
??READ?TABLE?itab?INTO?demo_conn?INDEX?sflight-current_line.
ENDMODULE.?????????????????"?READ_DATA??OUTPUT
*&---------------------------------------------------------------------*
*&??????Module??CANCEL??INPUT
*&---------------------------------------------------------------------*
*???????強制退出
*----------------------------------------------------------------------*
MODULE?cancel?INPUT.
??LEAVE?PROGRAM.
ENDMODULE.?????????????????"?CANCEL??INPUT

?

?

?

屏幕邏輯流:

PROCESS?BEFORE?OUTPUT.
??MODULE?status_0100.
??LOOP?WITH?CONTROL?sflight.
????MODULE?read_data.
??ENDLOOP.
PROCESS?AFTER?INPUT.
??MODULE?cancel?AT?EXIT-COMMAND.
??LOOP?WITH?CONTROL?sflight.
????MODULE?modify_ct.
??ENDLOOP.
??MODULE?user_command_0100.

總結

以上是生活随笔為你收集整理的table control的修改/排序/删除功能实现实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。