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

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:45 .采纳回答

你好,伊林谭,

您正在定义MODIF ID,但未使用它。

您可以执行以下操作:

带有框架标题文本001的b1块的选择屏幕开始。
   参数:rb1 RADIOBUTTON GROUP rbg默认'X'用户命令uc,
               rb2 RADIOBUTTON GROUP rbg。
 块b的选择屏幕结束。

 带有标题标题文本002的b2块的选择屏幕开始。
   参数p1类型i修改ID 001。
   参数p2类型i修改ID 001。
 b2块的选择屏幕结束。

 带有标题标题文本003的b3块的选择屏幕开始。
   参数p3类型i修改ID 002。
 块b的选择屏幕结束。

 选择屏幕输出时。
   环视屏幕。
     案例" X"。
       当rb1。
         CASE屏幕组1。
           何时001。
             屏幕激活= 1。
           当002。
             屏幕有效= 0。
         结束。
       当rb2。
         CASE屏幕组1。
           何时001。
             屏幕有效= 0。
           当002。
             屏幕有效= 0。
         结束。
     结束。
     修改屏幕。
   结局。
 

在此示例中,我们将参数字段的控制权提供给用户。 当他选择单选按钮rb1时,我们仅显示p1,p2字段,而当他选择单选按钮rb2时,我们显示p3字段。 请注意,组件screen-group1带有每个字段的MODIF ID。

在该示例中,我们使用屏幕激活组件来隐藏字段。 如果您需要采取其他措施,而不是隐藏字段,则可以尝试使用屏幕结构。 您可以使用其他组件来满足您的需求。 在此处找到所有选项。

最后的笔记。 不要忘记,在声明单选按钮时的用户命令语句。 烦我一会儿...:-)

希望有帮助,

乔治

一周热门 更多>