1. 程式人生 > 實用技巧 >abap系列-如何在自定義螢幕上實現range選擇(二)

abap系列-如何在自定義螢幕上實現range選擇(二)

上一篇介紹了通過選擇螢幕來實現select-options的方法.本篇繼續介紹另一種方法。
這種方法比前一種要麻煩,但是可以自由放置輸入欄位的位置,相對第一種要靈活一些。

第二種方法需要用到一個function:COMPLEX_SELECTIONS_DIALOG。這個function能夠生成一個點選多選按鈕時彈出的視窗,如下圖
在這裡插入圖片描述

下面介紹實現步驟

  1. 首先在自定義螢幕上放置需要的輸入欄位,同時還要定義一個改欄位的range型別的變數,用於後面儲存使用者輸入的資料;
  2. 在自定義螢幕上該輸入欄位後放置一個按鈕,為了保證使用者體驗,按鈕圖示設定為與選擇螢幕時的圖示一致,如下圖(注意有多條記錄和只有單條記錄時的圖示不一樣);在這裡插入圖片描述
  3. 在螢幕的pai中,當點選該按鈕時,呼叫function:COMPLEX_SELECTIONS_DIALOG,程式碼如下在這裡插入圖片描述
欄位說明
help_fieldF4幫助的參考欄位,指定對應的表和欄位即可
tab_and_fieldrange表的欄位,指定對應的參考表和參考欄位
range傳入之前定義的range表 ,接收使用者輸入的多值
  1. 還有一些細節地方需要更多程式碼實現,如需要注意內表有多值、單值、為空時圖示的切換.模糊匹配時的處理;使用者輸入後自動將第一條記錄放到輸入欄位顯示等,這些就不一一介紹了。

下面放一個自己做的例子

由於經常用function:SE16N_INTERFACE修改表內容,為了方便,做了一個輸入介面。

在這裡插入圖片描述