SAP選擇屏幕開發(一)(轉)

原文連接:https://blog.csdn.net/wtxhai/article/details/90632686數據庫

        用戶經過屏幕操做來實現與SAP的數據交互,而SAP的屏幕開發通常分爲兩種,一種是經過SAP ABAP語法建立屏幕元素,稱之爲選擇屏幕,選擇屏幕主要是用來輸入查詢參數;第二種是經過SAP的屏幕編輯器開發,經過屏幕編輯器能夠實現數據多種展示模式。編輯器

1.一、屏幕基本輸入域對象的建立及相關屬性函數

         SAP中能夠經過ABAP來建立屏幕元素,共分爲兩種模式,一種是經過SELECT-OPTIONS語法來創建數據輸入域,另外一種則是經過PARAMETERS語法來建立數據輸入域。spa

1.1.一、屏幕元素建立的基本語法.net

          SELECT-OPTIONS與PARAMETERS的屬性有不少類似之處,可是SELECT-OPTIONS建立的是一個輸入的區間,其定義時必須制定參考表及參考字段,SELECT-OPTIONS<對象名>FOR<參考對象>。3d

PARAMETERS一般用於創建一個單一的屏幕輸入對象,其參考對象相對比較靈活,能夠參考數據表的字段,也能夠參考具體的數據元素,PARAMETERS<對象名>LIKE/TYPE<參考對象>。code

 

1.1.二、動態定義輸入域的參考對象對象

        SAP容許動態定義屏幕輸入域的對象,這樣能夠對一些須要動態變動屏幕元素的程序帶來莫大的方便(例如SAP的表對象查詢程序,則能夠經過動態字段來變動查詢輸入條件)。動態對象的定義其實是經過修改參考對象的地址來實現類型的變換,當參考對象的值與數據對象中的字段一致時,則會參考該數據字段類型創建屏幕對象,以下圖所示:blog

 

 

1.1.三、屏幕輸入域顯示參數控制事件

        SELECT-OPTIONS和PARAMETERS的顯示參數控制機制基本相似。

     1.OBLIGATORY必輸項控制
        控制該屏幕元素是否爲必輸項,SELECT-OPTIONS通常只對下限值字段(LOW字段)有效。
     2.NO-DISPLAY顯示控制
        程序運行後不顯示該對象,SELECT-OPTIONS與PARAMETERS屬性一致。
     3.VISIBLE LENGTH vlen顯示長隊控制
        控制對象的顯示長度,其取值範圍爲1-18.
     4.NO-EXTENSION多行輸入控制
        SELECT-OPTIONS和PARAMETERS所定義的對象均可以輸入多行數值,加上該參數後,限制只能輸入單一行,在屏幕對象後面的多行輸入控制按鈕將隱藏。
     5.NO-INTERVALS輸入範圍值控制
         該屬性針對於SELECTION-OPTIONS所定義的對象是輸入範圍值,上限值到下限值,在內表中分別爲「LOW」和「HIGH」兩個字段,加上該參數後,在屏幕上只會顯示上限值輸入字段。
     6.MODIFY ID modid 編輯組控制
         該參數能夠將定義的屏幕對象進行分組,以方便在程序運行中對分組的對象屬性進行統一修改及控制,例如控制某組對象爲不可輸入,以下代碼中將G2分鐘的對象在屏幕輸出時設置爲不可輸入。該屬性 在SELECT-OPTIONS和PARAMETERS中的操做基本一致。

 

 

 

1.1.四、輸入值的控制

        SAP提供數據輸入控制參數來控制屏幕對象的輸入值,包括以下。

     1.控制輸入默認值
      ● DEFAULT vall [ TO val2 ] [ OPTION opt ] [ SIGN sgn]控制輸入默認值範圍
        該參數針對SELECT-OPTIONS所定義對象屏幕加載後所顯示的默認值,其中vall [ TO val2 ]爲輸入值的上下限,OPTION表明數據關係,SIGN表明輸入類型,具體以下表:

欄目名 參考值 描述
SIGN I或者E 輸入類型,I表示包括,E表示排除
OPTION NB或者BT 表示先後輸入欄關係,NB(不包括)、BT(包括)

 

         輸入默認值範圍也能夠在程序加載時進行更改,代碼以下:

 

 

    ● DEFAULT vall
        控制PARAMETERS所對應對象輸入默認值範圍:該參數定義對象在屏幕加載後所顯示的默認值,輸入默認值範圍也能夠在程序加載時進行更改。
    2. LOWER CASD容許輸入小寫字母
        SAP全部屏幕字段輸入後都會將字母默認轉換爲大寫,加上該參數容許輸入小寫字母。
    3. MATCHCODE OBJECT search help 屏幕對象F4幫助
        爲屏幕對象加上指定的F4幫助,F4幫助功能會在數據字典章節作具體介紹,系統也提供了不少已經定義好的F4幫助對象,以下圖所示。

 

 

    4. MEMORY ID pid 定義SELECT-OPTIONS內存參數
        能夠將屏幕對象輸入的值保存到制定的內存參數,經過GET PARAMETERS方法能夠直接從內從讀取該對象的值,如如下代碼,將內存值取到制定字段並輸出。

 

 

1.1.5屏幕對象的F1/F4輸入幫助功能
     1. HELP-REQUEST [ FOR {LOW | HIGH} ]字段的F1幫助
         當選中SAP屏幕中的指定字段並按鍵盤上的F1時,能夠調用自定義的程序或者系統幫助文件,該功能一般被稱爲F1幫助。F1幫助能夠經過ABAP事件AT SELECTION-SCREEN來控制,在自定義程序中,能夠經過調用系統標準函數HELP_OBJECT_SHOW(或者HELP_OBJECT_SHOW_FOR_FIELD)來實現。

 

 

     2.VALUE-REQUEST [ { LOW | HIGH } ] 字段的F4幫助
        當在指定的字段F4鍵時,能夠調用自定義的程序或者系統幫助數據,該過程是經過可是F4事件來觸發的,因此也能夠經過ABAP語法事件控住語法AT SELECTION-SCREEN來調用。
        當該參數主要是在定義幫助數據時使用,在參照數據表創建的屏幕對象通常會取用默認幫助對象,與F1不一樣的是,F1是進行信息提示,而F4是顯示填充值的列表,因此取得值將返回給所操做的屏幕對象,能夠調用系統函數F4IF_FIELD_VALUE_REQUEST參照某一具體字段來維護F4幫助,以下所示:

 

 

     3.NO DATABASE SELECTION不選取邏輯數據庫約束
        在調用邏輯數據庫的程序中,每每會對用戶輸入的數據按權限來進行篩選,假若在定義的對象後面加上NO DATABASE SELECTION參數,該對象所輸入的對象則不會收到邏輯數據庫的約束。
        目前ABAP中須要運用NO DATABASE SELECTION定義的邏輯數據庫比較少,例如HR模塊關聯的PNP邏輯數據庫中,其全部的幫助條件都採用Search Help的方式進行定義。而在引用邏輯數據庫FIS開發的程序中,經過按F4鍵只能看到用戶權限所限制的數據,以鏈接編號CONNID字段爲例,經過按F4鍵只能看到用戶被分配的CONNID的取值範圍。在引用邏輯庫的程序中,經過NO DATABASE SELECTION參數能夠讀取非限制條件的數據。邏輯數據庫能夠在ABAP編輯器的屬性頁面進行定義。執行邏輯數據庫須要引用定義NODES或TABLES,使用NO DATABASE SELECTION定義以下:

 

 

    1.1.六、PARAMETERS屏幕元素的特性功能開發
                 PARAMETERS所建立的對象除了數據輸入域外,還能夠建立其餘比較特殊的屏幕對象。
    1.定義複選框
       相關語法:PARAMETERS < 對象名 > AS CHECKBOX  [ USER-COMMAND fcode]
       在屏幕上產生一個複選框,當複選框對象被選中時,其值爲「X」,不然爲空。在所對應的對象後面加上命令[USER-COMMAND fcode ],能夠定義該複選框的單擊事件代碼,在ABAP代碼中,經過事件控制語句AT SELECTION-SCREEN和START-OF-SELECTION過程能夠捕捉該單擊事件。
        所操做的事務代碼被保存在系統變量SY-UCOMM中,以下圖:

 

 

     2.定義單選按鈕
        相關語法:PARAMETERS < 對象名 > RADIOBUTTON GROUP group [ USER-COMMAND fcode ]
        在屏幕上產生一個單選按鈕,當單選按鈕被選中時,其值爲「X」,不然爲空。定義多個單選按鈕,須要加上GROUP參數來定義分組,每組按鈕數量不能小於兩個。同一分組的單選按鈕選擇值之間會相互約束,每次只能有一個被選中。
        加上[ USER-COMMAND fcode ]能夠定義該單選按鈕的單價事件代碼,ABAP中的AT SELECTION-SCREEN和START-OF-SELECTION過程當中能夠出發該事件,所操做的事件代碼被保存到系統變量SY-UCOMM中。以下圖:

 

 

       3.建立下拉列表

        相關語法:PARAMETERS < 對象名 > AS LISTBOX VISIBLE LENGTH vlen [ USER-COMMAND fcode ]

 

 

 

 

————————————————版權聲明:本文爲CSDN博主「wtxhai」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接及本聲明。原文連接:https://blog.csdn.net/wtxhai/article/details/90632686

相關文章
相關標籤/搜索