abap系列-如何在自定義螢幕上實現range選擇(二)
阿新 • • 發佈:2020-10-23
上一篇介紹了通過選擇螢幕來實現select-options的方法.本篇繼續介紹另一種方法。
這種方法比前一種要麻煩,但是可以自由放置輸入欄位的位置,相對第一種要靈活一些。
第二種方法需要用到一個function:COMPLEX_SELECTIONS_DIALOG
。這個function能夠生成一個點選多選按鈕時彈出的視窗,如下圖
下面介紹實現步驟
- 首先在自定義螢幕上放置需要的輸入欄位,同時還要定義一個改欄位的range型別的變數,用於後面儲存使用者輸入的資料;
- 在自定義螢幕上該輸入欄位後放置一個按鈕,為了保證使用者體驗,按鈕圖示設定為與選擇螢幕時的圖示一致,如下圖(注意有多條記錄和只有單條記錄時的圖示不一樣);
- 在螢幕的pai中,當點選該按鈕時,呼叫function:
COMPLEX_SELECTIONS_DIALOG
,程式碼如下
欄位 | 說明 |
---|---|
help_field | F4幫助的參考欄位,指定對應的表和欄位即可 |
tab_and_field | range表的欄位,指定對應的參考表和參考欄位 |
range | 傳入之前定義的range表 ,接收使用者輸入的多值 |
- 還有一些細節地方需要更多程式碼實現,如需要注意內表有多值、單值、為空時圖示的切換.模糊匹配時的處理;使用者輸入後自動將第一條記錄放到輸入欄位顯示等,這些就不一一介紹了。
下面放一個自己做的例子
由於經常用function:SE16N_INTERFACE修改表內容,為了方便,做了一個輸入介面。