在单个选择程序中出现错误(错误:不允许本地SELECT-OPTIONS)

2020-08-31 18:55发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)尊敬的专家:我在以下程序中遇到以...

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

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


尊敬的专家:
我在以下程序中遇到以下错误,请您提出我必须纠正的建议。
错误:不允许本地SELECT-OPTIONS(FORM例程或GET事件处于活动状态)。 活动)。

报告Y_MESSAGE_SELECT_SINGLE。
表kna1。
kna1-kunnr的选择选项s_kunnr。
数据vi类型kna1-kunnr。
在选择屏幕上。
从kna1中选择单个kunnr。 进入vi,其中s_kunnr中的kunnr。
如果sy-subrc <> 0.
消息A000(ZSPT_8AM_MSG)带有'Invalid length'。
endif。

表vbak。
选择 -选项s_vbeln用于vbak-vbeln。
数据vi在选择屏幕上键入vbak-vbeln。

从vbak到vi中选择单个vbeln,其中s_vbeln中的vbeln。
如果s-subrc <> 0.
消息a000(ZSPT_8AM_MSG)带有'无效的客户'。
尾号。

表lfa1。
lfa1-lifnr的选择选项s_lifnr。
数据vi类型lfa1- lifnr。
在s_lifnr的选择屏幕上。
从lfa1到vi中选择单个lifnr,其中s_lifnr中的lifnr。
如果sy-subrc <> 0.
消息a000(ZSPT_8AM_MSG)带有'无效的供应商 '。
endif。

选择开始。
从kna1选择kunnr name1 ort01到表it_kna1中,其中s_kunnr中的kunnr。
选择结束。
如果p_ dis ='X'。
在it_kna1循环进入wa_kna1。
写入:/wa_kna1-kunnr,wa_kna1-name1,wa_kna1-ort01。
endloop。
如果p_nodis ='X'。 br>写入:"请选择复选框"。
结束符。
页面顶部。
写入" sy tech"。
页面末尾。
写入:'hs 30,高于deb'。

3条回答
当学会了学习
2020-08-31 19:43 .采纳回答

您好 kumar kumar

下次您发布代码时,请 确保您像我在下面那样使用CODE选项,以便您的代码可以很好地对齐并易于阅读。

现在回到您面临的错误:

原因是 您已经在AT SELECTION SCREEN EVENT中声明了Selection Screen参数。 这就是为什么由于不允许使用本地选择选项而导致错误的原因。

要了解的几个要点:

1)声明和选择屏幕参数必须是程序的初始部分。 特定的选择屏幕参数不应在程序中声明的任何显式事件开始后声明。

2)如果您具有用于数据声明,选择屏幕参数和其余子对象的单独包含,则这是最佳实践

3)您已经在选择屏幕事件中声明了Multiple,这不是必需的。

4)您在从未声明的程序中使用了Parameters。

< p>建议您在继续进行之前了解报表编程中事件的流程。 根据我对您要求的理解,我已更正了您的代码,建议您在继续进行操作之前先阅读代码。

表:vbak,kna1,lfa1。

 数据:v1 TYPE kna1-kunnr,
       v2 TYPE vbak-vbeln,
       v3 TYPE lfa1-lifnr。


 选择选项:s_kunnr FOR kna1-kunnr,
                 s_vbeln FOR vbak-vbeln,
                 s_lifnr FOR lfa1-lifnr。

 参数:p_dis类型c为复选框。

 在选择屏幕上。

   从kna1到v1中选择单个kunnr,在s_kunnr中选择kunnr。
   如果sy-subrc <> 0。
     消息a000(zspt_8am_msg)带有"无效长度"。
   万一。

   从vbak选择单个vbeln到v2,在s_vbeln中的vbeln中。
   如果sy-subrc <> 0。
     消息" a000(zspt_8am_msg)",带有"无效客户"。
   万一。

 在s_lifnr上的SELECTION屏幕上。

   在s_lifnr中的lfnr中,从lfa1选择单个lifnr。
   如果sy-subrc <> 0。
     消息a000(zspt_8am_msg)中包含"无效的供应商"。
   万一。

 选择开始。

   选择kunnr,
          名称1
          ort01
   从kna1
   插入表@DATA(it_kna1)
   在@s_kunnr中的kunnr。
  
   IF Sy-subrc均衡器0。
    KUNNR的SORT IT_KNA1。
   万一。

 选择结束。

   如果p_dis ='X'。
     循环到it_kna1 INTO DATA(wa_kna1)。
       写:/wa_kna1-kunnr,wa_kna1-name1,wa_kna1-ort01。
     结局。
   其他。
     写:'请选择复选框'。
   万一。

 页面顶部。
   写" sy tech"。

 页末。
   WRITE:" hs 30,高于deb"。

致谢!

一周热门 更多>