ABAP:HTML_VIEWER刷新问题

2020-08-30 17:57发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


尊敬的专家,

我在自定义容器中有html窗口,

我可以显示我的第一个数据,但是即使html代码已更改,也无法显示数据。

我用PBO编写了代码。

谢谢。


 模块状态_0100输出。

  设置PF-STATUS'MENU_0100'。

  设置标题栏" TITLE_0100"。



 MARA-MATNR = GV_MATNR。

 MAKT-MAKTX = GV_MAKTX。

 清除GV_MATNR。

 清除GV_MAKTX。

 清除条形码。











 如果REF_CONT是INITIAL。



   创建对象REF_CONT

     出口

       CONTAINER_NAME ='CUST1'

     例外情况

         cntl_error = 1

         cntl_system_error = 2

         create_error = 3

         lifetime_error = 4

         lifetime_dynpro_dynpro_link = 5

         其他= 6。

     如果SY-subrc <> 0。

       消息ID SY-MSGID类型SY-MSGTY编号SY-MSgno

                  与SY-msgv1 SY-msgv2 SY-msgv3 SY-msgv4。

     万一。



     创建对象REF_HTML

       出口

         父母= REF_CONT

       例外情况

         cntl_error = 1

         cntl_install_error = 2

         dp_install_error = 3

         dp_error = 4

         其他= 5。

     如果SY-subrc <> 0。

       消息ID SY-MSGID类型SY-MSGTY编号SY-MSgno

                  与SY-msgv1 SY-msgv2 SY-msgv3 SY-msgv4。

     万一。

 万一 。







 GV_CHAR = GV_CHAR +1。

 数据帧(255)。



 清除E_DATA。

 清除TS_DATA。

 CONCATENATE'  

' GV_CHAR'

'INTO E_DATA。 将e_data附加到ts_data。 呼叫方法REF_HTML-> LOAD_DATA 出口 TYPE ='文字' SUBTYPE ='html' 输入 ASSIGNED_URL = W_URL 改变 DATA_TABLE = TS_DATA 例外情况 dp_invalid_parameter = 1 dp_error_general = 2 cntl_error = 3 其他= 4。 如果SY-subrc <> 0。 万一。 呼叫方法REF_HTML-> SHOW_URL 出口 网址= W_URL 例外情况 cntl_error = 1 cnht_error_not_allowed = 2 cnht_error_parameter = 3 dp_error_general = 4 其他= 5。 如果SY-subrc <> 0。 万一。 REF_HTML-> DO_REFRESH()。 修改屏幕。 ENDMODULE。
html.jpg (18.6 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


尊敬的专家,

我在自定义容器中有html窗口,

我可以显示我的第一个数据,但是即使html代码已更改,也无法显示数据。

我用PBO编写了代码。

谢谢。


 模块状态_0100输出。

  设置PF-STATUS'MENU_0100'。

  设置标题栏" TITLE_0100"。



 MARA-MATNR = GV_MATNR。

 MAKT-MAKTX = GV_MAKTX。

 清除GV_MATNR。

 清除GV_MAKTX。

 清除条形码。











 如果REF_CONT是INITIAL。



   创建对象REF_CONT

     出口

       CONTAINER_NAME ='CUST1'

     例外情况

         cntl_error = 1

         cntl_system_error = 2

         create_error = 3

         lifetime_error = 4

         lifetime_dynpro_dynpro_link = 5

         其他= 6。

     如果SY-subrc <> 0。

       消息ID SY-MSGID类型SY-MSGTY编号SY-MSgno

                  与SY-msgv1 SY-msgv2 SY-msgv3 SY-msgv4。

     万一。



     创建对象REF_HTML

       出口

         父母= REF_CONT

       例外情况

         cntl_error = 1

         cntl_install_error = 2

         dp_install_error = 3

         dp_error = 4

         其他= 5。

     如果SY-subrc <> 0。

       消息ID SY-MSGID类型SY-MSGTY编号SY-MSgno

                  与SY-msgv1 SY-msgv2 SY-msgv3 SY-msgv4。

     万一。

 万一 。







 GV_CHAR = GV_CHAR +1。

 数据帧(255)。



 清除E_DATA。

 清除TS_DATA。

 CONCATENATE'  

' GV_CHAR'

'INTO E_DATA。 将e_data附加到ts_data。 呼叫方法REF_HTML-> LOAD_DATA 出口 TYPE ='文字' SUBTYPE ='html' 输入 ASSIGNED_URL = W_URL 改变 DATA_TABLE = TS_DATA 例外情况 dp_invalid_parameter = 1 dp_error_general = 2 cntl_error = 3 其他= 4。 如果SY-subrc <> 0。 万一。 呼叫方法REF_HTML-> SHOW_URL 出口 网址= W_URL 例外情况 cntl_error = 1 cnht_error_not_allowed = 2 cnht_error_parameter = 3 dp_error_general = 4 其他= 5。 如果SY-subrc <> 0。 万一。 REF_HTML-> DO_REFRESH()。 修改屏幕。 ENDMODULE。
html.jpg (18.6 kB)
付费偷看设置
发送
4条回答
zhangjiyang1323
1楼 · 2020-08-30 18:50.采纳回答

切勿使用DO_REFRESH方法。 我什至不确定用例是什么。 在您的情况下,它告诉控件重新呈现其当前HTML,这不是您发送的最后一个HTML,因为还没有UPDATE_VIEW/FLUSH(我在调用DO_REFRESH之前添加了CL_GUI_CFW => UPDATE_VIEW(),然后呈现了 HTML)。

重新加载数据就足够了。 最小的可复制示例(按OK按钮刷新):

 PARAMETERS虚拟。

 数据ref_html对cl_gui_html_viewer的类型引用。

 选择屏幕输出时。
   如果ref_html是INITIAL。
     创建对象ref_html
       出口
         父= cl_gui_container => screen0。
   万一 。
   数据:e_data类型soli,ts_data类型soli_tab,w_url类型text255。
   e_data-line = |   

{sy-uzeit}

|。 将e_data附加到ts_data。 调用方法ref_html-> load_data 出口 类型='文字' 子类型='html' 输入 Assigned_url = w_url 改变 data_table = ts_data。 ref_html-> show_url(w_url)。 在选择屏幕上。 表格sscrfields。 如果sscrfields-ucomm ='ONLI'。 sscrfields-ucomm =''。 ENDIF。
Cikesha
2楼-- · 2020-08-30 18:58

我删除了DO_REFRESH方法。

谢谢您的建议

Cikesha
3楼-- · 2020-08-30 18:51

嗨,桑德拉,

我尝试删除但无法解决。

我在创建容器之前添加了它。

免费REF_CONT。
 免费REF_HTML。

并且我在show_url方法之后添加了此内容

 REF_HTML-> FREE()。
 免费REF_HTML。
 MODULE STATUS_0100输出。
  设置PF-STATUS'MENU_0100'。
  设置标题栏" TITLE_0100"。
 MARA-MATNR = GV_MATNR。
 MAKT-MAKTX = GV_MAKTX。
 清除GV_MATNR。
 清除GV_MAKTX。
 清除条形码。
 免费REF_CONT。
 免费REF_HTML。
 如果REF_CONT是INITIAL。
   创建对象REF_CONT
     出口
       CONTAINER_NAME ='CUST1'
     例外情况
         cntl_error = 1
         cntl_system_error = 2
         create_error = 3
         lifetime_error = 4
         lifetime_dynpro_dynpro_link = 5
         其他= 6。
     如果SY-subrc <> 0。
       消息ID SY-MSGID类型SY-MSGTY编号SY-MSgno
                  与SY-msgv1 SY-msgv2 SY-msgv3 SY-msgv4。
     万一。
     创建对象REF_HTML
       出口
         父母= REF_CONT
       例外情况
         cntl_error = 1
         cntl_install_error = 2
         dp_install_error = 3
        dp_error = 4
         其他= 5。
     如果SY-subrc <> 0。
       消息ID SY-MSGID类型SY-MSGTY编号SY-MSgno
                  与SY-msgv1 SY-msgv2 SY-msgv3 SY-msgv4。
     万一。
 万一 。
 GV_CHAR = GV_CHAR +1。
 数据帧(255)。
 清除W_URL。
 清除E_DATA。
 清除TS_DATA。
 CONCATENATE'  

' GV_CHAR'

'INTO E_DATA。 将e_data附加到ts_data。 呼叫方法REF_HTML-> LOAD_DATA 出口 TYPE ='文字' SUBTYPE ='html' 输入 ASSIGNED_URL = W_URL 改变 DATA_TABLE = TS_DATA 例外情况 dp_invalid_parameter = 1 dp_error_general = 2 cntl_error = 3 其他= 4。 如果SY-subrc <> 0。 万一。 呼叫方法REF_HTML-> SHOW_URL 出口 网址= W_URL 例外情况 cntl_error = 1 cnht_error_not_allowed = 2 cnht_error_parameter = 3 dp_error_general = 4 其他= 5。 如果SY-subrc <> 0。 万一。 REF_HTML-> DO_REFRESH()。 REF_HTML-> FREE()。 免费REF_HTML。 "修改屏幕。 ENDMODULE。
SAP小菜
4楼-- · 2020-08-30 18:40

很抱歉,我最初的回答是删除,因为我没有看到您只是第一次创建控件。

一周热门 更多>