建议在sapui5中对我的表进行分组,过滤和排序

问题描述 投票:0回答:1

我正在尝试在我带来一些数据的表上实现分组,过滤和排序。

我已经能够执行分组和排序而没有问题,但是我无法正确过滤。

这将是我用于分组,过滤和排序的片段代码:

<core:FragmentDefinition xmlns:core="sap.ui.core" xmlns="sap.m">
  <ViewSettingsDialog confirm="onConfirm">
    <sortItems>
      <ViewSettingsItem selected="true" key="Xao" text="Tipo"/>
      <ViewSettingsItem key="Xoccupant" text="Ocupante"/>
    </sortItems>
    <groupItems>
      <ViewSettingsItem key="Xao" text="Tipo"/>
    </groupItems>
    <filterItems>
      <ViewSettingsFilterItem key="Xao" text="Tipo" multiSelect="false" items="{/d/results/Xao}">
        <items>
        <ViewSettingsItem key="{Xao}" text="{Xao}"/>    
        </items>
      </ViewSettingsFilterItem>
    </filterItems>
  </ViewSettingsDialog>
</core:FragmentDefinition>

在控制器方面,这将是它所占用的代码:

onPress: function () {
this._Dialog = sap.ui.xmlfragment("LogonPage.LogonPage.fragments.Dialog", this);
this._Dialog.open();
},

onClose: function () {
this._Dialog.close();
},

onTableSettings: function (oEvent) {
// Abra el cuadro de diálogo Configuración de tabla 
this._oDialog = sap.ui.xmlfragment("LogonPage.LogonPage.fragments.SettingsDialog", this);
this._oDialog.open();
},

onConfirm: function (oEvent) {
 var oView = this.getView();
 var oTable = oView.byId("table0");
 var mParams = oEvent.getParameters();
 var oBinding = oTable.getBinding("items");
 // apply grouping 
 var aSorters = [];
 if (mParams.groupItem) {
 var sPath = mParams.groupItem.getKey();
 var bDescending = mParams.groupDescending;
 var vGroup = function (oContext) {
 var name = oContext.getProperty("Xao");
  return {
  key: name,
  text: name
 }; 
};
aSorters.push(new sap.ui.model.Sorter(sPath, bDescending, vGroup));
}
// apply sorter 
 var sPath = mParams.sortItem.getKey();
 var bDescending = mParams.sortDescending;
 aSorters.push(new sap.ui.model.Sorter(sPath, bDescending));
 oBinding.sort(aSorters);

// apply filters 
 var aFilters = [];
 var sQuery = oEvent.getParameter("query");
 if (sQuery) {
 aFilters.push(new Filter("Xao", FilterOperator.Contains, sQuery));
 }
 oBinding.filter(aFilters);
},

这是我表的视图,我要过滤的是包含表Xao部分的所有内容。

<Table inset="false" items="{/d/results}" id="table0" width="auto">
 <items>
  <ColumnListItem type="Active" id="item1">
   <cells>
   <Text text="{Xao}" id="text7"/>
   <Text text="{Xoccupant}" id="text8"/>
   <Text text="{ path: 'Validfrom', type: 'sap.ui.model.type.Date', formatOptions: 
    { source: { 
      pattern: 'yyyyMMdd' }, 
      pattern: 'dd/MM/yyyy' } }" id="text9"/>
   <Text text="{ path: 'Validto', type: 'sap.ui.model.type.Date', formatOptions: 
   { source: { 
     pattern: 'yyyyMMdd' }, pattern: 'dd/MM/yyyy' } }" id="text10"/>

  </cells>
 </ColumnListItem>
</items>

<columns>
 <Column id="column0">
  <header>
   <Label text="Tipo" id="label0"/>
  </header>
 </Column>
 <Column id="column1">
  <header>
   <Label text="Ocupante" id="label1"/>
  </header>
 </Column>
 <Column id="column2">
  <header>
   <Label text="Fecha de Apartado" id="label2"/>
  </header>
 </Column>
 <Column id="column3">
  <header>
   <Label text="Fecha de Finalización" id="label3"/>
  </header>
 </Column>
</columns>
</Table>

这里是视图的代码,在这里我可以对表进行分组,过滤和排序

<headerToolbar>
 <Toolbar id="toolbar3">
  <Title text="Puestos de Trabajo"/>
 <ToolbarSpacer/>
 <Button press="onTableSettings" icon="sap-icon://drop-down-list" tooltip="Settings"/>
 </Toolbar>
</headerToolbar>

是否有任何想法或建议可以正确过滤我的桌子?

sapui5 sap sap-web-ide
1个回答
0
投票

检查控制器中的onConfirm功能-过滤代码看起来更像是搜索字段的代码。您必须处理来自事件的过滤器:https://sapui5.hana.ondemand.com/#/api/sap.m.ViewSettingsDialog%23events/confirm

对您来说,此字段仅包含Xao字段的过滤器,但我的建议是在函数中设置断点并分析oEvent.getParameters()结构。

© www.soinside.com 2019 - 2024. All rights reserved.