在选择屏幕子屏幕中禁用字段

2020-08-14 01:14发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我当前正在创建一个模块池...

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

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


你好

我当前正在创建一个模块池程序,该程序使用子屏幕作为选择屏幕。 目前,我有3个子屏幕:子屏幕1-单选按钮组
子屏幕2-手动输入数据
子屏幕3-上传excel文件路径

我要根据子屏幕1中的选择来禁用子屏幕2和3中的字段。有什么方法可以执行此操作? 我尝试将其输入到PBO和PAI中,但是似乎没有任何效果。

 IF p_manual ='X'。  "如果用户选择手动输入
   环视屏幕。
       如果屏幕名称='p_vers'。
         屏幕输入='1'。
         修改屏幕。
       万一。
       如果屏幕名称='p_file'。
         屏幕输入='0'。
         修改屏幕。
       万一。
       结局。

     ELSEIF p_excel ='X'。  "如果用户要上传文件
     环视屏幕。
       如果屏幕名称='p_vers'。
         屏幕输入='0'。
         修改屏幕。
       万一。
       如果屏幕名称='p_file'。
         屏幕输入='1'。
         修改屏幕。
       万一。
     结局。
     ENDIF。

我用于选择屏幕的代码是:

屏幕9210的" SELECTED-SCREEN"开始于用户。
 带有标题标题文本030的b3块的选择屏幕开始。  "上传选项
 参数:
   p_manual RADIOBUTTON GROUP grp3,"手动上传
   p_excel RADIOBUTTON GROUP grp3默认值'X'。  " excel/平面文件上传
 块b的选择屏幕结束。
 屏幕的选择屏幕结束9210。

 屏幕9230的选择屏幕作为订阅者开始。
 带标题标题文本050的b5块的选择屏幕开始。  "手动选择
 参数:
   p_vers TYPE zbi_fin_consol-version MODIF ID upm,"公司代码
   p_year TYPE zbi_fin_consol-zyear MODIF ID更新。  "顾客
 选择选项:
   s_month FOR zbi_fin_consol-zmonth强制性修改ID upm。
 选择屏幕结束b5。
 屏幕9230的选择屏幕结束。

 屏幕9240的"选择屏幕"开始为用户。
 带标题标题文本060的b6块的选择屏幕开始。  " excel上传
 参数:
   p_file TYPE rlgrap-filename MODIF ID upf," filepath
   p_test RADIOBUTTON GROUP grp5 MODIF ID upf,"测试文件
   p_upload RADIOBUTTON GROUP grp5修改ID upf。  "上传数据

 选择屏幕结束b6。
 屏幕9240的选择屏幕结束。

我在屏幕上显示的PBO和PAI代码是:

输出前的过程。
  模块状态_9100。
 调用包括sy-repid'9210'的子屏幕area_option。
 调用子屏幕area_manual,包括sy-repid'9230'。
 呼叫子画面area_excel,包括sy-repid'9240'。
 模块Modify_screen_9200_pbo。

 输入后的过程。
 在EXIT-COMMAND处取消模块。
  模组USER_COMMAND_9200。
 调用子屏幕area_option。
 调用子屏幕area_manual。
 调用子屏幕area_excel。
 模块Modify_screen_9200_pai。
6条回答
悠然的二货
2020-08-14 01:32

您好 Yi Lin Tan

SELECTION-SCREEN PBO事件在定义了选择屏幕的报表的AT SELECTION-SCREEN OUTPUT事件中处理。 您需要执行相同的操作。

在"选择屏幕输出"中。
   如果p_manual = abap_true。
     在这里进行一些屏幕修改
   ENDIF。

此外,您的LOOP AT屏幕逻辑中的字段名称应为大写。

 IF p_manual ='X'。  "如果用户选择手动输入
   环视屏幕。
       如果屏幕名称='P_VERS'。  " <-大写
         屏幕输入='1'。
         修改屏幕。
       万一。
       如果屏幕名称='P_FILE'。  " <-大写
         屏幕输入='0'。
         修改屏幕。
       万一。
       ENDLOOP。
亲切的问候,
Mateusz

一周热门 更多>