为什么在屏幕上使用表控件时出现此错误?

2020-08-13 19:58发布

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

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


我已经用Table Control制作了一个屏幕。 当我尝试激活时,它给我一个错误。 请告知。

 *&---------------------------------------------  ------------------------ *
 *&模块池ZABAP_PRACTICE2_MODULE
 *&
 *&------------------------------------------------  --------------------- *
 *&
 *&
 *&------------------------------------------------  --------------------- *

 程序zabap_practice2_module。

 表格ZABAP_MAKT。

 数据:v_matnr TYPE matnr,
        v_spras TYPE spras,
        v_maktx TYPE maktx。

 数据ok_code类型sy-ucomm。

 控件:使用屏幕101的TBCONTROL类型表。
 *&------------------------------------------------  --------------------- *
 *&模块GET_MAKTX INPUT
 *&------------------------------------------------  --------------------- *
 *文字
 * -------------------------------------------------  --------------------- *

 MODULE user_command_0101输入。

 ENDMODULE。  " USER_COMMAND_0101输入

 模块get_maktx输入。
   案例ok_code。
     当"提交"。
       清除ok_code。
       从makt到v_maktx中选择单个maktx,在其中matnr EQ v_matnr和spras EQ'E'。
   结束。
 ENDMODULE。





 *&------------------------------------------------  --------------------- *
 *&模块STATUS_0101输出
 *&------------------------------------------------  --------------------- *
 *文字
 * -------------------------------------------------  --------------------- *
 模块状态为_0101的输出。

   设置PF-STATUS'GUI100'。
   将标题栏设置为"标题"。


   数据:lv_values TYPE vrm_values,
          lv_value类似于lv_values的行。

   如果lv_values是INITIAL。

     lv_value-key ='100-100'。
     lv_value-text ='笔'。
     将lv_value附加到lv_values。

     lv_value-key ='100200hgfdjfgfdhjkl'。
     lv_value-text ='铅笔'。
     将lv_value附加到lv_values。

     lv_value-key ='100-600'。
     lv_value-text ='橡胶'。
     将lv_value附加到lv_values。

 万一。

   通话功能" VRM_SET_VALUES"
     出口
       id ='v_matnr'
       值= lv_values
     例外情况
       id_illegal_name = 1
       其他= 2。


   如果sy-subrc <> 0。
 *在这里实施适当的错误处理
   万一。



 ENDMODULE。  " STATUS_0101输出
    " GET_MAKTX INPUT
 *&------------------------------------------------  --------------------- *
 *&模块PBO输出
 *&------------------------------------------------  --------------------- *
 *文字
 * -------------------------------------------------  --------------------- *
 模组pbo输出。
 ZABAP_MAKT-MAT​​NR ='100-100'。
 ZABAP_MAKT-SPRAS ='EN'。
 ZABAP_MAKT-MAKTX ='铅笔'。
 ENDMODULE。  " PBO输出

这是屏幕截图

11.jpg (43.4 kB)

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

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


我已经用Table Control制作了一个屏幕。 当我尝试激活时,它给我一个错误。 请告知。

 *&---------------------------------------------  ------------------------ *
 *&模块池ZABAP_PRACTICE2_MODULE
 *&
 *&------------------------------------------------  --------------------- *
 *&
 *&
 *&------------------------------------------------  --------------------- *

 程序zabap_practice2_module。

 表格ZABAP_MAKT。

 数据:v_matnr TYPE matnr,
        v_spras TYPE spras,
        v_maktx TYPE maktx。

 数据ok_code类型sy-ucomm。

 控件:使用屏幕101的TBCONTROL类型表。
 *&------------------------------------------------  --------------------- *
 *&模块GET_MAKTX INPUT
 *&------------------------------------------------  --------------------- *
 *文字
 * -------------------------------------------------  --------------------- *

 MODULE user_command_0101输入。

 ENDMODULE。  " USER_COMMAND_0101输入

 模块get_maktx输入。
   案例ok_code。
     当"提交"。
       清除ok_code。
       从makt到v_maktx中选择单个maktx,在其中matnr EQ v_matnr和spras EQ'E'。
   结束。
 ENDMODULE。





 *&------------------------------------------------  --------------------- *
 *&模块STATUS_0101输出
 *&------------------------------------------------  --------------------- *
 *文字
 * -------------------------------------------------  --------------------- *
 模块状态为_0101的输出。

   设置PF-STATUS'GUI100'。
   将标题栏设置为"标题"。


   数据:lv_values TYPE vrm_values,
          lv_value类似于lv_values的行。

   如果lv_values是INITIAL。

     lv_value-key ='100-100'。
     lv_value-text ='笔'。
     将lv_value附加到lv_values。

     lv_value-key ='100200hgfdjfgfdhjkl'。
     lv_value-text ='铅笔'。
     将lv_value附加到lv_values。

     lv_value-key ='100-600'。
     lv_value-text ='橡胶'。
     将lv_value附加到lv_values。

 万一。

   通话功能" VRM_SET_VALUES"
     出口
       id ='v_matnr'
       值= lv_values
     例外情况
       id_illegal_name = 1
       其他= 2。


   如果sy-subrc <> 0。
 *在这里实施适当的错误处理
   万一。



 ENDMODULE。  " STATUS_0101输出
    " GET_MAKTX INPUT
 *&------------------------------------------------  --------------------- *
 *&模块PBO输出
 *&------------------------------------------------  --------------------- *
 *文字
 * -------------------------------------------------  --------------------- *
 模组pbo输出。
 ZABAP_MAKT-MAT​​NR ='100-100'。
 ZABAP_MAKT-SPRAS ='EN'。
 ZABAP_MAKT-MAKTX ='铅笔'。
 ENDMODULE。  " PBO输出

这是屏幕截图

11.jpg (43.4 kB)
付费偷看设置
发送
5条回答
南山jay
1楼-- · 2020-08-13 20:27

您好 HS

线程处理类似的问题,这应该会有所帮助。 如果仍然无法解决,请粘贴屏幕布局

另一处修正:

在以下代码中使用大写字母:

调用功能'VRM_SET_VALUES'
     出口
       id ='v_matnr'--->必须为'V_MATNR'
       值= lv_values
     例外情况
       id_illegal_name = 1
       OTHERS = 2。

致谢!

打个大熊猫
2楼-- · 2020-08-13 20:36

MAKT-MANTR,MAKT-SPRAS,MAKT-MAKTX是表控件的一部分(列标题+ I/O字段), 所以我不明白为什么要将它们放在表格控件上方,并与其他屏幕字段混合在一起。

落灬小鱼
3楼-- · 2020-08-13 20:43

亲爱的 Satish Kumar 巴拉苏拉曼尼亚人先生,

我不明白为什么我的Listbox1开始显示那些MATNR作为新的列表框项目,而MANRT表中不提供MATNR(就像我上面的Pencil一样)?

请告知为什么会这样。

考虑

Doze时光
4楼-- · 2020-08-13 20:25

查看与标准dynpro DEMO_DYNPRO_TABCONT_LOOP_AT 0100的元素列表的区别:

名称类型行列DefLg VisLg高度
 航班表1 1 54 54 13
 TITEL文本1 0 9 53 1
 DEMO_CONN-CARRID文本1 1 2 3 1
 DEMO_CONN-CONNID文本1 2 9 4 1
 DEMO_CONN-CITYFROM文本1 3 11 20 1
 DEMO_CONN-CITYTO文本1 4 17 20 1
 DEMO_CONN-MARK检查1 0 1 1 1
 DEMO_CONN-CARRID I/O 1 1 3 3 1
 DEMO_CONN-CONNID I/O 1 2 4 4 1
 DEMO_CONN-CITYFROM I/O 1 3 20 20 1
 DEMO_CONN-CITYTO I/O 1 4 20 20 1
 OK_CODE OK 0 0 20 20 1 
愤怒的猪头君
5楼-- · 2020-08-13 20:35
HS ,请确保所有元素 在屏幕上和程序中具有相同的名称?

一周热门 更多>