私はUI5を使用してViewSettingsDialogコントロールを使用してテーブルとソート/グループ/フィルタをレンダリングしています。 私のODataサービスには、「プロジェクト」エンティティセットがあり、それぞれに顧客が関連付けられています(1人の顧客が複数のプロジェクトを持つことができます)。 一方、私は "顧客"エンティティセットを持っています。それは、1000 +エントリの顧客を示していますが、すべてのプロジェクトが進行中ではないので、ViewSettingsFilterItemのアイテム集約には使用できません。SAPUI5集約バインディングで重複を削除する
顧客がViewSettingsDialogフィルタを使用できるようにするには、ViewSettingsFilterItemのアイテムaggragetionの「プロジェクト」エンティティセットを渡します。しかし、複数のプロジェクトが継続している顧客は、複数回出現します。
複数のプロジェクトを持つ顧客に一度だけ表示されるようにバインドを制限するにはどうすればよいですか?ノースウィンドを使用して
チェックこのスニペット: https://jsbin.com/sakurisoxo/edit?html,output
あなたがフィルターに行けば、あなたは彼らが
は、[コード]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>SAPUI5</title>
<script src="https://sapui5.hana.ondemand.com/resources/sap-ui-core.js"
id="sap-ui-bootstrap"
data-sap-ui-theme="sap_belize"
data-sap-ui-libs="sap.m"
data-sap-ui-bindingSyntax="complex"
data-sap-ui-compatVersion="edge"
data-sap-ui-preload="async"></script>
<!-- use "sync" or change the code below if you have issues -->
<!-- XMLView -->
<script id="myXmlView" type="ui5/xmlview">
<mvc:View
controllerName="MyController"
xmlns="sap.m"
xmlns:core="sap.ui.core"
xmlns:mvc="sap.ui.core.mvc">
<Table
id="myTable"
growing="true"
growingThreshold="25"
growingScrollToLoad="true"
busyIndicatorDelay="0"
items="{/Orders}">
<headerToolbar>
<Toolbar>
<Title text="Orders of ALFKI"/>
<ToolbarSpacer/>
<Button text="Click here for filters" press="onDialogOpen"/>
</Toolbar>
</headerToolbar>
<columns>
<Column>
<Text text="OrderID"/>
</Column>
<Column>
<Text text="CustomerID"/>
</Column>
</columns>
<items>
<ColumnListItem>
<cells>
<Text text="{OrderID}"/>
<Text text="{CustomerID}"/>
</cells>
</ColumnListItem>
</items>
</Table>
</mvc:View>
</script>
<!-- XML Fragment -->
<script id="myXMLFragment" type="ui5/fragment">
<core:FragmentDefinition
xmlns="sap.m"
xmlns:core="sap.ui.core">
<ViewSettingsDialog
confirm="onTableSettingsConfirm">
<sortItems>
<ViewSettingsItem text="OrderID" key="OrderID" selected="true" />
</sortItems>
<filterItems>
<ViewSettingsFilterItem
text="CustomerID"
key="CustomerID"
multiSelect="true"
items="{path: '/Orders', sorter: [{path: 'CustomerID', descending: false}]}">
<items>
<ViewSettingsItem text="{CustomerID}" key="{CustomerID}" />
</items>
</ViewSettingsFilterItem>
</filterItems>
</ViewSettingsDialog>
</core:FragmentDefinition>
</script>
<script>
sap.ui.getCore().attachInit(function() {
"use strict";
//### Controller ###
sap.ui.define([
"sap/ui/core/mvc/Controller",
"sap/ui/model/odata/v2/ODataModel"
], function (Controller, ODataModel) {
"use strict";
return Controller.extend("MyController", {
_oTableSettingsDialog: null,
onInit : function() {
this.getView().setModel(
new ODataModel("https://cors-anywhere.herokuapp.com/services.odata.org/V2/Northwind/Northwind.svc/")
);
},
onDialogOpen: function(){
if (!this._oTableSettingsDialog) {
this._oTableSettingsDialog = sap.ui.xmlfragment({
fragmentContent : jQuery("#myXMLFragment").html()
});
this._oTableSettingsDialog.setModel(this.getView().getModel());
}
this._oTableSettingsDialog.open();
}
});
});
//### THE APP: place the XMLView somewhere into DOM ###
sap.ui.xmlview({
viewContent : jQuery("#myXmlView").html()
}).placeAt("content");
});
</script>
</head>
<body class="sapUiBody">
<div id="content"></div>
</body>
</html>
事前
にありがとうを繰り返しているかを確認することができます
お客様IDをプロジェクト名でグループ化できないのはなぜですか?この方法では、プロジェクトごとに別々のセクションを持つことができ、プロジェクトごとに顧客IDが表示されます。または顧客IDでグループ化することもできます。これが役に立ったら教えてください。 https://sapui5.hana.ondemand.com/#docs/guide/c4b2a32bb72f483faa173e890e48d812.html –
こんにちはRahul、私は(スニペットではなく)私のアプリでgoupingを実装しますが、とにかく私はフィルタ機能を実装する必要があります。 多くのエントリ(7列) を持つ未処理の応答テーブルをレンダリングし、**並べ替えとグループ化とフィルタリング**の列の値を提供する必要があります そのため、私はViewSettingsDialogコントロールhttps://sapui5.hana.ondemand.comを使用しています/explored.html#/sample/sap.m.sample.TableViewSettingsDialog/preview グループ化と並べ替えはスムーズに機能していますが、フィルタに記載されている問題があります。 –
こんにちはRafael、私はあなたが[sap.ui.table.Table](https://openui5.hana.ondemand.com/explored.html#/entity/sap.ui.table 。テーブル/サンプル)。後者の制御は、膨大な量のデータを処理するためのものではなく、7列(特にIE上)のパフォーマンスに大きな問題があります。私は痛みを伴って経験によってそれを学ばなければならなかった。 – boghyon