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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

选择屏幕的定义

發布時間:2025/3/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 选择屏幕的定义 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

定義選擇屏幕

==========================================================================================

從sap內存中使用缺省值

Parameters語句的memory-id選項允許從全局sap內存使用缺省值

PARAMETERS<p> ...... MEMORY ID<pid>......

使用該選項 時,以名稱<pid> 存儲在全局 用戶相關的 SAP 內存中的值 將作為<p> 的缺省值出現在選擇屏幕上。<pid>最長3個字符 并且不能用引號封閉。

可以使用全局sap內存在程序間傳遞保留在事務限制以外的值,用戶在整個終端進程期間都可以利用該內存,并且所有并行進程使用相同的內存。因此SAP 內存包含的 內容要比局 限于事務的 ABAP/4 內存更廣泛。

下列報表以 “HK”為 名稱在全局 SAP 內存中存儲值:

REPORT SAPMZTS1.

SET PARAMETER ID 'HK' FIELD 'TestParameter'.

該值在下列 報表中作為 參數 TEST 的缺省值使 用:

PROGRAM SAPMZTS2.

PARAMETERS TEST(16) MEMORY ID HK.

?

給參數分配 匹配代碼對 象

要給參數分 配匹配代碼 對象,請使 用 PARAMETERS 語句的MATCHCODE OBJECT 選項

語法:

PARAMETERS<p> ...... MATCHCODE OBJECT<obj> ......

匹配代碼對 象<obj> 的名稱必須 是 4 字符的變量名,并且不能用引號封閉。

如果使用該 選項,則可 能的條目按 鈕將在參數<p> 的輸入字段 之后出現。 用戶按下該按鈕時,其 結果是為執行輸入字段的匹配代碼 選擇。

匹配代碼對 象<obj> 的名稱必須 是 4 字符的變量名,并且不能用引號封閉。

這段應該可以理解吧。

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

如果使用該 選項,則可 能的條目按 鈕將在參數<p> 的輸入字段 之后出現。 用戶按下該按鈕時,其 結果是為執行輸入字段的匹配代碼 選擇。

就是說,如果使用了 MATCHCODEOBJECT,則參數后面就會出那個小圓疙瘩按鈕,按了它,就出<obj>指定的搜索窗口。

PARAMETERS CONN(10) MATCHCODE OBJECTSPFL.

?

給修改組分配參數

要將參數分配給修改組可以使用parameters modif id選項

PARAMETERS<p> ...... MODIF ID<key> ......

修改組 <key>的名稱必須 是不帶引號 的 3 字符變量名。

MODIF ID 選項總是把<key> 分配到內表 SCREEN 的 SCREEN-GROUP1列。

在 AT SELECTION-SCREEN OUTPUT事件,分配給修改組的參數可以用 LOOP AT SCREEN/MODIFY SCREEN 語句按整個 組進行處理 。

PARAMETERS: TEST1(10) MODIF ID SC1,

???????????TEST2(10) MODIF ID SC2,

???????????TEST3(10) MODIF ID SC1,

???????????TEST4(10) MODIF ID SC2.

AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.

??? IFSCREEN-GROUP1 = 'SC1'.

???????SCREEN-INTENSIFIED = '1'.

???????MODIFY SCREEN.

???????CONTINUE.

??? ENDIF.

??? IFSCREEN-GROUP1 = 'SC2'.

???????SCREEN-INTENSIFIED = '0'.

???????MODIFY SCREEN.

??? ENDIF.

ENDLOOP.

在 PARAMETERS 語句中,參 數 TEST1 和 TEST3被分配給組 SC1,而 TEST2 和 TEST4 被分配給組 SC2。在 AT SELECTION-SCREEN OUTPUT事件中,按 照 GROUP1 字段的內容,內表 SCREEN 的字段 INTENSIFIED 被設置為 1 或0。在選擇屏幕中,TEST1 和 TEST3 所在行被設 置為高亮度 ,而 TEST2 和 TEST4則不是,一般為紅色顯示!

?

使用選擇標準

選擇標準 存儲在特殊 內表中,以 方便設置數 據庫訪問條 件。每個選擇標準通常分配到數據 庫表的特定 列。可以用 SELECT-OPTIONS 語句定義選 擇標準。

如果在報表 程序中用 SELECT-OPTIONS 語句定義了選擇標準,系統將在報 表選擇屏幕 中自動創建輸入字段。 這樣,用戶 可以為訪問 相關的數據 庫表輸入條 件。

如果想編 程實現復合 選擇,保存 在指定內表 中的 PARAMETERS選擇標準是 很有用的, 因為它們使您不用在長 的 WHERE 條件中進行 編碼。

使用 SELECT-OPTIONS 語句定義選 擇標準。在定義期間,通常把選擇 標準連接到 必須在程序中說明的數 據庫表的特 定列上。但 是,您也可 以把選擇標 準連接到報 表的內部字段。多數情況下每個選 擇標準能連 接到一個數 據庫表,而 數據庫表可 以連接到幾個選擇標準

如果您使用 SELECT-OPTIONS 語句,報表 用戶可以在選擇屏幕中輸入選擇標 準。

保存選擇標 準的內表稱 為選擇表。

?

選擇表

系統為每個 SELECT-OPTIONS 語句創建選 擇表。選擇表的目的是按標準化的 方式保存復 合選擇限制。它們可按 多種方式使 用。它們的 主要目的是 使用 Open SQL 語句的 WHERE子句, 把選擇標 準直接傳輸 到數據庫表 。選擇表是一 個帶表頭行的內表。它 的行結構是 字段字符串 ,由四個組 件構成,即SIGN、 OPTION、 LOW 和 HIGH。 每個選擇表行表示數據 選擇的條件 .

?

??? SIGN

SIGN 的數據類型 是 C,長度為 1。SIGN 是標志,表 示保存在OPTION 中的運算符是否需要翻 轉。允許值 是 I 和 E。

-?? I表示“包含 ”(包含標 準-運算符 不翻轉)

-?? E表示“排除 ”(排除標 準-運算符 翻轉)

? ?OPTION

OPTION 的數據類型 是 C,長度為 2。OPTION包含選擇運算符。如果 SIGN 包含 E,運算符 的作用就象 它的前面有 NOT一樣。下 列運算符是 可用的:

-??如果 HIGH 是空的,您 可以使用 EQ 、 NE 、 GT 、 LE 、 LT 、 CP 和 NP。這些 運算符在編程邏輯表達式中描述。運 算符 CP 和 NP 沒有它們在 通常邏輯表 達式中所具 有的范圍。 只有當在輸入字段中使 用了通配符 (“* ”或“ + ”)時它們 才是有效的。沒有定義 退出符號。

-??如果 HIGH 已被填充, 則可以使用 BT(位于 )和 NB(不位于)。這些 運算符的功 能與 BETWEEN 和 NOTBETWEEN 一樣

? ?LOW

LOW 的數據類型 與數據庫表 的列類型相 同,該表與選擇標準相連接。

-??如果 HIGH 為空,LOW 的內容定義 單值選擇。 它與 OPTION 中的運算符 相結合,為 數據庫選擇 指定了條件 。

? ?HIGH

HIGH 的數據類型 與數據庫表 的列類型相 同,該表與選擇標準相連接。HIGH 中的內容為 間隔選擇指 定了上界。 與 OPTION 中的運算符 相結合,該 間隔為數據庫選擇指定了條件。

如果選擇表 包含多行, 系統將按下 列規則執行 數據選擇:

1.? 組成 在 SIGN 字段值為I(包含) 的行上定義 的集合聯合 。

2.? 去掉 在 SIGN 字段值為E(排除) 的行上定義 的集合聯合 。

3.? 選擇 結果集合。

如果選擇表 只具有 SIGN 字段等于 E 的行,系統將選擇這些行所指定的集合之外的 所有數據。

?

自定義選擇 標準與邏輯 數據庫

如果邏輯數 據庫與報表 程序相連接 ,并且定義 了與連接數據庫的數據庫表相連接 的選擇標準 ,那么必須 區別兩種情 況:

? ?如果您為 數據庫表列 定義了選擇 標準,該數 據庫不提供 動態選擇,您的自 定義選擇標 準不會影響 邏輯數據庫讀入的數據總數。只有在讀入后, 您才可以在 GET 事件

中在報表程序中進行檢查

??????如果您為 具有動態選 擇的數據庫 表的列定義了選擇標準 ,系統將把 用戶在選擇 屏幕的輸入 字段中輸入 的值傳遞給邏輯數據庫。在那里, 它們被用作 動態選擇。 這種選擇比 不具有動態 選擇的數據 庫表效率更高。

通過用 SELECT-OPTIONS 語句為預知 動態選擇的數據庫表的行定義選擇 標準,可以 使系統直接在選擇屏幕 上顯示動態 選擇。要讓 它出現,用 戶就不能單 擊“用戶選 擇”。其結果就象用戶在屏幕上為 動態選擇輸 入選擇限制 一樣。

?

?

定義選擇標準

可以用select-options語句定義選擇標準,而且又有幾個變體

語法:SELECT-OPTIONS<seltab> FOR<f>.

該語句創建 選擇表<seltab>, 該表與數據 庫表的列<f> 或內部字段<f> 相連接。該 數據庫表必須在程序中 用 TABLES語句聲明。

REPORT SAPMZTST.

TABLES SPFLI.

SELECT-OPTIONS AIRLINE FORSPFLI-CARRID.

LOOP AT AIRLINE.

??WRITE: / 'SIGN:',??AIRLINE-SIGN,

???????????'OPTION:', AIRLINE-OPTION,

???????????'LOW:',???AIRLINE-LOW,

???????????'HIGH:',??AIRLINE-HIGH.

ENDLOOP.

說明選擇表是如何用選擇屏幕中的用戶輸入填充的

給選擇標準分配缺省值

SELECT-OPTIONS<seltab> FOR<f> DEFAULT<g> [TO<h>] ....

系統在時間事件initialization之前把缺省值傳給選擇標準,

只設置low字段使用…default<g>

如果設置low和high字段 增加to

…DEFAULT<g> TO<h>.

把選擇表限制在一行

要把用戶對選擇表的訪問限制在第 一行,請使 用 SELECT-OPTIONS語句的 NO-EXTENSION.

如果指定該選項,則選擇屏幕上不出現右箭頭,并且用戶不能訪問復雜選擇窗口,

REPORT SAPMZTST.

TABLES SPFLI.

SELECT-OPTIONS AIRLINE FOR SPFLI-CARRIDNO-EXTENSION.

?

要將選擇屏 幕上選擇標 準的外觀限 制為單值選 擇,請使用SELECT-OPTIONS 語句的 NO INTERVALS

SELECT-OPTIONS<seltab> FOR<f> ..... NO INTERVALS .....

如果指定該 選項,則“ 到”字段不 出現在選擇 屏幕上。選擇屏幕上的輸入將限制 為單值選擇

REPORT SAPMZTST.

TABLES SPFLI.

SELECT-OPTIONS AIRLINE FOR SPFLI-CARRIDNO INTERVALS.

?

用戶只能直 接輸入單值 選擇,但是 ,用戶通過 單擊屏幕右邊的箭頭可以輸入進一 步選擇。

如果增加 NO-EXTENSION 選項,如下 所示:

REPORT SAPMZTST.

TABLES SPFLI.

SELECT-OPTIONS AIRLINE FOR SPFLI-CARRIDNO INTERVALS

???????????????????????????????????????NO-EXTENSION.

避免將選擇標準傳遞到邏輯性數據庫

?

如果邏輯數據庫被連接到報表程序,就能把選擇標準連接到作為邏輯數據庫一部分的數據庫表.如果數據庫表允許動態選擇,則系統將相應的選擇標準傳遞到邏輯數據庫

當將選擇標準用于其它目的而不是限制數據庫訪問時,使用SELECT-OPTIONS 語句的 NO DATABASE SELECTION選項,

邏輯數據庫 F1S 被連接到下 列報表程序 。數據庫表 SPFLI 的列CONNID 具有動態選 擇

SELECT-OPTIONS<seltab> FOR<f> ..... NO DATABASE SELECTION.....

REPORT SAPMZTST.

TABLES SPFLI.

SELECT-OPTIONS CONN FOR SPFLI-CONNID NODATABASE SELECTION.

GET SPFLI.

?? IFSPFLI-CONNID IN CONN.

????WRITE: SPFLI-CARRID, SPFLI-CONNID, 'meets criterion'.

??ELSE.

????WRITE: SPFLI-CARRID, SPFLI-CONNID,

????????????????????????'does not meet criterion'.

??ENDIF.

選擇屏幕的 第一部分在 邏輯數據庫 中定義。最 后一行 (CONN)在報表程序 中定義。

?

選擇標準的其它選項

?

有很多選項 可以和 SELECT-OPTIONS 語句一起使 用

? ?要在選擇 屏幕上禁止 顯示選擇標 準,請使用

???SELECT-OPTIONS <seltab> FOR<f> ... NO-DISPLAY ..............

? ?要使選擇 標準能夠接 受大寫和小 寫字母,請 使用

???SELECT-OPTIONS <seltab> FOR<f> ... LOWER CASE ..............

? ?要進行選 擇屏幕上的 “到”字段 所必需的選 擇,請使用

???SELECT-OPTIONS <seltab> FOR<f> ... OBLIGATORY ..............

? ?要為“到 ”字段從 SAP 內存中使用 缺省值,請 使用

???SELECT-OPTIONS <seltab> FOR<f> ... MEMORY ID<pid>..........

? ?要將選擇 標準的字段 分配給修改 組,請使用

???SELECT-OPTIONS <seltab> FOR<f> ... MODIF ID<key>...........

? ?要將匹配 碼對象分配 給選擇標準 的“從”和 “到”字段 ,請使用

???SELECT-OPTIONS <seltab> FOR<f> ... MATCHCODE OBJECT<obj>...

?

?

使用報表的選擇屏幕

?

可以使用選 擇表中輸入 的選擇標準 ,以便在報 表程序中完成三個不同的任務:

在 WHERE 子句中使用 選擇表

? 要限制開放式SQL語句selectupdate和delete的數據庫訪問,使用where子句

要在where條件中使用選擇表,

......... WHERE<f> IN<seltab>.

<f>是數據庫字段的不帶前綴的名稱,而<seltab>是與該字段相連接的選擇表,如果你用開放式sql語句,使用where條件,則系統只訪問指定數據庫的某些行,

REPORT SAPMZTST.

TABLES SPFLI.

SELECT-OPTIONS AIRLINE FORSPFLI-CARRID.

SELECT * FROM SPFLI WHERE CARRID INAIRLINE.

??WRITE SPFLI-CARRID.

ENDSELECT.

?

在邏輯表達式中使用選擇表

?

要控制程序的內部流程,必須用邏輯表達式編寫條件,可以用選擇表檔

標準,

語法

... <f>IN <seltab> ....

示例:

在select循環中,所有的行都從數據庫表spfli中讀取,使用if語句,程序流程會被子分支成兩個流程塊,

REPORT SAPMZTST.

TABLES SPFLI.

SELECT-OPTIONS: S_CARRID FORSPFLI-CARRID,

???????????????S_CITYFR FOR SPFLI-CITYFROM,

???????????????S_CITYTO FOR SPFLI-CITYTO,

???????????????S_CONNID FOR SPFLI-CONNID.

SELECT * FROM SPFLI.

??CHECK: S_CARRID,

?????????S_CITYFR,

?????????S_CITYTO,

?????????S_CONNID.

??WRITE: / SPFLI-CARRID, SPFLI-CONNID,

?????????SPFLI-CITYFROM, SPFLI-CITYTO.

ENDSELECT.

?

在 SELECT 循環中,系 統從數據庫 表 SPFLI中讀取所有的行。在這些行中,系 統只把滿足 選擇表中的 條件的行寫 到輸出屏幕 。否則,CHECK 語句之后, 系統將離開循環傳遞。CHECK 語句使用了 邏輯表達式 的短格式。 長格式是:

CHECK: SPFLI-CARRID IN S_CARRID,

??????SPFLI-CITYFR IN S_CITYFR,

??????SPFLI-CITYTO IN S_CITYTO,

??????SPFLI-CONNID IN S_CONNID.

在 GET 事件中與 CHECK 語句一起使 用選擇表

可以使用 CHECK語句離開,循環,子程序,處理塊,該變體只能在讀出一條語句之后使用,

要檢查該行 的內容是否 滿足所有與 該數據庫相 連接的選擇表中存儲的選擇標準, 請使用 CHECK 語句

語法

CHECK SELECT-OPTIONS.

使用該語句 ,可以通過 所有選擇表 檢查實際數 據庫表(由 GET給出地址)的內容,數 據庫表通過使用不同的 SELECT-OPTIONS 語句連接到 選擇表。CHECK 語句的該變體

邏輯數據庫 F1S 與下列報表 相連接:

REPORT SAPMZTST.

TABLES: SPFLI,SFLIGHT.

SELECT-OPTIONS:MAX??? FORSFLIGHT-SEATSMAX,

???????????????OCC??? FORSFLIGHT-SEATSOCC.

GET SFLIGHT.

??WRITE: / SPFLI-CARRID, SPFLI-CONNID.

??CHECK SELECT-OPTIONS.

??WRITE: SFLIGHT-SEATSMAX, SFLIGHT-SEATSOCC.


總結

以上是生活随笔為你收集整理的选择屏幕的定义的全部內容,希望文章能夠幫你解決所遇到的問題。

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