SAP屏幕设计器专题:编写控件代码(三)
? ? 上一篇博文我只是畫了一個(gè)屏幕,一個(gè)外殼而已,真正要實(shí)現(xiàn)我們需要的功能還需要寫相應(yīng)的代碼。
? ? 輸入SE51,打開我們的例子程序,切換到“流程邏輯”,默認(rèn)的屏幕代碼如下圖所示:
? ? 第一個(gè)PROCESS BEFORE OUTPUT(PBO)的意思是畫面載入時(shí)所做的動作。
? ? 第二個(gè)PROCESS AFTER INPUT(PAI)的意思是用戶在屏幕上輸入之后獲取屏幕的動作。
? ? 我們把注釋掉的代碼去掉注釋,然后保存,并雙擊“STATUS_0100”字符串,出現(xiàn)如下對話框:
下圖提示我們是否
是要新增一個(gè)INCLUDE還是
在原有的程序上新增代碼段,我們選擇第二個(gè):
這個(gè)時(shí)候畫面自動切換到SE38并打開我們的程序,自動加入如下代碼(去掉相應(yīng)的注釋并填入內(nèi)容):
我們雙擊上面的“ZCREEN0100”,出現(xiàn)一下畫面:
填入相應(yīng)內(nèi)容之后:
上面第一個(gè)代表菜單欄;第二個(gè)代表自定義工具欄,第三個(gè)代表系統(tǒng)工具欄(ENTER,保存,退出,返回):
點(diǎn)擊第二個(gè),輸入SUM,然后點(diǎn)擊“SUM”下方圖示的位置,進(jìn)入如下圖:
繼續(xù):
設(shè)定快捷鍵:
繼續(xù):
于是,自定義按鈕算是好了。
第三個(gè),系統(tǒng)工具欄,輸入如下名稱:
還需要點(diǎn)擊進(jìn)去進(jìn)行設(shè)置,都一樣的,這里我們點(diǎn)擊“SAVE”,其他照做:
于是,這個(gè)系統(tǒng)工具欄算是弄好了。記得保存并激活。回到程序畫面。雙擊“TITLE0100”,彈出下列對話框:
這個(gè)是畫面的標(biāo)題:
點(diǎn)擊全部顯示,進(jìn)入之后激活:
返回SE51畫面激活屏幕,回到程序試運(yùn)行程序:
發(fā)現(xiàn)屏幕都有工具按鈕了,但是點(diǎn)擊沒反應(yīng)!接下去添加控件代碼了!
雙擊下面的“USER_COMMAND_0100”,跟STATUS_0100一樣:
輸入如下代碼:
WHEN后面的內(nèi)容都是控件的名稱!!!
還記得我們屏幕上那個(gè)按鈕的“功能代碼”嗎?參照上一篇博文,我們的按鈕功能代碼是“OK”,于是我們在CASE里添加如下代碼:
WHEN?'OK'.
...
我們在程序中怎么獲得屏幕上控件的值呢?起始很好辦,只要我們在程序中新建一個(gè)變量,類型和長度以及名稱都跟屏幕上控件對應(yīng)屬性一致就可以了。
比如屏幕上那個(gè)文本框名稱是:TXT。我們要獲取這個(gè)文本框的內(nèi)容,就需要新建一個(gè)TXT的變量,長度最好一直,類型要一樣:
DATA:TXT(9) TYPE C.
而復(fù)選框和單選框的聲明也是類似,名稱要一樣(大寫),變量的類型是C,長度是1。如下:
DATA:C1?TYPE?C,
?????C2?TYPE?C,
?????R1?TYPE?C,
?????R2?TYPE?C.
一旦復(fù)選框和單選被選擇,它們的值是‘X’。
? WHEN?'OK'.
??????MESSAGE?TXT?TYPE?'I'.
??????IF?C1?=?'X'.
?????????MESSAGE?'復(fù)選框1被選中'?TYPE?'I'.
??????ENDIF.
??????IF?C2?=?'X'.
?????????MESSAGE?'復(fù)選框2被選中'?TYPE?'I'.
??????ENDIF.
??????IF?R1?=?'X'.
?????????MESSAGE?'單選框1被選中'?TYPE?'I'.
??????ELSEIF?R2?=?'X'.
?????????MESSAGE?'單選框2被選中'?TYPE?'I'.
??????ENDIF.
我們在SE51中屏幕設(shè)計(jì)器上畫出一個(gè)文本框,只作為輸出,即內(nèi)容說明:
此文本框名稱是TXT1,長度是14,于是我們定義變量如下:
DATA:TXT1(14)?TYPE?C.
CASE代碼塊更改如下:
??CASE?OK_CODE.
????WHEN?'ENTER'.
??????MESSAGE?'CLICK?ENTER'?TYPE?'I'.
????WHEN?'SUM'.
??????MESSAGE?'CLICK?SUM'?TYPE?'I'.
????WHEN?'SAVE'.
??????MESSAGE?'CLICK?SAVE'?TYPE?'I'.
????WHEN?'BACK'.
??????LEAVE?TO?SCREEN?0.
????WHEN?'OK'.
??????MESSAGE?TXT?TYPE?'I'.
??????IF?C1?=?'X'.
?????????MESSAGE?'復(fù)選框1被選中'?TYPE?'I'.
??????ENDIF.
??????IF?C2?=?'X'.
?????????MESSAGE?'復(fù)選框2被選中'?TYPE?'I'.
??????ENDIF.
??????IF?R1?=?'X'.
?????????MESSAGE?'單選框1被選中'?TYPE?'I'.
??????ELSEIF?R2?=?'X'.
?????????MESSAGE?'單選框2被選中'?TYPE?'I'.
??????ENDIF.
??????TXT1?=?'填充內(nèi)容!'.
????WHEN?'EXIT'?OR?'CANCEL'.
??????LEAVE?PROGRAM.
????WHEN?OTHERS.
??ENDCASE.
本文主要是講解基本控件的使用。接下去一片博文要講述下拉框的使用。
轉(zhuǎn)載于:https://www.cnblogs.com/saper/archive/2011/05/21/2052596.html
總結(jié)
以上是生活随笔為你收集整理的SAP屏幕设计器专题:编写控件代码(三)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 酉水河的倾诉
- 下一篇: Cocoa Touch 层