WDA学习(4):Supply Function,根据航班信息自动带出子节点bookings信息

1.4 Display Bookings of Selected Flight

       本实例显示被筛选出Flight对应bookings信息。可以在1.3Navigation这个示例上修改。

1.创建Bookings上下文子节点,保存对应航班的bookings信息。

 

设置节点名;

设置Dictionary structure,对应节点数据库字典结构;

设置Cardinality;

设置Supply Function;

 

 选择Bookings节点下子节点显示栏位;

 

可以看到自动创建GET_BOOKINGS方法,类型为Supply Function。

 

 生成Context上下文:

 

2.重写GET_BOOKINGS方法,实现通过父节点airline id等信息获取对应bookings信息,当Method:‘EXECUTE_BAPI_FLIGHT_GETLIST’执行后,就会调用GET_BOOKINGS方法。

代码示例:

method GET_BOOKINGS .
"* implicit constant definition for context node Bookings
*  types:
*    Element_bookings type SBOOK,
*    Elements_bookings type
*       standard table of Element_bookings
*       with default key. "#EC NEEDED
 "IF_COMPONENTCONTROLLER对应COMPONENTCONTROLLER组件控制器接口,一些静态变量定义
 "定义sbook内表,存储查询到数据
 data:itab_bookings   type IF_COMPONENTCONTROLLER=>Elements_Bookings,
      stru_bookings   like line of itab_bookings,
      stru_flightlist type if_componentcontroller=>Element_FLIGHT_LIST.
  "输入参数parent_element,这里是FLIGHT_LIST节点对应element
  parent_element->get_static_attributes(
    importing
      static_attributes = stru_flightlist
    ).
  "通过调用类ZCL_WDABAP_FLIGHT_MODEL的静态方法GET_BOOKINGS获取bookings信息
  itab_bookings = ZCL_WDABAP_FLIGHT_MODEL=>GET_BOOKINGS(
    CARRID   = stru_flightList-airlineid
    CONNID   = stru_flightList-connectid
    FLDATE   = stru_flightList-flightdate
    ).
  "输入参数NODE,表示当前BOOKINGS上下文节点
  node->bind_table( itab_bookings ).
endmethod.

3.更新COMPONENTCONTROLLER(组件控制器)的上下文和VIEW视图控制器上下文之间映射。

 

 

4.Layout页签,创建Table视图控件,绑定Bookings上下文节点,显示对应Bookings信息。

创建Table视图控件;

 

设置Table控件dataSource属性,绑定Bookings节点;

设置Table控件下Caption的text属性为bookings info;

设置Table控件width属性,100%;

 

5.激活整个Web Dynpro Compoment,运行Web Dynpro Application:Z_TEST_WDA2。

 

猜你喜欢

转载自www.cnblogs.com/tangToms/p/12796591.html