ABAPBSP调用Webdynpro页面Word格式.docx
《ABAPBSP调用Webdynpro页面Word格式.docx》由会员分享,可在线阅读,更多相关《ABAPBSP调用Webdynpro页面Word格式.docx(10页珍藏版)》请在冰豆网上搜索。
button"
value="
送货标签和货物标签打印"
display:
inline"
onClick
="
window.open('
%=
lv_url
%>
'
'
送货标签和货物标签打印'
width=800,height=
400,resizable=yes,scrollbars=yes'
)"
/br>
b、代码说明:
其中,变量lv_url是新页面的URL(下一节将讲URL如何获取值);
为了让新按钮与自带按钮显示在同一行,在标准按钮控件前要加html<
div>
标签:
1.1.2BSP页面生成按钮元素URL
1、在BSP页面中添加生成URL代码,添加位置如图1.1.2-1:
图1.1.2-1
2、添加代码如下:
DATA:
TYPE
string,
d_url(255)
c,
lv_app_name
host
port
out_protocol
in_parameters
tihttpnvp,
wa_params
LIKE
LINE
OF
in_parameters,
lv_iview
gf_value_old
/sapsrm/char512,
gf_clength
int2.
lo_window_manager
REF
TO
if_wd_window_manager,
lo_api_component
if_wd_component,
lo_window
if_wd_window.
*
Use
the
WD
application
created
and
pass
a
value
to
parameter
SC_GUID:
wa_params-name
=
Z_ORDER_GUID'
."
Z_ORDER_GUID是URL参数名
wa_params-value
ls_header_po-GUID.
APPEND
in_parameters.
Z_ORDER_BC_PRINT'
Z_ORDER_BC_PRINT是WebDynpro程序名称
CALL
METHOD
cl_http_server=>
if_http_server~get_location
IMPORTING
host
port
out_protocol.
cl_wd_utilities=>
construct_wd_url
EXPORTING
application_name
lv_app_name
in_host
in_port
in_protocol
out_protocol
in_parameters
namespace
sap'
out_absolute_url
lv_url."
lv_url为URL值存放的位置,在上一届添加按钮元素中调用
a、URL参数名Z_ORDER_GUID:
新页面的数据关联是根据该参数(ORDER的GUID全球唯一标识)关联的;
b、WebDynpro程序名Z_ORDER_BC_PRINT:
WebDynpro中进行开发;
c、如上代码直接嵌入BSP页面的抬头部分的<
%...%>
中。
到这里BSP程序调用WebDynpro页面就完成了。
1.2SE80WebDynpro页面初始化数据
这一节简要介绍BSP调用的WebDynpro程序"
Z_ORDER_BC_PRINT"
中数据的处理。
如需了解WebDynpro的开发,请参考“ABAP-WebDynpro实例.docx”文件。
1.2.1组件COMPONENTCONTROLLER配置
1、Context-Node创建,如图1.2.1-1:
图1.2.1-1
2、Context-Attribute创建,如图1.2.1-2:
图1.2.1-2
3、Methods-WDDOINIT控制器初始化数据,如图1.2.1-3:
图1.2.1-3
method
WDDOINIT
.
DATA
lo_nd_z_order_guid
if_wd_context_node.
lo_el_z_order_guid
if_wd_context_element.
"
Element_z_order_guid由Element_和Context的名称组成
ls_z_order_guid
wd_this->
Element_z_order_guid.
lv_order_guid
Element_z_order_guid-order_guid.
navigate
from
CONTEXT>
Z_ASN_GUID>
via
lead
selection
wdctx_z_order_guid由wdctx_和Context的名称组成
wd_context->
get_child_node(
name
wdctx_z_order_guid
).
@TODO
handle
non
existant
child
IF
lo_nd_z_asn_guid
IS
INITIAL.
ENDIF.
get
element
lo_nd_z_order_guid->
get_element(
not
set
fill
attribute
lv_asn_guid
1.
cl_wd_runtime_services=>
get_url_parameter(
single
lo_el_z_order_guid->
set_attribute(
`ORDER_GUID`
Context的Attribute名
endmethod.
b、a中的代码就是获取WebDynpro程序的URL,并将URL的值赋给Context的Attribute。
1.2.2视图初始化数据处理
这里只介绍视图中初始化数据的处理,对于其他业务操作不做介绍。
1、视图初始化数据,如图1.2.2-1:
图1.2.2-1
lo_component
lo_context
if_wd_context,
lo_controller
type
if_wd_controller,
lo_node
if_wd_context_node,
lo_child
lo_cmp_usage
if_wd_component_usage,
lv_guid
bbp_guid,
lr_header_order
BBP_PDS_SUSPO_HEADER_D,
lr_items_order
STANDARD
TABLE
BBP_PDS_SUSPO_ITEM_D,
ls_items_order
lr_partern
BBP_PDS_PARTNER,
node_order_h
node_order_i
node_order_p
wd_comp_controller->
wd_get_api(
?
lo_component.
lo_controller->
get_context
RECEIVING
context
lo_context.
lo_context->
root_node.
lo_node->
lo_child->
GET_ATTRIBUTE
NAME
ORDER_GUID'
VALUE
lv_guid."
获取全局Attribute'
赋给lv_guid
FUNCTION
BBP_PD_SUSPO_GETDETAIL'
I_GUID
lv_guid
E_HEADER
lr_header_order
ET_ATTACH
=
TABLES
E_ITEM
lr_items_order
E_PARTNER
lr_partern."
根据URL值lv_guid查询采购订单抬头、行项目、合作伙伴的信息,供后续使用
loop
at
INTO
ls_items_order.
SHIFT
ls_items_order-ordered_prod
LEFT
DELETING
LEADING
0'
ls_items_order-SRC_ITM_ID
ls_items_order-NUMBER_INT
modify
FROM
ENDLOOP.
DELETE
WHERE
PARTNER_FCT
00000019'
WD_CONTEXT->
get_Child_Node(
Z_ORDER_PRINT_H'
Z_ORDER_PRINT_I'
Z_ORDER_PARTNER'
node_order_h->
BIND_STRUCTURE(
node_order_i->
bind_table(
node_order_p->
到这里BSP调用WebDynpro程序就完成了。