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。