如何解决在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:
Screen0120:
代码: ***
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.
解决方法
我必须在PBO上同时调用子屏幕110和120 在PAI上,我必须调用子屏幕110
我假设,因为每次我按下按钮PUSH时,仅在PBO调用子屏幕(在PAI处没有调用声明)就会再次调用子屏幕110,从而擦除先前的条目。
屏幕100的代码
PROCESS BEFORE OUTPUT.
MODULE status_0100.
CALL SUBSCREEN tabstrip_tab1_subscr INCLUDING sy-cprog '0110'.
CALL SUBSCREEN tabstrip_tab2_subscr INCLUDING sy-cprog '0120'.
PROCESS AFTER INPUT.
MODULE user_command_0100.
CALL SUBSCREEN tabstrip_tab1_subscr.
全局变量已移至TOP include。
屏幕110和120将没有新的菜单或代码。
屏幕120 PBO将具有以下计算: 结果= First_Value + Second_Value
在PAI上,我无法使用完整通话子屏幕方法:
CALL SUBSCREEN tabstrip_tab1_subscr INCLUDING sy-cprog '0110'.
为什么?
,您需要将元素名称指定为全局变量,例如GV_VALUE1和GV_VALUE2。 GUI自动显示变量值,并将输入的值分配给这些变量。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。