SAPui5-筛选聚合绑定

2020-09-10 21:58发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们:

我有以下通话结果:

我希望过滤"类型"(约会类型)

我有此代码:

 this.getView()。byId(" teamcalendar")。bindElement("/img/CalenderSet('ME')?expand = calendarItemSet/AppointmentSet"); var aFilter = [new sap.ui.model.Filter(" AppointmentSet /Type",sap.ui.model.FilterOperator.EQ,"Type01")];
 var oCalendar = this.getView()。byId(" teamcalendar");
 var oBinding = oCalendar.getBinding(" rows");
 oBinding.filter(aFilter); 

但是过滤不起作用,我收到错误消息:

" Linksseitiger Ausdruck des Elementzugriffsoperators mit falscheKardinalität(zu viele nichtzulässig)"

SEGW:

有人可以说出什么毛病吗?

KR

Vincent

clipboard01.jpg (39.4 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们:

我有以下通话结果:

我希望过滤"类型"(约会类型)

我有此代码:

 this.getView()。byId(" teamcalendar")。bindElement("/img/CalenderSet('ME')?expand = calendarItemSet/AppointmentSet"); var aFilter = [new sap.ui.model.Filter(" AppointmentSet /Type",sap.ui.model.FilterOperator.EQ,"Type01")];
 var oCalendar = this.getView()。byId(" teamcalendar");
 var oBinding = oCalendar.getBinding(" rows");
 oBinding.filter(aFilter); 

但是过滤不起作用,我收到错误消息:

" Linksseitiger Ausdruck des Elementzugriffsoperators mit falscheKardinalität(zu viele nichtzulässig)"

SEGW:

有人可以说出什么毛病吗?

KR

Vincent

clipboard01.jpg (39.4 kB)
付费偷看设置
发送
4条回答
昵称总是被占用
1楼-- · 2020-09-10 22:44

嗨,

好像您没有在类型选择事件中编写代码。

在选择"类型"时尝试以下代码:

var sValue = oEvent.getParameter(" value");

var oFilter = new sap.ui.model.Filter(" Type",sap.ui.model.FilterOperator.Contains,sValue);

var oBinding = oEvent.getSource()。getBinding(" rows");

oBinding.filter([oFilter]);

最好的问候

Rajvardhan Thakare :)

骆驼绵羊
2楼-- · 2020-09-10 22:48

嗨,

请问您可以发布meta.xml文件吗?

预先感谢

面料

宇峰Kouji
3楼-- · 2020-09-10 22:47

嗨,

我用另一种方式做到了:

在我的根实体中,设置团队和约会类型(如过滤器)

 bindView:function(){
 var sObjectPath = this.getView()。getModel()。createKey(" CalenderSet",{
 Mycentralperson:此用户,
 团队成员:this.teamMembers,->" | member1 | member2 | member3"
 约会类型:this.templateAppointmentTypes" | ILLNES | TELEWORK | LEAVE"
 });
 this.getView()。bindElement("/" + sObjectPath);
 },

在根实体中," Teammembers"和" Appointmenttypes"是键,因此我可以在底层实体中获取值。

所以在SEGW中,使用APPOINTMENTSET_GET_ENTITYSET方法:

数据lt_appointment类型zhrs_calender_appointment_tt。
     DATA lv_employee_id TYPE人。

     DATA(lv_centralperson)= it_key_tab [name ='Centralperson']-值。
     DATA(lv_appointmenttypes)= it_key_tab [name ='Appointmenttypes']-值。
     DATA(lv_teammembers)= it_key_tab [name ='Teammembers']-值。


     lv_employee_id = lv_centralperson。


     SPLIT lv_appointmenttypes AT'|' 插入表数据(lt_appointmenttypes)。
     在table_line为INITIAL的地方删除lt_appointmenttypes。

     将lt_appointmenttypes放入LOOP AT IN DATA(ls_appointment_type)。
       IF ls_appointment_type EQ'离开'。
         lt_appointment = zcl_hr_fiori_team_calendar => get_leave(lv_employee_id)。
       万一。
       IF ls_appointment_type EQ'ILLNES'。
         lt_appointment = zcl_hr_fiori_team_calendar => get_illnes(lv_employee_id)。
       万一。
       IF ls_appointment_type EQ'TELEWORK'。
         lt_appointment = zcl_hr_fiori_team_calendar => get_telework(lv_employee_id)。
       万一。
       如果为ls_appointment_type EQ'EDUCATION'。
         lt_appointment = zcl_hr_fiori_team_calendar => get_education(lv_employee_id)。
       万一。
       IF ls_appointment_type EQ'TRAVEL'。
         lt_appointment = zcl_hr_fiori_team_calendar => get_travel(lv_employee_id)。
       万一。
       IF ls_appointment_type EQ'BICYCLE'。
         lt_appointment = zcl_hr_fiori_team_calendar => get_bicycleday(lv_employee_id)。
       万一。
       将lt_appointment添加到et_entityset的行。
     ENDLOOP。

KR

Vincent

樱桃小丸子0093
4楼-- · 2020-09-10 22:36

嗨Vincent,

您终于解决了这个问题吗? 我现在正面临同样的错误,我想知道哪里出了问题。 显然,我的SEGW OData模型有用。

干杯t。

一周热门 更多>