WEBDYNPRO FPM 框架

框架搭建

1、FPM_OVP_COMPONENT

 1 METHOD change_toolbar_btn .2 * enabled     "ABAP_TRUE可用 ABAP_FALSE不可用3 * visibility  "01不可见 02可见4   DATA: ls_btn TYPE if_fpm_ovp=>ty_s_toolbar_button.5   CHECK wd_this->mo_cnr IS BOUND.6 7   TRY .8       CLEAR:ls_btn.9       wd_this->mo_cnr->get_toolbar_button(
10         EXPORTING
11           iv_toolbar_element_id = id
12         IMPORTING
13           es_toolbar_button     = ls_btn
14       ).
15       CHECK ls_btn IS NOT INITIAL.
16 
17 *      IF text IS SUPPLIED.
18       ls_btn-text = text.
19 *      ENDIF.
20       IF enabled IS SUPPLIED.
21         ls_btn-enabled = enabled.
22       ENDIF.
23       IF visibility IS SUPPLIED.
24         ls_btn-visibility = visibility.
25       ENDIF.
26 
27       wd_this->mo_cnr->change_toolbar_button(
28         iv_content_area   = \'PAGE_1\'
29         is_toolbar_button = ls_btn ).
30     CATCH cx_root INTO DATA(lo_err).
31       DATA(lv_txt) = lo_err->get_text( ).
32   ENDTRY.
33 
34 ENDMETHOD.
1 METHOD fire_view_action .
2 
3   DATA: lo_action TYPE REF TO cl_wdr_action.
4   lo_action ?= wd_this->z_curr_view->get_action( action_name ).
5   CHECK lo_action IS BOUND.
6   lo_action->fire( ).
7 
8 ENDMETHOD.
 1 METHOD init_toolbar .2 3   DATA: lt_elm     TYPE if_fpm_ovp=>ty_t_toolbar_element,4         lv_txt     TYPE fpm_text,5         lv_enable  TYPE fpm_enabled,6         lv_visible TYPE fpm_visibility.7 8   wd_this->mo_fpm = cl_fpm_factory=>get_instance( ).9   wd_this->mo_cnr ?= wd_this->mo_fpm->get_service( `CNR_OVP` ).
10 
11   TRY.
12       wd_this->mo_cnr->get_toolbar_elements( IMPORTING et_toolbar_element = lt_elm ).
13     CATCH cx_root INTO DATA(lo_err).
14       DATA(lv_err_txt) = lo_err->get_text( ).
15   ENDTRY.
16 
17   LOOP AT lt_elm INTO DATA(ls_elm).
18     CLEAR:lv_txt.
19     CASE ls_elm-element_id.
20       WHEN \'FPM_SAVE_1\'.
21         lv_txt = cl_wd_utilities=>get_otr_text_by_alias( alias = \'ZMDG01/SAVE\' ).
22         lv_enable = abap_true.
23         lv_visible = 2.
24 
25       WHEN \'FPM_CANCEL_1\'.
26         lv_txt = cl_wd_utilities=>get_otr_text_by_alias( alias = \'ZMDG01/ZCX\' ).
27         lv_enable = abap_true.
28         lv_visible = 2.
29 
30       WHEN \'ZMDG_COMMIT\'.
31         lv_txt = cl_wd_utilities=>get_otr_text_by_alias( alias = \'ZMDG01/COMMIT\' ).
32         lv_enable = abap_true.
33         lv_visible = 2.
34 
35       WHEN \'ZMDG_COMMITSP\'.
36         lv_txt = cl_wd_utilities=>get_otr_text_by_alias( alias = \'ZMDG01/SP\' ).
37         lv_enable = abap_true.
38         lv_visible = 1.
39 
40       WHEN \'ZMDG_COMMITSPJJ\'.
41         lv_txt = cl_wd_utilities=>get_otr_text_by_alias( alias = \'ZMDG01/SPJJ\' ).
42         lv_enable = abap_true.
43         lv_visible = 1.
44 
45       WHEN OTHERS.
46     ENDCASE.
47 
48     CHECK lv_txt IS NOT INITIAL.
49     change_toolbar_btn(
50       id         = ls_elm-element_id
51       text       = lv_txt
52       enabled    = lv_enable
53       visibility = lv_visible
54     ).
55   ENDLOOP.
56 
57 ENDMETHOD.
  1 METHOD modify_toolbar .2 3 *  get view context4   DATA lo_view_context TYPE REF TO if_wd_context_node.5   lo_view_context ?= wd_this->z_curr_view->get_context( )->root_node.6 7   DATA: lo_nd_read_only    TYPE REF TO if_wd_context_node,8         lo_nd_dispaly_only TYPE REF TO if_wd_context_node,9         lo_el_read_only    TYPE REF TO if_wd_context_element,10         lo_el_dispaly_only TYPE REF TO if_wd_context_element.11 12   DATA: lv_commitoa       TYPE wdy_boolean,13         lv_read_commit    TYPE wdy_boolean,14         lv_dispaly_commit TYPE wdy_boolean.15 16 *   get node17   lo_nd_read_only = lo_view_context->get_child_node( name = wd_this->wdctx_read_only ).18   lo_nd_dispaly_only = lo_view_context->get_child_node( name = wd_this->wdctx_dispaly_only ).19 20 *   get element21   lo_el_read_only = lo_nd_read_only->get_element( ).22   lo_el_dispaly_only = lo_nd_dispaly_only->get_element( ).23   CHECK lo_el_read_only IS NOT INITIAL.24   CHECK lo_el_dispaly_only IS NOT INITIAL.25 26 *   get single attribute27   lo_el_read_only->get_attribute(28     EXPORTING29       name  = `COMMITOA`30     IMPORTING31       value = lv_commitoa ).32   lo_el_read_only->get_attribute(33     EXPORTING34       name  = `COMMIT`35     IMPORTING36       value = lv_read_commit ).37   lo_el_dispaly_only->get_attribute(38     EXPORTING39       name  = `COMMIT`40     IMPORTING41       value = lv_dispaly_commit ).42 43 44 45 *  change toolbar buttons attr.46   DATA: lt_elm     TYPE if_fpm_ovp=>ty_t_toolbar_element,47         lv_txt     TYPE fpm_text,48         lv_enable  TYPE fpm_enabled,49         lv_visible TYPE fpm_visibility.50   TRY.51       wd_this->mo_cnr->get_toolbar_elements( IMPORTING et_toolbar_element = lt_elm ).52     CATCH cx_root INTO DATA(lo_err).53       DATA(lv_err_txt) = lo_err->get_text( ).54   ENDTRY.55 56   LOOP AT lt_elm INTO DATA(ls_elm).57     CASE ls_elm-element_id.58       WHEN \'FPM_SAVE_1\'.59         lv_enable = lv_commitoa.60         IF lv_read_commit = abap_true.61           lv_visible = 2. "Visible62         ELSE.63           lv_visible = 1. "Invisible64         ENDIF.65         IF lv_visible = 1.66           lv_enable = abap_false.67         ENDIF.68         lv_txt = cl_wd_utilities=>get_otr_text_by_alias( alias = \'ZMDG01/SAVE\' ).69 70       WHEN \'FPM_CANCEL_1\'.71         lv_enable = abap_true.72         IF lv_read_commit = abap_true.73           lv_visible = 2. "Visible74         ELSE.75           lv_visible = 1. "Invisible76         ENDIF.77         IF lv_visible = 1.78           lv_enable = abap_false.79         ENDIF.80         lv_txt = cl_wd_utilities=>get_otr_text_by_alias( alias = \'ZMDG01/ZCX\' ).81 82       WHEN \'ZMDG_COMMIT\'.83         lv_enable = lv_commitoa.84         IF lv_read_commit = abap_true.85           lv_visible = 2. "Visible86         ELSE.87           lv_visible = 1. "Invisible88         ENDIF.89         IF lv_visible = 1.90           lv_enable = abap_false.91         ENDIF.92         lv_txt = cl_wd_utilities=>get_otr_text_by_alias( alias = \'ZMDG01/COMMIT\' ).93 94       WHEN \'ZMDG_COMMITSP\'.95         lv_enable = abap_true.96         IF lv_dispaly_commit = abap_true.97           lv_visible = 2. "Visible98         ELSE.99           lv_visible = 1. "Invisible
100         ENDIF.
101         IF lv_visible = 1.
102           lv_enable = abap_false.
103         ENDIF.
104         lv_txt = cl_wd_utilities=>get_otr_text_by_alias( alias = \'ZMDG01/SP\' ).
105 
106       WHEN \'ZMDG_COMMITSPJJ\'.
107         lv_enable = abap_true.
108         IF lv_dispaly_commit = abap_true.
109           lv_visible = 2. "Visible
110         ELSE.
111           lv_visible = 1. "Invisible
112         ENDIF.
113         IF lv_visible = 1.
114           lv_enable = abap_false.
115         ENDIF.
116         lv_txt = cl_wd_utilities=>get_otr_text_by_alias( alias = \'ZMDG01/SPJJ\' ).
117 
118       WHEN OTHERS.
119     ENDCASE.
120 
121     change_toolbar_btn(
122       id         = ls_elm-element_id
123       text       = lv_txt
124       enabled    = lv_enable
125       visibility = lv_visible
126     ).
127 
128   ENDLOOP.
129 
130 ENDMETHOD.
 1 METHOD needs_confirmation .2 3   CASE io_event->mv_event_id.4     WHEN \'FPM_CLOSE\'.5       DATA(lo_win_mngr) = wd_this->wd_get_api( )->get_window_manager( ).6       DATA: lt_text TYPE string_table.7       lt_text = VALUE #( ( `未保存的数据将会丢失,是否继续?` ) ).8       CALL METHOD lo_win_mngr->create_popup_to_confirm9         EXPORTING
10           text         = lt_text
11           button_kind  = 5    "Yes,No,Cancel
12           message_type = if_wd_message_manager=>co_type_warning
13 *         close_button = ABAP_TRUE
14 *         window_title =
15 *         window_left_position =
16 *         window_top_position  =
17 *         window_position      =
18 *         window_width =
19 *         window_height        =
20 *         default_button       =
21         RECEIVING
22           result       = DATA(lo_popup_window).
23 *      IF lO_POPUP_WINDOW NE 1.
24 *        wd_this->wd_get_api( )->cancel_navigation( ).
25 *      ENDIF.
26 
27     WHEN OTHERS.
28   ENDCASE.
29 
30 ENDMETHOD.
 1 METHOD popup_confirm .2 3   DATA(lo_win_mngr) = wd_this->wd_get_api( )->get_window_manager( ).4   DATA: lt_text TYPE string_table.5   lt_text = VALUE #( ( `未保存的数据将会丢失,是否继续?` ) ).6   CALL METHOD lo_win_mngr->create_popup_to_confirm7     EXPORTING8       text         = lt_text9       button_kind  = 4    "Yes,No
10       message_type = if_wd_message_manager=>co_type_warning
11       close_button = abap_false
12 *     window_title =
13 *     window_left_position =
14 *     window_top_position  =
15 *     window_position      =
16 *     window_width =
17 *     window_height        =
18 *     default_button       =
19     RECEIVING
20       result       = DATA(lo_popup_window).
21 
22   lo_popup_window->subscribe_to_button_event(
23     button      = if_wd_window=>co_button_yes
24 *   BUTTON_TEXT = \'\'
25 *   TOOLTIP     =
26     action_name = \'ZYES\'
27     action_view = wd_this->z_curr_view
28   ).
29 
30   lo_popup_window->subscribe_to_button_event(
31     button      = if_wd_window=>co_button_no
32 *   BUTTON_TEXT = \'\'
33 *   TOOLTIP     =
34     action_name = \'ZNO\'
35     action_view = wd_this->z_curr_view
36   ).
37 
38   lo_popup_window->open( ).
39 
40 
41 
42 
43 ENDMETHOD.
 1 METHOD process_event .2 3   CASE io_event->mv_event_id.4     WHEN \'FPM_SAVE\'.5       fire_view_action( \'SAVE_DATA\' ).6 7     WHEN \'FPM_CANCEL\'.8 *      fire_view_action( \'ZCX\' ).9       wd_this->zf_close = abap_true.
10       wd_this->mo_fpm->raise_event_by_id( \'FPM_CLOSE\' ).
11 
12     WHEN \'FPM_CLOSE\'.
13       popup_confirm( ).
14 
15     WHEN \'ZMDG_COMMIT\'.
16       fire_view_action( \'COMMITOA\' ).
17 
18     WHEN \'ZMDG_COMMITSP\'.
19       fire_view_action( \'COMMIT_APPROVE\' ).
20 
21     WHEN \'ZMDG_COMMITSPJJ\'.
22       fire_view_action( \'COMMIT_SPJJ\' ).
23 
24     WHEN OTHERS.
25   ENDCASE.
26 
27   modify_toolbar( ).
28 
29 ENDMETHOD.
 1 METHOD report_msg .2 3 *   get message manager4   DATA lo_api_controller     TYPE REF TO if_wd_controller.5   DATA lo_message_manager    TYPE REF TO if_wd_message_manager.6 7   lo_api_controller ?= wd_This->Wd_Get_Api( ).8 9   CALL METHOD lo_api_controller->get_message_manager
10     RECEIVING
11       message_manager = lo_message_manager.
12 
13 *   report message
14   CALL METHOD lo_message_manager->report_message
15     EXPORTING
16       message_text = text
17       message_type = type.
18 
19 ENDMETHOD.
1 METHOD wddobeforenavigation .
2 
3   IF wd_this->z_inited = abap_true.
4     DATA(lo_navi_to) = wd_this->mo_fpm->get_navigate_to( ).
5     popup_confirm( ).
6   ENDIF.
7 
8 ENDMETHOD.
  1 METHOD wddoinit .2 3   DATA lo_nd_header_data TYPE REF TO if_wd_context_node.4   DATA lo_nd_header_data_info TYPE REF TO if_wd_context_node_info.5   DATA ls_header_data TYPE wd_this->element_header_data.6 7   DATA lt_value_set TYPE wdr_context_attr_value_list.8   DATA ls_value_set TYPE wdr_context_attr_value.9   lo_nd_header_data = wd_context->get_child_node( name = wd_this->wdctx_header_data ).10   lo_nd_header_data_info = lo_nd_header_data->get_node_info( ).11 * define list of raddiobuttons by changing type infos of attribute bound to property selectedKey12 13   SELECT * INTO TABLE @DATA(lt_tvtwt) FROM tvtwt WHERE spras = @sy-langu AND vtweg >= \'10\' AND vtweg <= \'50\'.14   LOOP AT lt_tvtwt INTO DATA(ls_tvtwt).15     ls_value_set-text  = ls_tvtwt-vtext.16     ls_value_set-value = ls_tvtwt-vtweg.17     APPEND ls_value_set TO lt_value_set.18   ENDLOOP.19   lo_nd_header_data_info->set_attribute_value_set( name = \'VTWEG\' value_set = lt_value_set ).20 21   REFRESH lt_value_set.22   SELECT * INTO TABLE @DATA(lt_t077x) FROM t077x WHERE spras = @sy-langu AND ( ktokd = \'Z001\' OR ktokd = \'Z002\') .23   LOOP AT lt_t077x INTO DATA(ls_t077x).24     ls_value_set-text  = ls_t077x-txt30.25     ls_value_set-value = ls_t077x-ktokd.26     APPEND ls_value_set TO lt_value_set.27   ENDLOOP.28   lo_nd_header_data_info->set_attribute_value_set( name = \'KTOKD\' value_set = lt_value_set ).29   REFRESH lt_value_set.30 31   SELECT * INTO TABLE @DATA(lt_T005T) FROM t005t WHERE spras = @sy-langu  .32   LOOP AT lt_T005T INTO DATA(ls_T005T).33     ls_value_set-text  = ls_T005T-landx.34     ls_value_set-value = ls_T005T-land1.35     APPEND ls_value_set TO lt_value_set.36   ENDLOOP.37   lo_nd_header_data_info->set_attribute_value_set( name = \'LAND1\' value_set = lt_value_set ).38   REFRESH lt_value_set.39 40   DATA: i_input  TYPE dd07v,o_output TYPE dd07v.41   i_input-domname = \'ZDCJLXS\'.42 43   i_input-domvalue_l = \'A1\'.44   CALL FUNCTION \'ZMDG_GET_DD07V\'45     EXPORTING46       i_input  = i_input47     IMPORTING48       o_output = o_output.49   ls_value_set-text  = o_output-ddtext ."\'新增客户代码\'.50   ls_value_set-value = \'A1\'.51   APPEND ls_value_set TO lt_value_set.52   i_input-domvalue_l = \'A2\'.53   CALL FUNCTION \'ZMDG_GET_DD07V\'54     EXPORTING55       i_input  = i_input56     IMPORTING57       o_output = o_output.58   ls_value_set-text  = o_output-ddtext ."\'客户抬头变更\'.59   ls_value_set-value = \'A2\'.60   APPEND ls_value_set TO lt_value_set.61   i_input-domvalue_l = \'A3\'.62   CALL FUNCTION \'ZMDG_GET_DD07V\'63     EXPORTING64       i_input  = i_input65     IMPORTING66       o_output = o_output.67   ls_value_set-text  = o_output-ddtext ."\'送达方变售达方\'.68   ls_value_set-value = \'A3\'.69   APPEND ls_value_set TO lt_value_set.70   i_input-domvalue_l = \'A4\'.71   CALL FUNCTION \'ZMDG_GET_DD07V\'72     EXPORTING73       i_input  = i_input74     IMPORTING75       o_output = o_output.76   ls_value_set-text  = o_output-ddtext ."\'与关联企业共用编码\'.77   ls_value_set-value = \'A4\'.78   APPEND ls_value_set TO lt_value_set.79 80   lo_nd_header_data_info->set_attribute_value_set( name = \'ZCJLX\' value_set = lt_value_set ).81   REFRESH lt_value_set.82 83   DATA lo_el_header_data TYPE REF TO if_wd_context_element.84 85 * navigate from <CONTEXT> to <HEADER_DATA> via lead selection86   lo_nd_header_data = wd_context->get_child_node( name = wd_this->wdctx_header_data ).87 88 * get element via lead selection89   lo_el_header_data = lo_nd_header_data->get_element( ).90 91   SELECT SINGLE bname name_text zssbm zssgs zcqb92    INTO (ls_header_data-bname,ls_header_data-bnametext,ls_header_data-zssbm,ls_header_data-zssgs,ls_header_data-zcqb)93    FROM v_username94   INNER JOIN ztoasapuser ON ztoasapuser~zsapuname = v_username~bname95   WHERE bname = sy-uname .96 97 *   set all declared attributes98   lo_el_header_data->set_static_attributes(99      static_attributes = ls_header_data ).
100 
101 
102 
103   init_toolbar( ).
104 
105 ENDMETHOD.

PFCG配置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/421485.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器视觉系统选型-参数-分辨率

镜头分辩率指的是在像平面处1毫米内能分辨开的黑白相间的线条对数. 单位是“线对/毫米”&#xff08;lp/mm&#xff0c;line-pairs/mm&#xff09;. 一个摄像机每毫米的像素密度是M点&#xff08;pixel/mm&#xff09;,那么应该选择一个分辨率是M/2 lp/mm的镜头。 例&#xff…

用ChatGPT教学、科研!亚利桑那州立大学与OpenAI合作

亚利桑那州立大学&#xff08;简称“ASU”&#xff09;在官网宣布与OpenAI达成技术合作。从2024年2月份开始&#xff0c;为所有学生提供ChatGPT企业版访问权限&#xff0c;主要用于学习、课程作业和学术研究等。 为了帮助学生更好地学习ChatGPT和大语言模型产品&#xff0c;AS…

MBR扇区修复和GRUB引导修复实验

修复MBR扇区 步骤一&#xff1a;在进行实验之前我们需要新加一块磁盘&#xff0c;并对新加磁盘进行分区处理&#xff0c;用来备份sda磁盘的MBR及分区表信息。&#xff08;注&#xff1a;在实验中可以不像我如此这么繁琐&#xff0c;一个主分区&#xff0c;并格式化挂载即可&am…

蚂蚁数科CTO王维首次公开亮相:进一步拓展数据相关技术布局

“AI与数据是相生相伴的共同体&#xff0c;高质量的行业数据才能使大模型在产业发挥更大价值。蚂蚁数科将进一步拓展数据相关技术的布局&#xff0c;以加速产业数字化迈入下一阶段。”1月19日&#xff0c;王维首次以蚂蚁数科CTO的身份亮相媒体沟通会。 数据是数字时代的“新石…

3.postman动态参数、文件上传及断言

一、postman内置动态参数以及自定义的动态参数 postman内置动态参数&#xff1a; {{$timestamp}} 生成当前时间的时间戳 {{$randomint}} 生成0-1000之间的随机数 {{$guid}} 生成随机guid字符串 自定义动态参数&#xff1a; 在请求中pre-req页面下 //手动的获得时间戳 var…

C#,入门教程(22)——函数的基础知识

上一篇&#xff1a; C#&#xff0c;入门教程(21)——命名空间&#xff08;namespace&#xff09;与程序结构的基础知识https://blog.csdn.net/beijinghorn/article/details/124140653 一、函数的基本概念 一个软件的结构大体如下&#xff1a; 大厦application: a plaza { --…

幻兽帕鲁服务器搭建

前情提要&#xff1a;周末弄了个 幻兽帕鲁 的服务器&#xff0c;和朋友一起玩&#xff0c;幻兽帕鲁 自己的服务器人太多了(全网最简单的幻兽帕鲁私服搭建教程). 需要准备的东西 假如你没有云服务器的话&#xff0c;你需要知道本机的公网ip&#xff0c;个人是推荐购买一台云服…

基于 GPT 和 Qdrant DB 向量数据库, 我构建了一个电影推荐系统

电影推荐系统自从机器学习时代开始以来就不断发展&#xff0c;逐步演进到当前的 transformers 和向量数据库的时代。 在本文中&#xff0c;我们将探讨如何在向量数据库中高效存储数千个视频文件&#xff0c;以构建最佳的推荐引擎。 在众多可用的向量数据库中&#xff0c;我们将…

浮点型在内存中的存储

浮点数在内存中的储存方式是按IEEE 754标准的 &#xff08;-1&#xff09;的S次方*M*2的E次方 即&#xff08;-1&#xff09;^S*M*2^E &#xff08; S是0或1&#xff0c;用来表示正负&#xff0c;0为正&#xff0c;1为负&#xff09; [M是浮点数转化为二进制后的二进制科学…

JVM工作原理与实战(二十三):堆的垃圾回收-引用计数法和可达性分析法

专栏导航 JVM工作原理与实战 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、判断堆上的对象是否可以回收 1.引用计数法 2.可达性分析算法 二、查看垃圾回收日志 总结 前言 JVM作为Java程序的运行环境&#xff0c;其负责解释和执行字节码&#xff0c;管理…

【OCR项目】之用HALCON的深度学习工具进行文字识别,并导出到C++调用

前言 HALCON是一个强大的机器视觉工具&#xff0c;包含了2D&#xff0c;3D图像各种算子&#xff0c;以及各种任务的深度学习工具&#xff0c;包括目标检测&#xff0c;实例分割&#xff0c;文字识别等。 这次从实际生产的角度&#xff0c;来分享一下如何用HALCON进行文字识别…

Modbus网关BL101 既实现Modbus转MQTT,还能当串口服务器使用

随着工业4.0的迅猛发展&#xff0c;人们深刻认识到在工业生产和生活中&#xff0c;实时、可靠、安全的数据传输至关重要。在此背景下&#xff0c;高性能的工业电力数据传输解决方案——协议转换网关应运而生&#xff0c;广泛应用于工业自动化系统、远程监控和物联网应用应用环境…