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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Web Dynpro for ABAP 之 Web Dynpro Window Web Dynpro Application

發布時間:2025/3/20 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Web Dynpro for ABAP 之 Web Dynpro Window Web Dynpro Application 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Web Dynpro Window

?? 上兩節的簡單的應用程序例子只包含了一個view在一個web dynpro 部件(component)中。本文中開始將介紹一個包含通過導航鏈接的2view的程序。本節和下節將介紹一個部件里面的兩個views之間的通訊。

????? ??每個Web dynpro部件包含至少一個web dynpro 窗體(web dynpro window)。當web 程序嵌入到了窗體中,所有的views將被顯示出來。窗體通過abap工作臺的窗體編輯器(window editor)編輯。所需要的導航在窗體里面單獨的views能夠被創建起來。

???????? ??

??? Web Dynpro窗體包括了所有被顯示的窗體的結構,也是通過接口view連接到Web Dynpro程序的。

????????

???????? Web Dynpro窗體的高級功能(Advanced Functions of Web Dynpro Windows)

??? Window Controller and Window Plugs

每個Web Dynpro窗體包含一個控制器,這個控制器包含context, methodsoutbound plugsinbound plugs。我們可以用插件建立交叉部件(cross-component)的導航。

在一個簡單的程序中,導航的起始點是從啟動一個View開始的。它是在設計的時候創建的。通過窗體樹的context菜單已經在窗體編輯器創建。在一個比較復雜的程序中,用到的inbound plug的事件處理器方法能夠動態的判斷哪個view首先被顯示出來。

?

?

?? Interface View

???????? 每個window會自動創建出一個帶有獨自名字的接口名字。它定義了windows的交叉部件接口。當接口標識設置后,WindowInbound plugsoutbound plugs會被拷貝到對應的接口view.window中,事件處理都自動實現了。接口view的插件(plugs)能夠用來做交叉部件導航。Inbound plugs用來連接到Web Dynpro應用。

?

?

?

?

兩個Views之間的交互(Navigation Between Two Views)

???????? 在一個window里面的views通過導航(navigation links)能夠被互相連接。當用戶調用了個Web Dynpro程序,在屏幕上首先出來的是起始view. 我們可以觸發一個特殊的動作,例如點擊按鈕從而觸發導航(navigation). 按順序,現在在屏幕上出現的vIew消失,第二個view在屏幕上顯示出來。

??? 為了在兩個views之間建立導航,必須為第一個view創建inbound plugs和另一個view創建outbound plug. Plug總是訪問一個view和從一個view退出的連接點。

????????

Outbound plugsinbound plugs有不同的屬性。

?

Outbound Plugs

???????? Outbound plugs總是下一個導航的開始。他們可以在View controller的任何方法中被調用,如下:

??? WD_THIS->FIRE_MY_OUTBOUND_PLG().

WD_THIS屬性總是View controller的接口IF_<MY_VIEW>的自引用。每次我們為這個view創建一個outbound plug. 方法FIRE_<MY_OUTBOUND_PLUG>_PLG將被加到這個接口。

提示:如果我們為View_1創建了out1,out2,out3三個outbound plugs,在接口IF_VIEW_1里面就會相應的創建出FIRE_OUT1_PLG, FIRE_OUT2_PLGFIRE_OUT3_PLG三個方法對應創建。

??? 注意:outbound plug屬于viewcontroller,不會包含引起導向目標的信息。他要連接到的下一個viewinbound plug是通過在窗體布局中創建導航鏈接實現的。

???

?

傳輸參數(Passing Parameters)

???????? 通過調用方法FIRE_<MY_OUTBOUND>傳輸參數。通過在參數表的‘Outbound Plugs’頁簽輸入。

?

???????? 下面的例子,參數Editable被添加到了方法體FIRE_<MY_OUTBOUND>_PLG中。參數類型WDY_BOOLEAN的取值為X(true)或者space(false),所以方法調用可以寫成:

?WD_THIS->FIRE_MY_OUTBOUND_PLG(EDITABLE = ‘X’ ).

?或者

WD_THIS->FIRE_MY_OUTBOUND_PLG(EDITABLE = ‘X’ ).

?

?Inbound Plugs

Web Dynpro windowinbound plugs總是被先前創建的連接直接調用。這個先前創建的連接起源于outbound plug. 當一個inbound plug被調用時,和這個inbound plug唯一相關聯的事件處理方法被調用,這個方法是在inbound plug創建起來的時候被view controller自動創建起來的。此方法在‘Methods’頁簽中。通常命名規則為HANDLEMY_INBOUND_PLUG:

幫助:當有一個inbound plug IN1,則有一個對應的事件處理方法HANDLEIN1被創建。

?

事件處理方法剛開始是空的,可以通過讓程序員寫入代碼實現功能,從技術角度看,這個事件處理方法和其他的沒有什么不同之處。

?

Evaluating Parameters

?? Inbound plug的事件處理方法可以從outbound plug的事件處理方法FIRE_<MY_OUTBOUND>_PLG中接受參數。同樣名字的參數需要添加到inbound plug的事件處理方法上。

提示:如果參數EDITABLE通過outbound plug傳輸過來,參數editable必須添加到事件方法簽名,分配給inbound plug讀取。

這個參數就會被事件處理方法知曉,并且能夠讀取。

????? 注意:inbound plug的事件處理器用來處理新的view的新增的信息。不是用來傳輸應用數據和調用應用邏輯。

?

Example for Navigation with Parameter Transfer

???????? 第一個view, outbound plugaction的事件處理器中被調用,并且傳輸參數Editable = ‘X’. 則下一個通過navigation link被連接的view包含一個能夠被編輯的元素,因為傳輸過來的Editable的值為’X’.

?

在第一個view的事件處理器中調用outbound plug OUT

???????? viewoutbound plug ‘ out’被創建的同時, 類型為WDY_BOOLEAN的參數EDITABLE同時被創建。在運行時通過下面的方法傳輸參數EDITABLE的值。

???????? WD_THIS->FIRE_OUT_PLG( EDITABLE = ‘X’ ).

?

在第二個viewInbound ?Plug ?IN 的事件處理HANDLEIN 中使用參數

???????? 每個UI元素包含’enable’ 屬性,這個參數能夠把這個元素的功能設置為可用和關閉狀態。在view設計的屬性表中,這個元素的這個屬性沒有被選中,這個元素雖然仍會顯示在屏幕中,但是輸入,選擇,做其他任何的用戶交互是不可用的。因為這個元素的屬性是不可用狀態(新加的UI元素的這個屬性默認設置是可用的)。程序員可以在運行時有兩種選擇去指定UI元素的這個行為:

?

?

l?view設計器中,enabled 屬性能夠在設計的時候通過屬性表設置中點擊復選框靜態的指定。當相應的view被調用時,UI 元素總是保持設計時的屬性不變。

l?Enbaled屬性也可以通過綁定到context節點上的包含的類型WDY_BOOLEAN的值上。這個值在運行時傳輸。所以這個UI元素對于所有的函數可用,或者只可以顯示,取決于在程序中的指定。

?

下面的例子中,將演示第二種情況:

第二個viewcontext包含的節點除了應用數據外,還有一個節點用來為這個view的一個或者多個UI元素指定’enabled’屬性值。此例中,節點名字叫做’STATUS’, 并且包含了一個類型為WDY_BOOLEAN的屬性ENABLED.這個值的設置是通過第二個view事件處理方法 HANDLEIN來實現的。

???????? Method HANDEIN.

?????????????????? Data: l_context_node type ref to if_wd_context_node.

??????? L_context_noe = wd_context->get_child_node(‘STATUS’).

??????? L_context_node->set_attribute( name = ‘ENABLE’ value = EDITABLE ).

??? Endmethod.

?? ?傳過來的參數變量值用來指定context節點的屬性, 接口的方法IF_WD_CONTEXT_NODE用在了事件處理方法中。這種情況下,SET_ATTRIBUTE方法被調用,屬性’ENABLED’設置成值EDITABLE.

?現在context節點的ENABLED屬性被設置成’X’,這個值是通過先前的view的方法WD_THIS->FIRE_OUT_PLG(EDITABLE = ‘X’)傳輸過來的。

?

結果(Result

???????? 如果屬性’ENABLED’的屬性值設置為’X’,含有enabled ?屬性并且綁定到了屬性EANBLED UI 元素的所有功能都可以使用。當FIRE_OUT_PLG傳輸了參數 ’ ’,接下來的viewinbound plug的事件處理的屬性ENABLED同樣設置為值’ ’, UI元素的只是顯示在屏幕上,他們的功能均不能夠使用。

?

?

?

?

?

?

?

?

?

?

Web Dynpro Application

Window的另一個非常重要的工作就是建立view組結構和URL之間的關聯,其中這個URL可以被用戶調用。Window同時也是通過Web dynpro應用程序被用戶調用的單位。通常,同一時間只有一個view顯示在屏幕上。最簡單的例子,Web Dynpro應用程序調用指定的view作為window里面起始的默認view。用戶可以從第一個view導航進去下一個view

Web Dynpro應用程序在ABAP工作臺的對象列表中是個獨立的對象。

Web Dynpro窗體和Web Dynpro應用程序之間的連接是建立在window的接口view上的.準確的說,一個interface view是自動分配給一個部件的每個window,默認的,這個接口view包含了個默認的plug.

?? 我們可以通過abap工作臺顯示每個接口view.

?? 接口view不僅僅連接應用程序和window,他們的plugs還有許多功能。作為component接口的一部分,他們同樣也用來進行多個components之間的交流。

?? 接口view?(interface view)


總結

以上是生活随笔為你收集整理的Web Dynpro for ABAP 之 Web Dynpro Window Web Dynpro Application的全部內容,希望文章能夠幫你解決所遇到的問題。

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