Hi all
I am trying to use [SmartFilterBar][1] as follows:
<VBox fitContainer="true">
<smartFilterBar:SmartFilterBar id="JobProfileOverviewFilter" entitySet="ProfileSet">
<smartFilterBar:controlConfiguration>
<smartFilterBar:ControlConfiguration key="Item"></smartFilterBar:ControlConfiguration>
</smartFilterBar:controlConfiguration>
<smartFilterBar:layoutData>
<FlexItemData shrinkFactor="0"/>
</smartFilterBar:layoutData>
</smartFilterBar:SmartFilterBar>
<smartTable:SmartTable id="JobProfileOverview" entitySet="ProfileSet" tableType="ResponsiveTable" useTablePersonalisation="true"
showRowCount="true" enableAutoBinding="true" smartFilterId="JobProfileOverviewFilter" header="Business profiles"
class="sapUiResponsiveContentPadding" app:useSmartToggle="true">
<smartTable:customToolbar>
<OverflowToolbar design="Transparent">
<ToolbarSpacer/>
<OverflowToolbarButton icon="sap-icon://order-status" tooltip="Order status" text="Order status" press="onStatus"/>
</OverflowToolbar>
</smartTable:customToolbar>
<!-- layout data used to make the table growing but the filter bar fixed -->
<smartTable:layoutData>
<FlexItemData growFactor="1" baseSize="0%"/>
</smartTable:layoutData>
<Table mode="MultiSelect"></Table>
</smartTable:SmartTable>
</VBox>
The problem is, the filter does not appear on the screen.

the cutout from the metadata:
<EntityType Name="Profile" sap:content-version="1">
<Key>
<PropertyRef Name="ItemId"/>
</Key>
<Property Name="Item" Type="Edm.String" Nullable="false" MaxLength="300" sap:unicode="false" sap:label="Role" sap:creatable="false"
sap:updatable="false" sap:sortable="false" sap:filterable="false"/>
<Property Name="Connector" Type="Edm.String" Nullable="false" MaxLength="32" sap:unicode="false" sap:label="System" sap:creatable="false"
sap:updatable="false" sap:sortable="false" sap:filterable="false"/>
<Property Name="Descn" Type="Edm.String" Nullable="false" sap:unicode="false" sap:label="Description" sap:creatable="false"
sap:updatable="false" sap:sortable="false" sap:filterable="false"/>
<Property Name="ValidFrom" Type="Edm.DateTime" Nullable="false" Precision="7" sap:unicode="false" sap:label="Valid From"
sap:creatable="false" sap:updatable="false" sap:sortable="false" sap:filterable="false"/>
<Property Name="ValidTo" Type="Edm.DateTime" Nullable="false" Precision="7" sap:unicode="false" sap:label="Valid To" sap:creatable="false"
sap:updatable="false" sap:sortable="false" sap:filterable="false"/>
<Property Name="Status" Type="Edm.String" Nullable="false" MaxLength="8" sap:unicode="false" sap:label="Expiration Status"
sap:creatable="false" sap:updatable="false" sap:sortable="false" sap:filterable="false"/>
<Property Name="Selected" Type="Edm.String" Nullable="false" MaxLength="1" sap:unicode="false" sap:label="Boolean" sap:creatable="false"
sap:updatable="false" sap:sortable="false" sap:filterable="false"/>
<Property Name="ItemId" Type="Edm.String" Nullable="false" MaxLength="50" sap:unicode="false" sap:label="Object ID" sap:creatable="false"
sap:updatable="false" sap:sortable="false" sap:filterable="false"/>
<Property Name="ItemType" Type="Edm.String" Nullable="false" MaxLength="6" sap:unicode="false" sap:label="Item Type" sap:creatable="false"
sap:updatable="false" sap:sortable="false" sap:filterable="false"/>
</EntityType>
<EntitySet Name="ProfileSet" EntityType="YGAC_ACCESS_MANAGER_SRV.Profile" sap:creatable="false" sap:updatable="false" sap:deletable="false"
sap:pageable="false" sap:content-version="1"/></EntityContainer>
What am I doing wrong?
Thanks
Request clarification before answering.
Hi bifunctor,
Have you added SelectionFields annotation to "ProfileSet"?
If not, please see below document.
https://sapui5.hana.ondemand.com/#/topic/609c39a7498541559dbef503c1ffd194.html
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Try like this:
DATA(target) = vocab_anno_model->create_annotations_target( 'viola' ).
target->set_namespace_qualifier( 'ZTEST_SRV' ).
DATA(annotation) = target->create_annotation( iv_term = 'UI.SelectionFields' ).
DATA(collection) = annotation->create_collection( ).
DATA(simple_value) = collection->create_simple_value( ).
simple_value->set_property_path( 'key1' ).
simple_value = collection->create_simple_value( ).
simple_value->set_property_path( 'value' ).
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You have to annotate the desired properties with sap:filterable="true".
<EntityType Name="Profile" sap:content-version="1">
<Key>
<PropertyRef Name="ItemId"/>
</Key>
<Property Name="Item" Type="Edm.String" Nullable="false" MaxLength="300" sap:unicode="false" sap:label="Role" sap:creatable="false"
sap:updatable="false" sap:sortable="false" sap:filterable="true"/>
...
</EntityType>
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
How to create it programmatically in the ..MPC_EXT class?
I have tried:
lo_annotation = lo_ann_target->create_annotation( iv_term = 'com.sap.vocabularies.UI.v1.SelectionFields' ).
lo_collection = lo_annotation->create_collection( ).
lo_property = lo_record->create_property( 'Value' ).
lo_simp_value = lo_property->create_simple_value( ).
lo_simp_value->set_path( 'Status' ).as result I have got:
Annotation Term="com.sap.vocabularies.UI.v1.SelectionFields">
<Collection/>
</Annotation>The field STATUS does not appear anywhere.
What am I doing wrong?
Thanks
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
| User | Count |
|---|---|
| 5 | |
| 5 | |
| 4 | |
| 3 | |
| 2 | |
| 2 | |
| 2 | |
| 2 | |
| 2 | |
| 2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.