屏幕退出中的"自定义长文本"字段

2020-09-21 12:04发布

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

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


全部

我有一个需求,其中需要在屏幕出口处创建自定义的长文本字段。 我能够从这方面的一些SDN帖子中获得指示,并且能够成功创建该字段。 另一个挑战是用户现在要求使用"文本编辑器"按钮,该按钮会将他们带到SAP Script类型的编辑器。 我不确定该如何编码或要采取什么步骤。 感谢有人可以帮助我。 我正在输入当前代码,该代码适用于常规的长文本字段,并且还提供了我想要获得的屏幕截图。

 DATA:gv_line_length TYPE i VALUE 132,

         gv_editor_container类型参考cl_gui_custom_container,

         gv_text_editor类型参考cl_gui_textedit。

   常量ytrue类型i值1。

   如果gv_text_editor是INITIAL。

     创建对象gv_editor_container

       出口

         container_name ='TEXTEDITOR'"编辑者名称

       例外情况

         cntl_error = 1

         cntl_system_error = 2

         create_error = 3

         lifetime_error = 4

         lifetime_dynpro_dynpro_link = 5。

     创建对象gv_text_editor

       出口

         父母= gv_editor_container

         wordwrap_mode = cl_gui_textedit => wordwrap_at_fixed_position

         wordwrap_position = gv_line_length

         wordwrap_to_linebreak_mode = cl_gui_textedit => true。


     调用方法gv_text_editor-> set_toolbar_mode

       出口

         工具栏模式= cl_gui_textedit => false。


     呼叫方法gv_text_editor-> set_statusbar_mode

       出口

         statusbar_mode = cl_gui_textedit => false。

   万一。

   如果gv_text_editor不是INITIAL。

     如果sy-tcode ='QM03'。

       调用方法gv_text_editor-> set_readonly_mode

         出口

           readonly_mode = ytrue。

     万一。

   万一。

 

(1.8 kB)

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

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


全部

我有一个需求,其中需要在屏幕出口处创建自定义的长文本字段。 我能够从这方面的一些SDN帖子中获得指示,并且能够成功创建该字段。 另一个挑战是用户现在要求使用"文本编辑器"按钮,该按钮会将他们带到SAP Script类型的编辑器。 我不确定该如何编码或要采取什么步骤。 感谢有人可以帮助我。 我正在输入当前代码,该代码适用于常规的长文本字段,并且还提供了我想要获得的屏幕截图。

 DATA:gv_line_length TYPE i VALUE 132,

         gv_editor_container类型参考cl_gui_custom_container,

         gv_text_editor类型参考cl_gui_textedit。

   常量ytrue类型i值1。

   如果gv_text_editor是INITIAL。

     创建对象gv_editor_container

       出口

         container_name ='TEXTEDITOR'"编辑者名称

       例外情况

         cntl_error = 1

         cntl_system_error = 2

         create_error = 3

         lifetime_error = 4

         lifetime_dynpro_dynpro_link = 5。

     创建对象gv_text_editor

       出口

         父母= gv_editor_container

         wordwrap_mode = cl_gui_textedit => wordwrap_at_fixed_position

         wordwrap_position = gv_line_length

         wordwrap_to_linebreak_mode = cl_gui_textedit => true。


     调用方法gv_text_editor-> set_toolbar_mode

       出口

         工具栏模式= cl_gui_textedit => false。


     呼叫方法gv_text_editor-> set_statusbar_mode

       出口

         statusbar_mode = cl_gui_textedit => false。

   万一。

   如果gv_text_editor不是INITIAL。

     如果sy-tcode ='QM03'。

       调用方法gv_text_editor-> set_readonly_mode

         出口

           readonly_mode = ytrue。

     万一。

   万一。

 

(1.8 kB)
付费偷看设置
发送
6条回答
粗暴的香蕉
1楼-- · 2020-09-21 12:10

嗨,

功能模块:EDIT_TEXT

SAPscript:在文本编辑器中编辑文本

此功能模块用于调用全屏编辑器。 可以使用此处提供的功能来编辑文本行。 编辑器界面是根据分配给文本对象的界面设置的。

退出编辑器时,只要根据文本对象集将文本保存在文本文件中,通常会使用"保存"或"标记"功能隐式调用功能模块SAVE_TEXT。 可以通过参数SAVE取消此调用。

还有一个FM TERM_CONTROL_EDIT

谢谢!!!

亦是此间程序员
2楼-- · 2020-09-21 12:13

我希望您能说服他们!

SAP小菜
3楼-- · 2020-09-21 12:35

创建自定义屏幕并使用ALV容器。

使用CL_GUI_TEXTEDITOR及其方法可以为屏幕的可视化做准备...

然后,只需调用屏幕即可...
下面是一个应该或多或少起作用的示例:

" TextEditor中的LongText数据...
     创建对象txteditor" CL_GUI_TEXTEDITOR
       出口
         wordwrap_mode = cl_gui_textedit => wordwrap_at_fixed_position
         wordwrap_position = 132
         wordwrap_to_linebreak_mode = cl_gui_textedit => false
         父母= lr_container_txt" CL_GUI_CONTAINER
       例外情况
         error_cntl_create = 1
         error_cntl_init = 2
         error_cntl_link = 3
         error_dp_create = 4
         gui_type_not_supported = 5
         其他= 6。
     如果sy-subrc <> 0。
       "执行Excp.Handling
     万一。

     txteditor-> set_text_as_stream(
       出口
         text = longtexttab" TDLINE-TABLE
       例外情况
         error_dp = 1
         error_dp_create = 2
         其他= 3)。
     如果sy-subrc <> 0。
       "执行Excp.Handling
     万一。

     txteditor-> set_toolbar_mode(
       出口
         toolbar_mode = 0"无工具栏
       例外情况
         error_cntl_call_method = 1
         invalid_parameter = 2
         其他= 3)。
     如果sy-subrc <> 0。
       "执行Excp.Handling
     万一。

     "可能更新StatusBar文本...
     txteditor-> set_status_text(
       出口
         status_text = lv_status_txt
       例外情况
         error_cntl_call_method = 1
         其他= 2)。
     如果sy-subrc <> 0。
       "执行Excp.Handling
     万一。
    
     "调用您的自定义屏幕
     呼叫画面1001。

 输出之前进行处理。
   MODULE status_1001。

 MODULE status_1001 OUTPUT。
   设置PF-STATUS'ZSTATUS'。
   用文本t01设置标题栏" ZTITLE"。

   txteditor-> set_readonly_mode(
     出口
       readonly_mode = cl_gui_textedit => true" ReadOnly
     例外情况
       error_cntl_call_method = 1
       invalid_parameter = 2
       其他= 3)。
   如果sy-subrc <> 0。
     "执行Excp.Handling
     返回。
   万一。

 ENDMODULE。
 


希望这会有所帮助

Nic T。

4楼-- · 2020-09-21 12:25

所以,您认为别无选择吗?

clasier
5楼-- · 2020-09-21 12:18

不,肯定会有解决方案!

但是这个单词编辑器不是必须的! 因此,如果可以,请说服他们。

就像您用谷歌搜索此要求一样,您只能找到仅针对Smartforms和SAP脚本启用它。

否则,请等待专家解决方案。

风早神人
6楼-- · 2020-09-21 12:34

感谢Nic的答复。

我实际上忘记提及了,此更改在QM01/02/03交易中是必需的。

我们需要创建一个新的自定义选项卡,添加一个自定义子屏幕,然后在此子屏幕中创建文本编辑器。 现在的问题是,用户在此编辑器中输入文本,然后可以转到另一个选项卡或单击"保存"。 在那个时间点,用户出口的引用消失了,我看不到任何地方插入的文本。

我正在尝试在SAVE用户出口中保存文本,但表为空。

一周热门 更多>