2017-12-07 10 views
1

名前付きモデルでスマートテーブルを使用したいと思います。名前付きモデルを使用すると、データは表示されません。 1つの可能性は、カスタムリストとカスタム列を使用することです。しかし、カスタムリストを使用するとすぐにデータが表示されますが、定義されたカスタム列は[フィルタ、グループ、ソート]タブから削除されます。 P13Nダイアログでは、列の位置を再生することができます(すべてのフィールドのカスタム列を定義すると、P13Nダイアログから「フィルタ、グループ、ソート」タブが削除されます)。SAPUI5:スマートテーブルにカスタム列を追加すると、フィルタタブに表示されません。

何らかの理由により、名前付きモデルを使用する必要があります。次に、私はカスタムリスト項目と列を使用する必要があります。ここで問題となるのは、P13Nダイアログのタブのフィルタリング、並べ替え、グループ化でこれらのフィールドや列を保持する方法です。

<smartTable:SmartTable id="__smartTableMlst" entitySet="ProjectHeaderMstSet" tableBindingPath="TableMlstJsonModel>/ProjectHeaderMstSet" 
header="{i18n>tableMlstTitle}" showRowCount="true" tableType="Responsive" showFullScreenButton="false" useVariantManagement="false" 
enableAutoBinding="true" ignoredFields="ProjectDefinition,Method,Refnumber" useExportToExcel="false" 
initiallyVisibleFields="MilestoneNumber,Description,OffsetMilestoneDate,OffsetMilestoneDateUnit"> 
<smartTable:customToolbar> 
    <m:OverflowToolbar design="Transparent"> 
     <m:ToolbarSpacer/> 
     <m:Button type="Transparent" press="onRefreshMlstBtnPress" icon="sap-icon://refresh" tooltip="{i18n>refreshBtnTooltip}"/> 
     <m:Button type="Transparent" press="onAddMlstBtnPress" icon="sap-icon://add" tooltip="{i18n>createBtnTooltip}" 
      enabled="{objectView>/tableMlstBtnAddEnabledFinal}"/> 
     <m:Button type="Transparent" press="onDeleteMlstBtnPress" icon="sap-icon://delete" tooltip="{i18n>deleteBtnTooltip}" 
      enabled="{objectView>/tableMlstBtnDelEnabledFinal}"/> 
    </m:OverflowToolbar> 
</smartTable:customToolbar> 
<m:Table id="tableMlst" mode="MultiSelect" busy="{objectView>/tableMlstBusy}"> 
    <m:columns> 
     <m:Column> 
      <m:customData> 
       <core:CustomData key="p13nData" value='\{"columnKey": "MilestoneNumber", "leadingProperty": "MilestoneNumber"}'/> 
      </m:customData> 
      <m:Text text="{/#ProjectHeaderMst/MilestoneNumber/@sap:label}"/> 
     </m:Column> 
    </m:columns> 
    <m:items> 
     <m:ColumnListItem type="Navigation" press="onPress"> 
      <m:cells> 
       <m:Text text="{path: 'TableMlstJsonModel>MilestoneNumber', formatter: '.formatter.intNumber'}"/> 
       <m:Text text="{TableMlstJsonModel>Description}"/> 
       <m:Text text="{TableMlstJsonModel>OffsetMilestoneDate}"/> 
       <m:Text text="{TableMlstJsonModel>OffsetMilestoneDateUnit}"/> 
       <m:Text text="{TableMlstJsonModel>Activity}"/> 
       <m:Text text="{TableMlstJsonModel>ActivityName}"/> 
       <m:Text text="{TableMlstJsonModel>Aedat}"/> 
       <m:Text text="{TableMlstJsonModel>Aenam}"/> 
       <m:Text text="{TableMlstJsonModel>Erdat}"/> 
       <m:Text text="{TableMlstJsonModel>Ernam}"/> 
       <m:Text text="{TableMlstJsonModel>MlstSmlnr}"/> 
       <m:Text text="{TableMlstJsonModel>Network}"/> 
       <m:Text text="{TableMlstJsonModel>NetworkName}"/> 
      </m:cells> 
     </m:ColumnListItem> 
    </m:items> 
</m:Table> 
</smartTable:SmartTable> 

私はスマートテーブルで注釈ファイルの使用について知っていますが、名前付きJSONモデルで注釈ファイルを使用することは可能ですか?次の画像MilestoneNumberがフィルタリストからどのように削除されたかを確認できます。

You can see how the MilestoneNumber has been removed from the filter list

答えて

1

あなただけのカスタム列にfilterPropertysortPropertyを渡す必要があります。列の開始位置またはその視認性で再生することさえできます。

これらは、あなたの答え

の重要なポイントである私はあなたのコードの2列のためにそれらを追加しました。列を定義することに注意してください。プロパティーinitiallyVisibleFieldsは無視されます。そして、あなたはこのようなColumnの可視性を渡す必要があります。

<smartTable:SmartTable id="__smartTableMlst" entitySet="ProjectHeaderMstSet" tableBindingPath="TableMlstJsonModel>/ProjectHeaderMstSet" 
header="{i18n>tableMlstTitle}" showRowCount="true" tableType="Responsive" showFullScreenButton="false" useVariantManagement="false" 
enableAutoBinding="true" ignoredFields="ProjectDefinition,Method,Refnumber" useExportToExcel="false"> 
<smartTable:customToolbar> 
<m:OverflowToolbar design="Transparent"> 
<m:ToolbarSpacer/> 
<m:Button type="Transparent" press="onRefreshMlstBtnPress" icon="sap-icon://refresh" tooltip="{i18n>refreshBtnTooltip}"/> 
<m:Button type="Transparent" press="onAddMlstBtnPress" icon="sap-icon://add" tooltip="{i18n>createBtnTooltip}" 
enabled="{objectView>/tableMlstBtnAddEnabledFinal}"/> 
<m:Button type="Transparent" press="onDeleteMlstBtnPress" icon="sap-icon://delete" tooltip="{i18n>deleteBtnTooltip}" 
enabled="{objectView>/tableMlstBtnDelEnabledFinal}"/> 
</m:OverflowToolbar> 
</smartTable:customToolbar> 
<m:Table id="tableMlst" mode="MultiSelect" busy="{objectView>/tableMlstBusy}"> 
<m:columns> 
<m:Column visible="true"> 
<m:customData > 
<core:CustomData key="p13nData" value='\{"sortProperty": "MilestoneNumber", "filterProperty": "MilestoneNumber", "columnKey": "MilestoneNumber", "leadingProperty": "MilestoneNumber", "columnIndex":"0"}'/> 
</m:customData> 
<m:Text text="{/#ProjectHeaderMst/MilestoneNumber/@sap:label}"/> 
</m:Column> 
<m:Column visible="false"> 
<m:customData> 
<core:CustomData key="p13nData" value='\{"sortProperty": "Description", "filterProperty": "Description", "columnKey": "Description", "leadingProperty": "Description", "columnIndex":"1"}'/> 
</m:customData> 
<m:Text text="{/#ProjectHeaderMst/Description/@sap:label}"/> 
</m:Column> 
</m:columns> 
<m:items> 
<m:ColumnListItem type="Navigation" press="onPress"> 
<m:cells> 
<m:Text text="{path: 'TableMlstJsonModel>MilestoneNumber', formatter: '.formatter.intNumber'}"/> 
<m:Text text="{TableMlstJsonModel>Description}"/> 
<m:Text text="{TableMlstJsonModel>OffsetMilestoneDate}"/> 
<m:Text text="{TableMlstJsonModel>OffsetMilestoneDateUnit}"/> 
<m:Text text="{TableMlstJsonModel>Activity}"/> 
<m:Text text="{TableMlstJsonModel>ActivityName}"/> 
<m:Text text="{TableMlstJsonModel>Aedat}"/> 
<m:Text text="{TableMlstJsonModel>Aenam}"/> 
<m:Text text="{TableMlstJsonModel>Erdat}"/> 
<m:Text text="{TableMlstJsonModel>Ernam}"/> 
<m:Text text="{TableMlstJsonModel>MlstSmlnr}"/> 
<m:Text text="{TableMlstJsonModel>Network}"/> 
<m:Text text="{TableMlstJsonModel>NetworkName}"/> 
</m:cells> 
</m:ColumnListItem> 
</m:items> 
</m:Table> 
</smartTable:SmartTable> 

楽しい

を持っています。ここでは

は、コード変更されました

関連する問題