在Tabstrip控件中包含的文本框中访问和分配值

问题描述

在ABAP中,我建立了3个屏幕:0100、0110、0120

屏幕0100是带有2个选项卡的Tabstrip控件(每个选项卡都包含一个子屏幕)。 屏幕0100呼叫屏幕0110

屏幕0110包含两个文本框:value1,value2和一个按钮 按下按钮会将我带到包含文本框结果的Tabstrip的tab2。

我想添加textbox(值1)和textbox(值2)的值,并将结果分配到textbox(结果)中。

问题)如何访问TabstripControlTab1-Subscreen-Textbox1(value1)和TabstripControlTab1-Subscreen-Textbox2(value2)中存在的值,并将计算出的值分配给TabstripControlTab2-Subscreen-Textbox1(result)?

我在程序的TopInclude中声明了与文本框控件同名的变量:value1,value2,结果均为整数类型,但不知何故文本框中的值不会反映到ABAP程序变量中。

Screen0110:

enter image description here

Screen0120:

enter image description here


代码: ***

Main Program: 

INCLUDE Z_DEMOSCREEN_TOP.    " global Data

*Screen 110 Include:
INCLUDE Z_DEMOSCREEN_STATUS_0100O01.
INCLUDE Z_DEMOSCREEN_USER_COMD_010I01.

*Screen 120 Include:
INCLUDE Z_DEMOSCREEN_STATUS_0110O01.
INCLUDE Z_DEMOSCREEN_USER_CMD_011I01.

START-OF-SELECTION.

CALL SCREEN 100.

*&---------------------------------------------------------------------*
*& Include Z_DEMOSCREEN_TOP          Module Pool      Z_DEMOSCREEN
*&
*&---------------------------------------------------------------------*

PROGRAM  Z_DEMOSCREEN.
DATA:
FIRST_VALUE TYPE C,SECOND_VALUE TYPE I,RESULT TYPE I,ok_code LIKE sy-ucomm.
CONTROLS tabstrip TYPE TABSTRIP.

*****Screen 100:*****
PROCESS BEFORE OUTPUT.
 MODULE STATUS_0100.
 CALL SUBSCREEN TABSTRIP_TAB1_SUBSCR INCLUDING sy-cprog '0110'.


PROCESS AFTER INPUT.
 MODULE USER_COMMAND_0100.

module USER_COMMAND_0100 input.
  CLEAR: ok_code.
  ok_code = sy-ucomm.

  CASE ok_code.
    WHEN 'TAB1' OR 'TAB2'.
      tabstrip-activetab = ok_code.
    WHEN 'ADD'.
      tabstrip-activetab = 'TAB2'.
    WHEN 'BACK'.
      LEAVE TO SCREEN 0.
    WHEN 'CANCEL'.
      LEAVE TO SCREEN 0.
    WHEN 'EXIT'.
      LEAVE TO SCREEN 0.
  ENDCASE.
endmodule.     

*** Screen 110***
PROCESS BEFORE OUTPUT.
 MODULE STATUS_0200.
*
PROCESS AFTER INPUT.
 MODULE USER_COMMAND_0200.

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)