本文主要是介绍WDA基础 视图间的跳转,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这个例子是这样的,在第一个VIEW里面选一个航线代码查询,在第二个VIEW页面显示出明细来,效果如下:
VIEW1:
VIEW2:
WDA中视图跳转是通过ACTION 去触发的,和J2EE中的Struts2框架类似,是通过Action去触发的,不只是跳转视图,大部分功能都是通过Action去触发的
程序框架是这样的,右键点击去创建
给导向里面添加目标视图,在窗口->视图->右击创建导航链接
定义好了导航之后,在V_MAIN中绘制如下LAYOUT,将标签拖进去就可以,拖拽时鼠标箭头一定要放在绿色的虚线框内才可以,如果拖拽不成功右击ROOTUIELEMENTCONTAINER也可以
然后选中查询按钮,为查询按钮设置ACTION,中有双击进去设置的action编写逻辑
设置一个全局的内表
在V_MAIN的CONTEXT里面声明一个表类型的node 和一个 Attribute(记录屏幕输入的CARRID)
将P_CARRID绑定到INPUT_FIELD上面,SuggestValues打钩
接下来设置V_MAIN,现在CONTEXT声明一个表类型的NODE,将他与全局的内表关联
V_MAIN里面LAYOUT放置一个表控件,将声明的内表与表控件绑定(右击TABILE控件-> Create Binding),设置back按钮用于返回(设置ACTION,自动会生成代码)
前期工作都做好了,接下来该添加代码了,在查询按钮的ACTION里面添加,先读取INPUT的value
整体代码调整
METHOD ONACTIONSEARCH .DATA LO_EL_CONTEXT TYPE REF TO IF_WD_CONTEXT_ELEMENT.DATA LS_CONTEXT TYPE WD_THIS->ELEMENT_CONTEXT.DATA LV_P_CARRID TYPE WD_THIS->ELEMENT_CONTEXT-P_CARRID.* get element via lead selectionLO_EL_CONTEXT = WD_CONTEXT->GET_ELEMENT( ).
* @TODO handle not set lead selectionIF LO_EL_CONTEXT IS INITIAL.ENDIF.* get single attributeLO_EL_CONTEXT->GET_ATTRIBUTE(EXPORTINGNAME = `P_CARRID`IMPORTINGVALUE = LV_P_CARRID ).DATA LO_ND_GT_VIEW1 TYPE REF TO IF_WD_CONTEXT_NODE.DATA LT_GT_VIEW1 TYPE WD_THIS->ELEMENTS_GT_VIEW1.* navigate from <CONTEXT> to <GT_VIEW1> via lead selectionLO_ND_GT_VIEW1 = WD_CONTEXT->GET_CHILD_NODE( NAME = WD_THIS->WDCTX_GT_VIEW1 ).SELECT *FROM SPFLIINTO CORRESPONDING FIELDS OF TABLE LT_GT_VIEW1[]WHERE CARRID = LV_P_CARRID.*LO_ND_GT_VIEW1->BIND_TABLE( NEW_ITEMS = LT_GT_VIEW1 SET_INITIAL_ELEMENTS = ABAP_TRUE ).WD_THIS->FIRE_TO_VMAIN_PLG().
ENDMETHOD.
这篇关于WDA基础 视图间的跳转的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!