2017-12-07 3 views
1

명명 된 모델에 스마트 테이블을 사용하고 싶습니다. 명명 된 모델을 사용하면 데이터가 표시되지 않습니다. 한 가지 방법은 사용자 지정 목록 및 사용자 지정 열을 사용하는 것입니다. 그러나 사용자 지정 목록을 사용하는 즉시 데이터를 표시하지만 "필터, 그룹 및 정렬"탭에서 정의 된 사용자 지정 열을 제거합니다. P13N 대화 상자에서 열의 위치 만 재생하면됩니다 (모든 필드의 사용자 정의 열을 정의하면 P13N 대화 상자에서 "필터, 그룹 및 정렬"탭이 제거됨).SAPUI5 : 스마트 테이블에 사용자 지정 열을 추가 할 때 필터 탭에 표시되지 않습니다.

몇 가지 이유로 명명 된 모델을 사용해야합니다. 그런 다음 사용자 지정 목록 항목 및 열을 사용해야합니다. 이제 문제는 P13N 대화 상자에서 탭 필터링, 정렬 및 그룹화에서 이러한 필드 또는 열을 유지할 수있는 방법입니다. 이름 JSON 모델 주석 파일을 사용

<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> 

나는 스마트 테이블의 주석 파일의 사용에 대해 알고 있지만, 가능할까요? 다음 그림에서 MilestoneNumber가 필터 목록에서 제거 된 방법을 볼 수 있습니다.

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

답변

1

당신은 사용자 정의 열에 filterPropertysortProperty을 통과해야합니다. 기둥의 시작 위치 또는 표시 여부로도 재생할 수 있습니다.

당신의 대답

내가 코드의 두 개의 열이 그들을 추가의 핵심 포인트입니다. 열을 정의하면 initiallyVisibleFields 속성이 무시됩니다.

다음

수정 코드 :

<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> 

재미

이 그럼 당신은이 같은 Column의 가시성을 통과해야
관련 문제