日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

选择屏幕的定义

發(fā)布時(shí)間:2025/3/20 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 选择屏幕的定义 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

定義選擇屏幕

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

從sap內(nèi)存中使用缺省值

Parameters語句的memory-id選項(xiàng)允許從全局sap內(nèi)存使用缺省值

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

使用該選項(xiàng) 時(shí),以名稱<pid> 存儲(chǔ)在全局 用戶相關(guān)的 SAP 內(nèi)存中的值 將作為<p> 的缺省值出現(xiàn)在選擇屏幕上。<pid>最長3個(gè)字符 并且不能用引號(hào)封閉。

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

下列報(bào)表以 “HK”為 名稱在全局 SAP 內(nèi)存中存儲(chǔ)值:

REPORT SAPMZTS1.

SET PARAMETER ID 'HK' FIELD 'TestParameter'.

該值在下列 報(bào)表中作為 參數(shù) TEST 的缺省值使 用:

PROGRAM SAPMZTS2.

PARAMETERS TEST(16) MEMORY ID HK.

?

給參數(shù)分配 匹配代碼對(duì) 象

要給參數(shù)分 配匹配代碼 對(duì)象,請(qǐng)使 用 PARAMETERS 語句的MATCHCODE OBJECT 選項(xiàng)

語法:

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

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

如果使用該 選項(xiàng),則可 能的條目按 鈕將在參數(shù)<p> 的輸入字段 之后出現(xiàn)。 用戶按下該按鈕時(shí),其 結(jié)果是為執(zhí)行輸入字段的匹配代碼 選擇。

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

這段應(yīng)該可以理解吧。

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

如果使用該 選項(xiàng),則可 能的條目按 鈕將在參數(shù)<p> 的輸入字段 之后出現(xiàn)。 用戶按下該按鈕時(shí),其 結(jié)果是為執(zhí)行輸入字段的匹配代碼 選擇。

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

PARAMETERS CONN(10) MATCHCODE OBJECTSPFL.

?

給修改組分配參數(shù)

要將參數(shù)分配給修改組可以使用parameters modif id選項(xiàng)

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

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

MODIF ID 選項(xiàng)總是把<key> 分配到內(nèi)表 SCREEN 的 SCREEN-GROUP1列。

在 AT SELECTION-SCREEN OUTPUT事件,分配給修改組的參數(shù)可以用 LOOP AT SCREEN/MODIFY SCREEN 語句按整個(gè) 組進(jìn)行處理 。

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

?

使用選擇標(biāo)準(zhǔn)

選擇標(biāo)準(zhǔn) 存儲(chǔ)在特殊 內(nèi)表中,以 方便設(shè)置數(shù) 據(jù)庫訪問條 件。每個(gè)選擇標(biāo)準(zhǔn)通常分配到數(shù)據(jù) 庫表的特定 列。可以用 SELECT-OPTIONS 語句定義選 擇標(biāo)準(zhǔn)。

如果在報(bào)表 程序中用 SELECT-OPTIONS 語句定義了選擇標(biāo)準(zhǔn),系統(tǒng)將在報(bào) 表選擇屏幕 中自動(dòng)創(chuàng)建輸入字段。 這樣,用戶 可以為訪問 相關(guān)的數(shù)據(jù) 庫表輸入條 件。

如果想編 程實(shí)現(xiàn)復(fù)合 選擇,保存 在指定內(nèi)表 中的 PARAMETERS選擇標(biāo)準(zhǔn)是 很有用的, 因?yàn)樗鼈兪鼓挥迷陂L 的 WHERE 條件中進(jìn)行 編碼。

使用 SELECT-OPTIONS 語句定義選 擇標(biāo)準(zhǔn)。在定義期間,通常把選擇 標(biāo)準(zhǔn)連接到 必須在程序中說明的數(shù) 據(jù)庫表的特 定列上。但 是,您也可 以把選擇標(biāo) 準(zhǔn)連接到報(bào) 表的內(nèi)部字段。多數(shù)情況下每個(gè)選 擇標(biāo)準(zhǔn)能連 接到一個(gè)數(shù) 據(jù)庫表,而 數(shù)據(jù)庫表可 以連接到幾個(gè)選擇標(biāo)準(zhǔn)

如果您使用 SELECT-OPTIONS 語句,報(bào)表 用戶可以在選擇屏幕中輸入選擇標(biāo) 準(zhǔn)。

保存選擇標(biāo) 準(zhǔn)的內(nèi)表稱 為選擇表。

?

選擇表

系統(tǒng)為每個(gè) SELECT-OPTIONS 語句創(chuàng)建選 擇表。選擇表的目的是按標(biāo)準(zhǔn)化的 方式保存復(fù) 合選擇限制。它們可按 多種方式使 用。它們的 主要目的是 使用 Open SQL 語句的 WHERE子句, 把選擇標(biāo) 準(zhǔn)直接傳輸 到數(shù)據(jù)庫表 。選擇表是一 個(gè)帶表頭行的內(nèi)表。它 的行結(jié)構(gòu)是 字段字符串 ,由四個(gè)組 件構(gòu)成,即SIGN、 OPTION、 LOW 和 HIGH。 每個(gè)選擇表行表示數(shù)據(jù) 選擇的條件 .

?

??? SIGN

SIGN 的數(shù)據(jù)類型 是 C,長度為 1。SIGN 是標(biāo)志,表 示保存在OPTION 中的運(yùn)算符是否需要翻 轉(zhuǎn)。允許值 是 I 和 E。

-?? I表示“包含 ”(包含標(biāo) 準(zhǔn)-運(yùn)算符 不翻轉(zhuǎn))

-?? E表示“排除 ”(排除標(biāo) 準(zhǔn)-運(yùn)算符 翻轉(zhuǎn))

? ?OPTION

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

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

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

? ?LOW

LOW 的數(shù)據(jù)類型 與數(shù)據(jù)庫表 的列類型相 同,該表與選擇標(biāo)準(zhǔn)相連接。

-??如果 HIGH 為空,LOW 的內(nèi)容定義 單值選擇。 它與 OPTION 中的運(yùn)算符 相結(jié)合,為 數(shù)據(jù)庫選擇 指定了條件 。

? ?HIGH

HIGH 的數(shù)據(jù)類型 與數(shù)據(jù)庫表 的列類型相 同,該表與選擇標(biāo)準(zhǔn)相連接。HIGH 中的內(nèi)容為 間隔選擇指 定了上界。 與 OPTION 中的運(yùn)算符 相結(jié)合,該 間隔為數(shù)據(jù)庫選擇指定了條件。

如果選擇表 包含多行, 系統(tǒng)將按下 列規(guī)則執(zhí)行 數(shù)據(jù)選擇:

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

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

3.? 選擇 結(jié)果集合。

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

?

自定義選擇 標(biāo)準(zhǔn)與邏輯 數(shù)據(jù)庫

如果邏輯數(shù) 據(jù)庫與報(bào)表 程序相連接 ,并且定義 了與連接數(shù)據(jù)庫的數(shù)據(jù)庫表相連接 的選擇標(biāo)準(zhǔn) ,那么必須 區(qū)別兩種情 況:

? ?如果您為 數(shù)據(jù)庫表列 定義了選擇 標(biāo)準(zhǔn),該數(shù) 據(jù)庫不提供 動(dòng)態(tài)選擇,您的自 定義選擇標(biāo) 準(zhǔn)不會(huì)影響 邏輯數(shù)據(jù)庫讀入的數(shù)據(jù)總數(shù)。只有在讀入后, 您才可以在 GET 事件

中在報(bào)表程序中進(jìn)行檢查

??????如果您為 具有動(dòng)態(tài)選 擇的數(shù)據(jù)庫 表的列定義了選擇標(biāo)準(zhǔn) ,系統(tǒng)將把 用戶在選擇 屏幕的輸入 字段中輸入 的值傳遞給邏輯數(shù)據(jù)庫。在那里, 它們被用作 動(dòng)態(tài)選擇。 這種選擇比 不具有動(dòng)態(tài) 選擇的數(shù)據(jù) 庫表效率更高。

通過用 SELECT-OPTIONS 語句為預(yù)知 動(dòng)態(tài)選擇的數(shù)據(jù)庫表的行定義選擇 標(biāo)準(zhǔn),可以 使系統(tǒng)直接在選擇屏幕 上顯示動(dòng)態(tài) 選擇。要讓 它出現(xiàn),用 戶就不能單 擊“用戶選 擇”。其結(jié)果就象用戶在屏幕上為 動(dòng)態(tài)選擇輸 入選擇限制 一樣。

?

?

定義選擇標(biāo)準(zhǔn)

可以用select-options語句定義選擇標(biāo)準(zhǔn),而且又有幾個(gè)變體

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

該語句創(chuàng)建 選擇表<seltab>, 該表與數(shù)據(jù) 庫表的列<f> 或內(nèi)部字段<f> 相連接。該 數(shù)據(jù)庫表必須在程序中 用 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.

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

給選擇標(biāo)準(zhǔn)分配缺省值

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

系統(tǒng)在時(shí)間事件initialization之前把缺省值傳給選擇標(biāo)準(zhǔn),

只設(shè)置low字段使用…default<g>

如果設(shè)置low和high字段 增加to

…DEFAULT<g> TO<h>.

把選擇表限制在一行

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

如果指定該選項(xiàng),則選擇屏幕上不出現(xiàn)右箭頭,并且用戶不能訪問復(fù)雜選擇窗口,

REPORT SAPMZTST.

TABLES SPFLI.

SELECT-OPTIONS AIRLINE FOR SPFLI-CARRIDNO-EXTENSION.

?

要將選擇屏 幕上選擇標(biāo) 準(zhǔn)的外觀限 制為單值選 擇,請(qǐng)使用SELECT-OPTIONS 語句的 NO INTERVALS

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

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

REPORT SAPMZTST.

TABLES SPFLI.

SELECT-OPTIONS AIRLINE FOR SPFLI-CARRIDNO INTERVALS.

?

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

如果增加 NO-EXTENSION 選項(xiàng),如下 所示:

REPORT SAPMZTST.

TABLES SPFLI.

SELECT-OPTIONS AIRLINE FOR SPFLI-CARRIDNO INTERVALS

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

避免將選擇標(biāo)準(zhǔn)傳遞到邏輯性數(shù)據(jù)庫

?

如果邏輯數(shù)據(jù)庫被連接到報(bào)表程序,就能把選擇標(biāo)準(zhǔn)連接到作為邏輯數(shù)據(jù)庫一部分的數(shù)據(jù)庫表.如果數(shù)據(jù)庫表允許動(dòng)態(tài)選擇,則系統(tǒng)將相應(yīng)的選擇標(biāo)準(zhǔn)傳遞到邏輯數(shù)據(jù)庫

當(dāng)將選擇標(biāo)準(zhǔn)用于其它目的而不是限制數(shù)據(jù)庫訪問時(shí),使用SELECT-OPTIONS 語句的 NO DATABASE SELECTION選項(xiàng),

邏輯數(shù)據(jù)庫 F1S 被連接到下 列報(bào)表程序 。數(shù)據(jù)庫表 SPFLI 的列CONNID 具有動(dòng)態(tài)選 擇

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.

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

?

選擇標(biāo)準(zhǔn)的其它選項(xiàng)

?

有很多選項(xiàng) 可以和 SELECT-OPTIONS 語句一起使 用

? ?要在選擇 屏幕上禁止 顯示選擇標(biāo) 準(zhǔn),請(qǐng)使用

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

? ?要使選擇 標(biāo)準(zhǔn)能夠接 受大寫和小 寫字母,請(qǐng) 使用

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

? ?要進(jìn)行選 擇屏幕上的 “到”字段 所必需的選 擇,請(qǐng)使用

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

? ?要為“到 ”字段從 SAP 內(nèi)存中使用 缺省值,請(qǐng) 使用

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

? ?要將選擇 標(biāo)準(zhǔn)的字段 分配給修改 組,請(qǐng)使用

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

? ?要將匹配 碼對(duì)象分配 給選擇標(biāo)準(zhǔn) 的“從”和 “到”字段 ,請(qǐng)使用

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

?

?

使用報(bào)表的選擇屏幕

?

可以使用選 擇表中輸入 的選擇標(biāo)準(zhǔn) ,以便在報(bào) 表程序中完成三個(gè)不同的任務(wù):

在 WHERE 子句中使用 選擇表

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

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

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

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

REPORT SAPMZTST.

TABLES SPFLI.

SELECT-OPTIONS AIRLINE FORSPFLI-CARRID.

SELECT * FROM SPFLI WHERE CARRID INAIRLINE.

??WRITE SPFLI-CARRID.

ENDSELECT.

?

在邏輯表達(dá)式中使用選擇表

?

要控制程序的內(nèi)部流程,必須用邏輯表達(dá)式編寫條件,可以用選擇表檔

標(biāo)準(zhǔn),

語法

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

示例:

在select循環(huán)中,所有的行都從數(shù)據(jù)庫表spfli中讀取,使用if語句,程序流程會(huì)被子分支成兩個(gè)流程塊,

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 循環(huán)中,系 統(tǒng)從數(shù)據(jù)庫 表 SPFLI中讀取所有的行。在這些行中,系 統(tǒng)只把滿足 選擇表中的 條件的行寫 到輸出屏幕 。否則,CHECK 語句之后, 系統(tǒng)將離開循環(huán)傳遞。CHECK 語句使用了 邏輯表達(dá)式 的短格式。 長格式是:

CHECK: SPFLI-CARRID IN S_CARRID,

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

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

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

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

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

要檢查該行 的內(nèi)容是否 滿足所有與 該數(shù)據(jù)庫相 連接的選擇表中存儲(chǔ)的選擇標(biāo)準(zhǔn), 請(qǐng)使用 CHECK 語句

語法

CHECK SELECT-OPTIONS.

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

邏輯數(shù)據(jù)庫 F1S 與下列報(bào)表 相連接:

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.


總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。