图1.3.2.6-3
Button添加完毕,而Button生成的事件及其对应的处理器在“Actions”页签中进行,
后续会讲到。
到这里该练习所使用到的Layout元素就都介绍到了。
1.3.3 Attributes属性介绍
前面创建了WebDynpro程序后,Attributes页签中就会生成3个属性,并对应关联
的类型,如图1.3.3-1:
图1.3.3-1
说明:
a、WD_CONTEXT用于关联Main视图中的Context,使得数据在查询后可以显示到
Layout元素中;
b、WD_THIS用于MAIN视图内部的自关联,略;
c、WD_COMP_CONTROLLER用于管理WebDynpro程序中的控制器
COMPONENTCONTROLLER,这样才能将控制器中的Context在MAIN视图中可以引用。
1.3.4视图初始化数据处理
在前面两个页签中已经把Context(参数)和布局(Layout)元素完成了定义和绑定,
接下来就为视图进行数据初始化输出处理。操作步骤如下:
1、在视图的“Methods”页签中,找到“WDDOINIT”方法,双击进行代
码编写,如图1.3.4-1:
图1.3.4-1
2、代码如下:
method WDDOINIT . DATA:
lo_component TYPE REF TO if_wd_component, lo_context TYPE REF TO if_wd_context, lo_controller type REF TO if_wd_controller, lo_node type REF TO if_wd_context_node, lo_child TYPE REF TO if_wd_context_node,
lo_cmp_usage TYPE REF TO if_wd_component_usage, lv_guid TYPE bbp_guid,
lr_header_order TYPE BBP_PDS_SUSPO_HEADER_D, lr_items_order TYPE STANDARD TABLE OF BBP_PDS_SUSPO_ITEM_D,
ls_items_order TYPE BBP_PDS_SUSPO_ITEM_D, lr_partern TYPE TABLE OF BBP_PDS_PARTNER, node_order_h TYPE REF TO if_wd_context_node, node_order_i TYPE REF TO if_wd_context_node, node_order_p TYPE REF TO if_wd_context_node.
lo_component = wd_comp_controller->wd_get_api( ). lo_controller ?= lo_component.
CALL METHOD lo_controller->get_context RECEIVING
context = lo_context.
lo_node = lo_context->root_node.
lo_child = lo_node->get_child_node( 'Z_ORDER_GUID' ). CALL METHOD lo_child->GET_ATTRIBUTE EXPORTING
NAME = 'ORDER_GUID' IMPORTING
VALUE = lv_guid.
\通过调用函数BBP_PD_SUSPO_GETDETAIL根据lv_guid(URL)查询采购订单信息 CALL FUNCTION 'BBP_PD_SUSPO_GETDETAIL' EXPORTING
I_GUID = lv_guid IMPORTING
E_HEADER = lr_header_order * ET_ATTACH = TABLES
E_ITEM = lr_items_order E_PARTNER = lr_partern.
loop at lr_items_order INTO ls_items_order.
SHIFT ls_items_order-ordered_prod LEFT DELETING LEADING '0'. SHIFT ls_items_order-SRC_ITM_ID LEFT DELETING LEADING '0'. SHIFT ls_items_order-NUMBER_INT LEFT DELETING LEADING '0'. modify lr_items_order FROM ls_items_order. ENDLOOP.
DELETE lr_partern WHERE PARTNER_FCT <> '00000019'.
node_order_h = WD_CONTEXT->get_Child_Node( name = 'Z_ORDER_PRINT_H' ).
node_order_i = WD_CONTEXT->get_Child_Node( name = 'Z_ORDER_PRINT_I' ).
node_order_p = WD_CONTEXT->get_Child_Node( name = 'Z_ORDER_PARTNER'
).
node_order_h->BIND_STRUCTURE( lr_header_order ). node_order_i->bind_table( lr_items_order ). node_order_p->bind_table( lr_partern ). endmethod.
1.3.5Button事件处理
Layout中添加了按钮后,会在”Actions“页签中生成与之对应的“Action”(即按钮
的事件名)和“EventHandler”(事件实现功能的方法名),。下面就对前面添加的按钮进行事件处理,操作步骤如下:
1、在视图的“Actions”页签中,找到按钮对应的事件“PRINT”对应的
Handler“ONACTIONPRINT”,双击进行代码编写,如图1.3.5-1:
图1.3.5-1
2、代码如下:
method ONACTIONPRINT . DATA:
LV_FUNCTION_NAME TYPE RS38L_FNAM, LS_ARCHIVE_INDEX TYPE TOA_DARA, LS_ARCHIVE_PARAMETERS TYPE ARC_PARAMS, LT_ARCHIVE_INDEX TYPE TSFDARA, LV_PPF_SAP_OBJECT TYPE SAEANWDID, LV_PPF_AR_OBJECT TYPE SAEOBJECT, LS_CONTROL_PARAMETERS TYPE SSFCTRLOP, LS_OUTPUT_OPTIONS TYPE SSFCOMPOP, LV_MEDIUM_TYPE TYPE PPFDMETYPE, LS_MAIL_APPL_OBJ TYPE SWOTOBJID,
LS_MAIL_RECIPIENT TYPE SWOTOBJID, LS_MAIL_SENDER TYPE SWOTOBJID,
LV_USER_SETTINGS TYPE TDBOOL VALUE 'X', LS_FORM_ATTACHMENT TYPE BBPS_FORMS_OUTPUT, LT_ERROR_BID TYPE TABLE OF BBP_TR_ERROR, LV_ARCHDONE TYPE TDARCDONE, LV_ARCHIVE_COPIES TYPE TDARCCOP, LV_ARMOD TYPE SYARMOD, LV_PPF_ARMOD TYPE SYARMOD,
LS_DOCUMENT_OUTPUT_INFO TYPE SSFCRESPD, \ED
LS_JOB_OUTPUT_INFO TYPE SSFCRESCL, \ED
LS_JOB_OUTPUT_OPTIONS TYPE SSFCRESOP, LV_BIN_FILESIZE TYPE I,
LS_PDF TYPE XSTRING,
LT_PDF_LINES TYPE TABLE OF TLINE, LV_PDF_STREAM TYPE XSTRING.
data: lo_api_controller TYPE REF to if_wd_controller, lo_message_manager TYPE REF TO if_wd_message_manager. Data: context_node type ref to if_wd_context_node. Data: context_node2 type ref to if_wd_context_node, context_node3 type ref to if_wd_context_node, v_Index type i.
Data: it_order_item type STANDARD TABLE OF if_MAIN=>Element_z_order_print_i,
wa_order_item TYPE if_MAIN=>Element_z_order_print_i, wa_selrow type if_MAIN=>Element_z_order_print_i, ld_element type ref to if_wd_context_element, it_rows type WDR_CONTEXT_ELEMENT_SET, wa_rows like line of it_rows. DATA: ld_index type i.
Data: it_partner type STANDARD TABLE OF if_MAIN=>Element_z_order_partner,
wa_partner TYPE if_MAIN=>Element_z_order_partner. DATA: SSFFLAG(6) TYPE C.
DATA: G_SSFCRESCL TYPE SSFCRESCL.
context_node = wd_context->get_child_node( name = 'Z_ORDER_PRINT_I' ).
context_node->get_static_attributes_table( importing
table = it_order_item ).
context_node2 = wd_context->get_child_node( name = 'Z_ORDER_PARTNER