天天看點

如何從 SAP Fiori Elements List Report Table 點選事件響應函數裡拿到表格某一行的資訊

訂閱專欄

如下圖所示,我按照這篇文章 如何在 SAP Fiori Elements List Report 表格工具欄裡增添新的自定義按鈕 裡介紹的方式,在 SAP Fiori Elements List Report 應用的 table 工具欄裡,添加了一個自定義按鈕:

如何從 SAP Fiori Elements List Report Table 點選事件響應函數裡拿到表格某一行的資訊

下一步,我期望選中某行表項後,點選該按鈕,能彈出對應表項的一些資料。

是以問題的焦點,就是如何從按鈕的點選處理函數 onCustomAction1 的輸入參數 oEvent 裡,獲得目前表格裡被選中的資料。

如何從 SAP Fiori Elements List Report Table 點選事件響應函數裡拿到表格某一行的資訊

我們從 oEvent 變量觸發:

如何從 SAP Fiori Elements List Report Table 點選事件響應函數裡拿到表格某一行的資訊

oEvent.oSource 指向目前觸發事件的 UI 控件,即 自定義按鈕控件:

如何從 SAP Fiori Elements List Report Table 點選事件響應函數裡拿到表格某一行的資訊

按鈕的 parent 是 toolbar:

如何從 SAP Fiori Elements List Report Table 點選事件響應函數裡拿到表格某一行的資訊

Toolbar 的 parent 就是整個響應式 table 了:

如何從 SAP Fiori Elements List Report Table 點選事件響應函數裡拿到表格某一行的資訊

調用 getSelectedItem() 拿到目前選中行:

如何從 SAP Fiori Elements List Report Table 點選事件響應函數裡拿到表格某一行的資訊

這個 ColumnListItem 包含了目前選中行的所有列。

調用其 getCells 方法,得到 8 個 Table Columns 的執行個體:

如何從 SAP Fiori Elements List Report Table 點選事件響應函數裡拿到表格某一行的資訊
如何從 SAP Fiori Elements List Report Table 點選事件響應函數裡拿到表格某一行的資訊
如何從 SAP Fiori Elements List Report Table 點選事件響應函數裡拿到表格某一行的資訊

從其 sId 大緻能辨識出每個 Column 代表的含義,或者直接根據其 index 也就是索引,也能判斷出。比如第一個元素,是 product image column,而第二個元素 vbox,是一個複合控件,Vertical Box. 第三個元素,是一個 Text 控件,Product Category.

取得 Product Category 的代碼比較簡單:

如何從 SAP Fiori Elements List Report Table 點選事件響應函數裡拿到表格某一行的資訊

先使用 getItems 拿到 vertical box 包含的所有資料:

如何從 SAP Fiori Elements List Report Table 點選事件響應函數裡拿到表格某一行的資訊

然後再逐一通路每條資料執行個體,調用 getText 即可獲得逐條資料内容。

如何從 SAP Fiori Elements List Report Table 點選事件響應函數裡拿到表格某一行的資訊
如何從 SAP Fiori Elements List Report Table 點選事件響應函數裡拿到表格某一行的資訊

繼續閱讀