SmartTable 控件根據 OData 元數據和指定的配置創建一個表。 必須指定 entitySet 屬性才能使用該控件。 此屬性用於從 OData 元數據中獲取字段,從中生成列; 它還可以用於獲取實際的表數據。
基於 tableType 屬性,此控件運行時將被渲染成標準、分析、樹或響應表等實際控件。
SmartTable 控件支持相關實體集引用的貨幣和單位自定義。SAP UI5 框架會自動請求這些相關的代碼列表,然後用於格式化貨幣和單位單元格模板。
SmartTable 控件提供了一個名爲 preserveDecimals 的全局 customData 設置,可用於配置 preserveDecimals 格式選項。
customData 的默認值爲 preserveDecimals=true。 然後,此 customData 用於格式化 Edm.Decimal 類型以及貨幣和單位單元格模板。
如果小數位數與代碼列表返回的值不同,則無法保證貨幣和單位值的小數點對齊。
包含空白字符的字符串類型的單元格數據被替換爲 unicode 字符,以在 UI 上可視化空白。 這是默認啓用的。
有朋友諮詢:
如何爲自定義列啓用個性化,它們與常規列有何不同,尤其是在與個性化設置或電子表格導出一起使用時?
You can specify custom data for the personalization of the columns in your table as shown in the examples.
可以通過指定 custom data
的方式,來實現 table column 的定製化。
<table:Column id="Ledger" minScreenWidth="Tablet" demandPopin="true">
<table:customData>
<core:CustomData key="p13nData"
value='\{"columnKey": "Ledger", "leadingProperty":"Ledger",
"additionalProperty":"LedgerName", "sortProperty": "Ledger",
"filterProperty": "Ledger", "type":"numeric"}' />
</table:customData>
<Label text="Ledger" />
<table:template>
<Text text="{Ledger}" />
</table:template>
</table:Column>
爲了使用 SAPUI5 shortcut notation
, 將下列命名空間片段添加到 XML view 裏:
xmlns:customData="http://schemas.sap.com/sapui5/extension/sap.ui.core.CustomData/1"
使用 shortcut notation
之後的版本:
<table:Column id="CompanyCode" minScreenWidth="Tablet" demandPopin="true"
customData:p13nData='\{"columnKey": "CompanyCode", "leadingProperty":"CompanyCode", "additionalProperty":"CompanyName","sortProperty": "CompanyCode", "filterProperty": "CompanyCode", "type":"numeric", "maxLength":"4"}'>
<Label text="Company Code" />
<table:template>
<Text text="{CompanyCode}" />
</table:template>
</table:Column>
在 p13nData object
裏可以指定下列屬性:
- columnKey:用於保存、檢索或應用列個性化的唯一鍵。
- leadingProperty:當列可見時,從後端系統檢索此處指定的 OData 屬性的數據。 必須使用 OData 模型屬性名稱。
- additionalProperty:如果列可見,則必須請求屬性。 必須使用 OData 模型屬性名稱。 可以在此處將多個屬性名稱指定爲逗號分隔值 (CSV)。
- sortProperty:根據指定的列對錶進行排序。 必須使用 OData 模型屬性名稱。 此屬性類似於網格表的 sap.ui.table.Column 的 sortProperty,只有在後者不支持此功能時才必須使用。
- filterProperty:使用已定義的條件過濾表。 必須使用 OData 模型屬性名稱。 此屬性類似於網格表的 sap.ui.table.Column 的 filterProperty,只有在後者不支持此功能時才必須使用。
- isGroupable:自動在“視圖設置”對話框的“組”面板中顯示一個字段; 否則,只有在表(行)綁定後,字段纔可能變得可見。 只有 AnalyticalTable 類型需要此屬性。如果字段可排序、可篩選和維度,則 SmartTable 會自動將此屬性設置爲 true。
- type:確定控件的類型; 它的值可以是日期、時間、布爾值、數字、字符串日期、字符串或未定義。 控件將根據類型進行調整。 stringdate 用於導出帶有 IsCalendarDate 註釋的字段。
- maxLength:用於限制輸入字段中的條目數的數值
- precision:精度的數值
- scale:比例的數值
- nullable:定義一個字段是否可以沒有值(然後與空值過濾相關)。 控件的使用者可以使用字符串值 false 來指示該字段不可爲空。 默認值可以爲空。