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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

使用AT SELECTION-SCREEN事件验证用户输入条件的反思

發布時間:2025/3/20 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用AT SELECTION-SCREEN事件验证用户输入条件的反思 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

回想一下,為什么要在AT SELECTION-SCREEN事件驗證用戶輸入條件?好像是第一次做ABAP培訓中老師提到的,當時也沒有覺得有什么問題,以后在程序中也就按照這樣的思路去寫代碼了.像下面簡單的代碼,對我來說已經是司空見慣了.

SELECT-OPTIONS: s_matnr FOR mara-matnr.

AT SELECTION-SCREEN.
IF s_matnr[] IS INITIAL.
MESSAGE e001 WITH '請輸入物料號!'.
ENDIF.


從邏輯上來看沒什么問題,這樣可以確實要求用戶必須輸入物料號這個條件.
但是當用戶輸入多個物料號的時候,麻煩來了.用戶一般已經在其它地方將需要輸入的物料號復制到剪貼板上,希望能一次粘貼到選擇條件中.但是有了上面的語句,用戶必須復制一個物料號,粘貼到s_matnr對應的編輯框內,然后切換回物料號列表的窗口,復制剩余的物料號,點擊"多項選擇"按鈕再進行粘貼,無形中多出了三個操作步驟.

如果每天使用這樣的報表使用幾次,那可能也算不了什么.但是如果要幾十甚至上百次使用這樣的報表,您不覺得煩嗎?

如果在AT SELECTION-SCREEN事件中寫了比較復雜的驗證代碼,那就更麻煩了.因為用戶每次點擊"多項選擇"按鈕都會觸發AT SELECTION-SCREEN中的所有代碼,那么對于用戶來說,每次操作都需要一定時間的等待!另外一方面,AT SELECTION-SCREEN中的所有代碼在觸發START-OF-SELECTION事件前還會執行一次,對系統來說也是不必要的資源浪費.

還是看看關于AT SELECTION-SCREEN的Online help吧!
You should only perform very expensive checks with AT SELECTION-SCREEN

考慮到上面的情況,大多數情況下面,我們還是把驗證用戶輸入條件的代碼放在START-OF-SELECTION事件處理中比較合適.

---------------------------------------------------

對AT SELECTION-SCREEN又做了一些研究,如果在事件處理中加一些限制條件后,基本上和寫在START-OF-SELECTION事件中效果相同,不過出錯時的提示界面更友好,用戶可以直接修改輸入值,這也是使用START-OF-SELECTION事件不好的地方.代碼框架如下:

IF sscrfields-ucomm = 'ONLI' OR
sscrfields-ucomm = 'PRIN' OR
sscrfields-ucomm = 'SJOB'.
* Your code here
ENDIF.

總結

以上是生活随笔為你收集整理的使用AT SELECTION-SCREEN事件验证用户输入条件的反思的全部內容,希望文章能夠幫你解決所遇到的問題。

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