*---------------------------------------------------------------*
* Report ZCOLCULATOR_97
*---------------------------------------------------------------*
*
*---------------------------------------------------------------*
REPORT YCOLCULATOR_97
NO STANDARD PAGE HEADING.
*---------------------------------------------------------------*
* 定义变量
*---------------------------------------------------------------*
DATA:
GV_INPUT1 TYPE P LENGTH 6 DECIMALS 2, "整数
GV_POINT1 TYPE C LENGTH 1, "小数点
GV_INP_D1 TYPE P LENGTH 2, "小数
GV_INPUT2 TYPE P LENGTH 6 DECIMALS 2, "整数
GV_POINT2 TYPE C LENGTH 1, "小数点
GV_INP_D2 TYPE P LENGTH 2, "小数
GV_SIMBOL TYPE C LENGTH 1, "符号
GV_OUTPUT TYPE P LENGTH 6 DECIMALS 2. "输出
*---------------------------------------------------------------*
* 定义选择屏幕
*---------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF SCREEN 1 AS WINDOW TITLE TEXT-999. "計算機
*** 入力框 ***
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(5) TEXT-001 FOR FIELD P_INPUT1. "入力値
PARAMETERS:
P_INPUT1 TYPE P LENGTH 2 DECIMALS 0, "前整数位
P_POINT1 TYPE C LENGTH 1, "前小数点
P_INP_D1 TYPE C LENGTH 3, "前小数位
P_SIMBOL TYPE C LENGTH 3, "符号
P_INPUT2 TYPE P LENGTH 2 DECIMALS 0, "后整数位
P_POINT2 TYPE C LENGTH 1, "后小数点
P_INP_D2 TYPE C LENGTH 3. "后小数位
SELECTION-SCREEN END OF LINE.
* ** 出力框 ***
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(5) TEXT-002 FOR FIELD P_OUTPUT. "出力値
PARAMETERS P_OUTPUT TYPE P LENGTH 10 DECIMALS 5.
SELECTION-SCREEN END OF LINE.
*** 定义按钮 ***
SELECTION-SCREEN:
PUSHBUTTON /7(5) BUT_AC USER-COMMAND BUTAC , "A C"
PUSHBUTTON 13(5) BUT_POM USER-COMMAND BUTPOM , "+/_"
PUSHBUTTON 19(5) BUT_PER USER-COMMAND BUTPER , " % "
PUSHBUTTON 25(7) BUT_DVD USER-COMMAND BUTDVD , "÷"
PUSHBUTTON /7(5) BUT_7 USER-COMMAND BUT7 , "7"
PUSHBUTTON 13(5) BUT_8 USER-COMMAND BUT8 , "8"
PUSHBUTTON 19(5) BUT_9 USER-COMMAND BUT9 , "9"
PUSHBUTTON 25(7) BUT_MUT USER-COMMAND BUTMUT , "×"
PUSHBUTTON /7(5) BUT_4 USER-COMMAND BUT4 , "4"
PUSHBUTTON 13(5) BUT_5 USER-COMMAND BUT5 , "5"
PUSHBUTTON 19(5) BUT_6 USER-COMMAND BUT6 , "6"
PUSHBUTTON 25(7) BUT_MIN USER-COMMAND BUTMIN , "-"
PUSHBUTTON /7(5) BUT_1 USER-COMMAND BUT1 , "1"
PUSHBUTTON 13(5) BUT_2 USER-COMMAND BUT2 , "2"
PUSHBUTTON 19(5) BUT_3 USER-COMMAND BUT3 , "3"
PUSHBUTTON 25(7) BUT_PLS USER-COMMAND BUTPLS , "+"
PUSHBUTTON /7(5) BUT_0 USER-COMMAND BUT0 , "0"
PUSHBUTTON 13(5) BUT_PON USER-COMMAND BUTPON , "."
PUSHBUTTON 19(13) BUT_EQ USER-COMMAND BUTEQ . "="
*** 赋值按钮 ***
BUT_1 = '1'.
BUT_2 = '2'.
BUT_3 = '3'.
BUT_4 = '4'.
BUT_5 = '5'.
BUT_6 = '6'.
BUT_7 = '7'.
BUT_8 = '8'.
BUT_9 = '9'.
BUT_0 = '0'.
BUT_PON = '.'.
BUT_PLS = '+'.
BUT_MIN = '-'.
BUT_MUT = '×'.
BUT_DVD = '÷'.
BUT_EQ = '='.
BUT_POM = '+/-'.
BUT_PER = '%'.
BUT_AC = 'AC'.
SELECTION-SCREEN END OF SCREEN 1.
CALL SCREEN 1 STARTING AT 1 1 ENDING AT 35 8. "子屏幕呼出
*---------------------------------------------------------------*
* 定义入力内容
*---------------------------------------------------------------*
AT SELECTION-SCREEN.
*** 输入 第一行 整数 ***
IF P_INPUT1 = '1'
AND P_POINT1 = SPACE
AND P_SIMBOL = SPACE.
CASE SY-UCOMM.
WHEN 'BUT0'.
GV_INPUT1 = '10'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT1'.
GV_INPUT1 = '11'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT2'.
GV_INPUT1 = '12'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT3'.
GV_INPUT1 = '13'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT4'.
GV_INPUT1 = '14'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT5'.
GV_INPUT1 = '15'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT6'.
GV_INPUT1 = '16'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT7'.
GV_INPUT1 = '17'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT8'.
GV_INPUT1 = '18'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT9'.
GV_INPUT1 = '19'.
P_INPUT1 = GV_INPUT1.
ENDCASE.
ENDIF.
IF P_INPUT1 = '2'
AND P_POINT1 = SPACE
AND P_SIMBOL = SPACE.
CASE SY-UCOMM.
WHEN 'BUT0'.
GV_INPUT1 = '20'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT1'.
GV_INPUT1 = '21'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT2'.
GV_INPUT1 = '22'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT3'.
GV_INPUT1 = '23'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT4'.
GV_INPUT1 = '24'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT5'.
GV_INPUT1 = '25'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT6'.
GV_INPUT1 = '26'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT7'.
GV_INPUT1 = '27'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT8'.
GV_INPUT1 = '28'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT9'.
GV_INPUT1 = '29'.
P_INPUT1 = GV_INPUT1.
ENDCASE.
ENDIF.
IF P_INPUT1 = '3'
AND P_POINT1 = SPACE
AND P_SIMBOL = SPACE.
CASE SY-UCOMM.
WHEN 'BUT0'.
GV_INPUT1 = '30'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT1'.
GV_INPUT1 = '31'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT2'.
GV_INPUT1 = '32'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT3'.
GV_INPUT1 = '33'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT4'.
GV_INPUT1 = '34'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT5'.
GV_INPUT1 = '35'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT6'.
GV_INPUT1 = '36'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT7'.
GV_INPUT1 = '37'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT8'.
GV_INPUT1 = '38'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT9'.
GV_INPUT1 = '39'.
P_INPUT1 = GV_INPUT1.
ENDCASE.
ENDIF.
IF P_INPUT1 = '4'
AND P_POINT1 = SPACE
AND P_SIMBOL = SPACE.
CASE SY-UCOMM.
WHEN 'BUT0'.
GV_INPUT1 = '40'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT1'.
GV_INPUT1 = '41'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT2'.
GV_INPUT1 = '42'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT3'.
GV_INPUT1 = '43'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT4'.
GV_INPUT1 = '44'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT5'.
GV_INPUT1 = '45'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT6'.
GV_INPUT1 = '46'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT7'.
GV_INPUT1 = '47'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT8'.
GV_INPUT1 = '48'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT9'.
GV_INPUT1 = '49'.
P_INPUT1 = GV_INPUT1.
ENDCASE.
ENDIF.
IF P_INPUT1 = '5'
AND P_POINT1 = SPACE
AND P_SIMBOL = SPACE.
CASE SY-UCOMM.
WHEN 'BUT0'.
GV_INPUT1 = '50'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT1'.
GV_INPUT1 = '51'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT2'.
GV_INPUT1 = '52'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT3'.
GV_INPUT1 = '53'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT4'.
GV_INPUT1 = '54'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT5'.
GV_INPUT1 = '55'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT6'.
GV_INPUT1 = '56'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT7'.
GV_INPUT1 = '57'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT8'.
GV_INPUT1 = '58'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT9'.
GV_INPUT1 = '59'.
P_INPUT1 = GV_INPUT1.
ENDCASE.
ENDIF.
IF P_INPUT1 = '6'
AND P_POINT1 = SPACE
AND P_SIMBOL = SPACE.
CASE SY-UCOMM.
WHEN 'BUT0'.
GV_INPUT1 = '60'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT1'.
GV_INPUT1 = '61'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT2'.
GV_INPUT1 = '62'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT3'.
GV_INPUT1 = '63'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT4'.
GV_INPUT1 = '64'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT5'.
GV_INPUT1 = '65'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT6'.
GV_INPUT1 = '66'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT7'.
GV_INPUT1 = '67'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT8'.
GV_INPUT1 = '68'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT9'.
GV_INPUT1 = '69'.
P_INPUT1 = GV_INPUT1.
ENDCASE.
ENDIF.
IF P_INPUT1 = '7'
AND P_POINT1 = SPACE
AND P_SIMBOL = SPACE.
CASE SY-UCOMM.
WHEN 'BUT0'.
GV_INPUT1 = '70'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT1'.
GV_INPUT1 = '71'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT2'.
GV_INPUT1 = '72'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT3'.
GV_INPUT1 = '73'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT4'.
GV_INPUT1 = '74'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT5'.
GV_INPUT1 = '75'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT6'.
GV_INPUT1 = '76'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT7'.
GV_INPUT1 = '77'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT8'.
GV_INPUT1 = '78'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT9'.
GV_INPUT1 = '79'.
P_INPUT1 = GV_INPUT1.
ENDCASE.
ENDIF.
IF P_INPUT1 = '8'
AND P_POINT1 = SPACE
AND P_SIMBOL = SPACE.
CASE SY-UCOMM.
WHEN 'BUT0'.
GV_INPUT1 = '80'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT1'.
GV_INPUT1 = '81'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT2'.
GV_INPUT1 = '82'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT3'.
GV_INPUT1 = '83'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT4'.
GV_INPUT1 = '84'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT5'.
GV_INPUT1 = '85'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT6'.
GV_INPUT1 = '86'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT7'.
GV_INPUT1 = '87'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT8'.
GV_INPUT1 = '88'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT9'.
GV_INPUT1 = '89'.
P_INPUT1 = GV_INPUT1.
ENDCASE.
ENDIF.
IF P_INPUT1 = '9'
AND P_POINT1 = SPACE
AND P_SIMBOL = SPACE.
CASE SY-UCOMM.
WHEN 'BUT0'.
GV_INPUT1 = '90'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT1'.
GV_INPUT1 = '91'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT2'.
GV_INPUT1 = '92'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT3'.
GV_INPUT1 = '93'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT4'.
GV_INPUT1 = '94'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT5'.
GV_INPUT1 = '95'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT6'.
GV_INPUT1 = '96'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT7'.
GV_INPUT1 = '97'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT8'.
GV_INPUT1 = '98'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT9'.
GV_INPUT1 = '99'.
P_INPUT1 = GV_INPUT1.
ENDCASE.
ENDIF.
IF P_INPUT1 = SPACE
AND P_POINT1 = SPACE .
CASE SY-UCOMM.
*** 输入符号前数字 ***
WHEN 'BUT0'.
GV_INPUT1 = '0'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT1'.
GV_INPUT1 = '1'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT2'.
GV_INPUT1 = '2'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT3'.
GV_INPUT1 = '3'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT4'.
GV_INPUT1 = '4'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT5'.
GV_INPUT1 = '5'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT6'.
GV_INPUT1 = '6'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT7'.
GV_INPUT1 = '7'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT8'.
GV_INPUT1 = '8'.
P_INPUT1 = GV_INPUT1.
WHEN 'BUT9'.
GV_INPUT1 = '9'.
P_INPUT1 = GV_INPUT1.
*** 未输入数字先输入符号 ***
WHEN 'BUTPLS'.
MESSAGE '请先输入数字。' TYPE 'I' DISPLAY LIKE 'A'.
LEAVE LIST-PROCESSING.
WHEN 'BUTMIN'.
MESSAGE '请先输入数字。' TYPE 'I' DISPLAY LIKE 'A'.
LEAVE LIST-PROCESSING.
WHEN 'BUTMUT'.
MESSAGE '请先输入数字。' TYPE 'I' DISPLAY LIKE 'A'.
LEAVE LIST-PROCESSING.
WHEN 'BUTDVD'.
MESSAGE '请先输入数字。' TYPE 'I' DISPLAY LIKE 'A'.
LEAVE LIST-PROCESSING.
WHEN OTHERS.
ENDCASE.
ENDIF.
*** 输入 第一行 小数点 ***
IF P_INPUT1 <> SPACE
AND P_SIMBOL = SPACE.
CASE SY-UCOMM.
WHEN 'BUTPON'.
P_POINT1 = '.'.
ENDCASE.
ENDIF.
*** 输入 第一行 小数 ***
IF P_INPUT1 <> SPACE
AND P_POINT1 <> SPACE
AND P_SIMBOL = SPACE
AND P_INP_D1 = '1'.
CASE SY-UCOMM.
WHEN 'BUT1'.
GV_INPUT1 = P_INPUT1 + 11 / 100.
P_INP_D1 = '11'.
WHEN 'BUT2'.
GV_INPUT1 = P_INPUT1 + 12 / 100.
P_INP_D1 = '12'.
WHEN 'BUT3'.
GV_INPUT1 = P_INPUT1 + 13 / 100.
P_INP_D1 = '13'.
WHEN 'BUT4'.
GV_INPUT1 = P_INPUT1 + 14 / 100.
P_INP_D1 = '14'.
WHEN 'BUT5'.
GV_INPUT1 = P_INPUT1 + 15 / 100.
P_INP_D1 = '15'.
WHEN 'BUT6'.
GV_INPUT1 = P_INPUT1 + 16 / 100.
P_INP_D1 = '16'.
WHEN 'BUT7'.
GV_INPUT1 = P_INPUT1 + 17 / 100.
P_INP_D1 = '17'.
WHEN 'BUT8'.
GV_INPUT1 = P_INPUT1 + 18 / 100.
P_INP_D1 = '18'.
WHEN 'BUT9'.
GV_INPUT1 = P_INPUT1 + 19 / 100.
P_INP_D1 = '19'.
WHEN 'BUT0'.
GV_INPUT1 = P_INPUT1 + 10 / 100.
P_INP_D1 = '10'.
ENDCASE.
ENDIF.
IF P_INPUT1 <> SPACE
AND P_POINT1 <> SPACE
AND P_SIMBOL = SPACE
AND P_INP_D1 = '2'.
CASE SY-UCOMM.
WHEN 'BUT1'.
GV_INPUT1 = P_INPUT1 + 21 / 100.
P_INP_D1 = '21'.
WHEN 'BUT2'.
GV_INPUT1 = P_INPUT1 + 22 / 100.
P_INP_D1 = '22'.
WHEN 'BUT3'.
GV_INPUT1 = P_INPUT1 + 23 / 100.
P_INP_D1 = '23'.
WHEN 'BUT4'.
GV_INPUT1 = P_INPUT1 + 24 / 100.
P_INP_D1 = '24'.
WHEN 'BUT5'.
GV_INPUT1 = P_INPUT1 + 25 / 100.
P_INP_D1 = '25'.
WHEN 'BUT6'.
GV_INPUT1 = P_INPUT1 + 26 / 100.
P_INP_D1 = '26'.
WHEN 'BUT7'.
GV_INPUT1 = P_INPUT1 + 27 / 100.
P_INP_D1 = '27'.
WHEN 'BUT8'.
GV_INPUT1 = P_INPUT1 + 28 / 100.
P_INP_D1 = '28'.
WHEN 'BUT9'.
GV_INPUT1 = P_INPUT1 + 29 / 100.
P_INP_D1 = '29'.
WHEN 'BUT0'.
GV_INPUT1 = P_INPUT1 + 20 / 100.
P_INP_D1 = '20'.
ENDCASE.
ENDIF.
IF P_INPUT1 <> SPACE
AND P_POINT1 <> SPACE
AND P_SIMBOL = SPACE
AND P_INP_D1 = '3'.
CASE SY-UCOMM.
WHEN 'BUT1'.
GV_INPUT1 = P_INPUT1 + 31 / 100.
P_INP_D1 = '31'.
WHEN 'BUT2'.
GV_INPUT1 = P_INPUT1 + 32 / 100.
P_INP_D1 = '32'.
WHEN 'BUT3'.
GV_INPUT1 = P_INPUT1 + 33 / 100.
P_INP_D1 = '33'.
WHEN 'BUT4'.
GV_INPUT1 = P_INPUT1 + 34 / 100.
P_INP_D1 = '34'.
WHEN 'BUT5'.
GV_INPUT1 = P_INPUT1 + 35 / 100.
P_INP_D1 = '35'.
WHEN 'BUT6'.
GV_INPUT1 = P_INPUT1 + 36 / 100.
P_INP_D1 = '36'.
WHEN 'BUT7'.
GV_INPUT1 = P_INPUT1 + 37 / 100.
P_INP_D1 = '37'.
WHEN 'BUT8'.
GV_INPUT1 = P_INPUT1 + 38 / 100.
P_INP_D1 = '38'.
WHEN 'BUT9'.
GV_INPUT1 = P_INPUT1 + 39 / 100.
P_INP_D1 = '39'.
WHEN 'BUT0'.
GV_INPUT1 = P_INPUT1 + 30 / 100.
P_INP_D1 = '30'.
ENDCASE.
ENDIF.
IF P_INPUT1 <> SPACE
AND P_POINT1 <> SPACE
AND P_SIMBOL = SPACE
AND P_INP_D1 = '4'.
CASE SY-UCOMM.
WHEN 'BUT1'.
GV_INPUT1 = P_INPUT1 + 41 / 100.
P_INP_D1 = '41'.
WHEN 'BUT2'.
GV_INPUT1 = P_INPUT1 + 42 / 100.
P_INP_D1 = '42'.
WHEN 'BUT3'.
GV_INPUT1 = P_INPUT1 + 43 / 100.
P_INP_D1 = '43'.
WHEN 'BUT4'.
GV_INPUT1 = P_INPUT1 + 44 / 100.
P_INP_D1 = '44'.
WHEN 'BUT5'.
GV_INPUT1 = P_INPUT1 + 45 / 100.
P_INP_D1 = '45'.
WHEN 'BUT6'.
GV_INPUT1 = P_INPUT1 + 46 / 100.
P_INP_D1 = '46'.
WHEN 'BUT7'.
GV_INPUT1 = P_INPUT1 + 47 / 100.
P_INP_D1 = '47'.
WHEN 'BUT8'.
GV_INPUT1 = P_INPUT1 + 48 / 100.
P_INP_D1 = '48'.
WHEN 'BUT9'.
GV_INPUT1 = P_INPUT1 + 49 / 100.
P_INP_D1 = '49'.
WHEN 'BUT0'.
GV_INPUT1 = P_INPUT1 + 40 / 100.
P_INP_D1 = '40'.
ENDCASE.
ENDIF.
IF P_INPUT1 <> SPACE
AND P_POINT1 <> SPACE
AND P_SIMBOL = SPACE
AND P_INP_D1 = '5'.
CASE SY-UCOMM.
WHEN 'BUT1'.
GV_INPUT1 = P_INPUT1 + 51 / 100.
P_INP_D1 = '51'.
WHEN 'BUT2'.
GV_INPUT1 = P_INPUT1 + 52 / 100.
P_INP_D1 = '52'.
WHEN 'BUT3'.
GV_INPUT1 = P_INPUT1 + 53 / 100.
P_INP_D1 = '53'.
WHEN 'BUT4'.
GV_INPUT1 = P_INPUT1 + 54 / 100.
P_INP_D1 = '54'.
WHEN 'BUT5'.
GV_INPUT1 = P_INPUT1 + 55 / 100.
P_INP_D1 = '55'.
WHEN 'BUT6'.
GV_INPUT1 = P_INPUT1 + 56 / 100.
P_INP_D1 = '56'.
WHEN 'BUT7'.
GV_INPUT1 = P_INPUT1 + 57 / 100.
P_INP_D1 = '57'.
WHEN 'BUT8'.
GV_INPUT1 = P_INPUT1 + 58 / 100.
P_INP_D1 = '58'.
WHEN 'BUT9'.
GV_INPUT1 = P_INPUT1 + 59 / 100.
P_INP_D1 = '59'.
WHEN 'BUT0'.
GV_INPUT1 = P_INPUT1 + 50 / 100.
P_INP_D1 = '50'.
ENDCASE.
ENDIF.
IF P_INPUT1 <> SPACE
AND P_POINT1 <> SPACE
AND P_SIMBOL = SPACE
AND P_INP_D1 = '6'.
CASE SY-UCOMM.
WHEN 'BUT1'.
GV_INPUT1 = P_INPUT1 + 61 / 100.
P_INP_D1 = '61'.
WHEN 'BUT2'.
GV_INPUT1 = P_INPUT1 + 62 / 100.
P_INP_D1 = '62'.
WHEN 'BUT3'.
GV_INPUT1 = P_INPUT1 + 63 / 100.
P_INP_D1 = '63'.
WHEN 'BUT4'.
GV_INPUT1 = P_INPUT1 + 64 / 100.
P_INP_D1 = '64'.
WHEN 'BUT5'.
GV_INPUT1 = P_INPUT1 + 65 / 100.
P_INP_D1 = '65'.
WHEN 'BUT6'.
GV_INPUT1 = P_INPUT1 + 66 / 100.
P_INP_D1 = '66'.
WHEN 'BUT7'.
GV_INPUT1 = P_INPUT1 + 67 / 100.
P_INP_D1 = '67'.
WHEN 'BUT8'.
GV_INPUT1 = P_INPUT1 + 68 / 100.
P_INP_D1 = '68'.
WHEN 'BUT9'.
GV_INPUT1 = P_INPUT1 + 69 / 100.
P_INP_D1 = '69'.
WHEN 'BUT0'.
GV_INPUT1 = P_INPUT1 + 60 / 100.
P_INP_D1 = '60'.
ENDCASE.
ENDIF.
IF P_INPUT1 <> SPACE
AND P_POINT1 <> SPACE
AND P_SIMBOL = SPACE
AND P_INP_D1 = '7'.
CASE SY-UCOMM.
WHEN 'BUT1'.
GV_INPUT1 = P_INPUT1 + 71 / 100.
P_INP_D1 = '71'.
WHEN 'BUT2'.
GV_INPUT1 = P_INPUT1 + 72 / 100.
P_INP_D1 = '72'.
WHEN 'BUT3'.
GV_INPUT1 = P_INPUT1 + 73 / 100.
P_INP_D1 = '73'.
WHEN 'BUT4'.
GV_INPUT1 = P_INPUT1 + 74 / 100.
P_INP_D1 = '74'.
WHEN 'BUT5'.
GV_INPUT1 = P_INPUT1 + 75 / 100.
P_INP_D1 = '75'.
WHEN 'BUT6'.
GV_INPUT1 = P_INPUT1 + 76 / 100.
P_INP_D1 = '76'.
WHEN 'BUT7'.
GV_INPUT1 = P_INPUT1 + 77 / 100.
P_INP_D1 = '77'.
WHEN 'BUT8'.
GV_INPUT1 = P_INPUT1 + 78 / 100.
P_INP_D1 = '78'.
WHEN 'BUT9'.
GV_INPUT1 = P_INPUT1 + 79 / 100.
P_INP_D1 = '79'.
WHEN 'BUT0'.
GV_INPUT1 = P_INPUT1 + 70 / 100.
P_INP_D1 = '70'.
ENDCASE.
ENDIF.
IF P_INPUT1 <> SPACE
AND P_POINT1 <> SPACE
AND P_SIMBOL = SPACE
AND P_INP_D1 = '8'.
CASE SY-UCOMM.
WHEN 'BUT1'.
GV_INPUT1 = P_INPUT1 + 81 / 100.
P_INP_D1 = '81'.
WHEN 'BUT2'.
GV_INPUT1 = P_INPUT1 + 82 / 100.
P_INP_D1 = '82'.
WHEN 'BUT3'.
GV_INPUT1 = P_INPUT1 + 83 / 100.
P_INP_D1 = '83'.
WHEN 'BUT4'.
GV_INPUT1 = P_INPUT1 + 84 / 100.
P_INP_D1 = '84'.
WHEN 'BUT5'.
GV_INPUT1 = P_INPUT1 + 85 / 100.
P_INP_D1 = '85'.
WHEN 'BUT6'.
GV_INPUT1 = P_INPUT1 + 86 / 100.
P_INP_D1 = '86'.
WHEN 'BUT7'.
GV_INPUT1 = P_INPUT1 + 87 / 100.
P_INP_D1 = '87'.
WHEN 'BUT8'.
GV_INPUT1 = P_INPUT1 + 88 / 100.
P_INP_D1 = '88'.
WHEN 'BUT9'.
GV_INPUT1 = P_INPUT1 + 89 / 100.
P_INP_D1 = '89'.
WHEN 'BUT0'.
GV_INPUT1 = P_INPUT1 + 80 / 100.
P_INP_D1 = '80'.
ENDCASE.
ENDIF.
IF P_INPUT1 <> SPACE
AND P_POINT1 <> SPACE
AND P_SIMBOL = SPACE
AND P_INP_D1 = '9'.
CASE SY-UCOMM.
WHEN 'BUT1'.
GV_INPUT1 = P_INPUT1 + 91 / 100.
P_INP_D1 = '91'.
WHEN 'BUT2'.
GV_INPUT1 = P_INPUT1 + 92 / 100.
P_INP_D1 = '92'.
WHEN 'BUT3'.
GV_INPUT1 = P_INPUT1 + 93 / 100.
P_INP_D1 = '93'.
WHEN 'BUT4'.
GV_INPUT1 = P_INPUT1 + 94 / 100.
P_INP_D1 = '94'.
WHEN 'BUT5'.
GV_INPUT1 = P_INPUT1 + 95 / 100.
P_INP_D1 = '95'.
WHEN 'BUT6'.
GV_INPUT1 = P_INPUT1 + 96 / 100.
P_INP_D1 = '96'.
WHEN 'BUT7'.
GV_INPUT1 = P_INPUT1 + 97 / 100.
P_INP_D1 = '97'.
WHEN 'BUT8'.
GV_INPUT1 = P_INPUT1 + 98 / 100.
P_INP_D1 = '98'.
WHEN 'BUT9'.
GV_INPUT1 = P_INPUT1 + 99 / 100.
P_INP_D1 = '99'.
WHEN 'BUT0'.
GV_INPUT1 = P_INPUT1 + 90 / 100.
P_INP_D1 = '90'.
ENDCASE.
ENDIF.
IF P_INPUT1 <> SPACE
AND P_POINT1 <> SPACE
AND P_SIMBOL = SPACE
AND P_INP_D1 = 'O'.
CASE SY-UCOMM.
WHEN 'BUT1'.
GV_INPUT1 = P_INPUT1 + 1 / 100.
P_INP_D1 = 'O1'.
WHEN 'BUT2'.
GV_INPUT1 = P_INPUT1 + 2 / 100.
P_INP_D1 = 'O2'.
WHEN 'BUT3'.
GV_INPUT1 = P_INPUT1 + 3 / 100.
P_INP_D1 = 'O3'.
WHEN 'BUT4'.
GV_INPUT1 = P_INPUT1 + 4 / 100.
P_INP_D1 = 'O4'.
WHEN 'BUT5'.
GV_INPUT1 = P_INPUT1 + 5 / 100.
P_INP_D1 = 'O5'.
WHEN 'BUT6'.
GV_INPUT1 = P_INPUT1 + 6 / 100.
P_INP_D1 = 'O6'.
WHEN 'BUT7'.
GV_INPUT1 = P_INPUT1 + 7 / 100.
P_INP_D1 = 'O7'.
WHEN 'BUT8'.
GV_INPUT1 = P_INPUT1 + 8 / 100.
P_INP_D1 = 'O8'.
WHEN 'BUT9'.
GV_INPUT1 = P_INPUT1 + 9 / 100.
P_INP_D1 = 'O9'.
WHEN 'BUT0'.
GV_INPUT1 = P_INPUT1 + 0 / 100.
P_INP_D1 = 'OO'.
ENDCASE.
ENDIF.
IF P_INPUT1 <> SPACE
AND P_POINT1 <> SPACE
AND P_SIMBOL = SPACE
AND P_INP_D1 = SPACE.
CASE SY-UCOMM.
WHEN 'BUT1'.
GV_INPUT1 = P_INPUT1 + 1 / 10.
P_INP_D1 = '1'.
WHEN 'BUT2'.
GV_INPUT1 = P_INPUT1 + 2 / 10.
P_INP_D1 = '2'.
WHEN 'BUT3'.
GV_INPUT1 = P_INPUT1 + 3 / 10.
P_INP_D1 = '3'.
WHEN 'BUT4'.
GV_INPUT1 = P_INPUT1 + 4 / 10.
P_INP_D1 = '4'.
WHEN 'BUT5'.
GV_INPUT1 = P_INPUT1 + 5 / 10.
P_INP_D1 = '5'.
WHEN 'BUT6'.
GV_INPUT1 = P_INPUT1 + 6 / 10.
P_INP_D1 = '6'.
WHEN 'BUT7'.
GV_INPUT1 = P_INPUT1 + 7 / 10.
P_INP_D1 = '7'.
WHEN 'BUT8'.
GV_INPUT1 = P_INPUT1 + 8 / 10.
P_INP_D1 = '8'.
WHEN 'BUT9'.
GV_INPUT1 = P_INPUT1 + 9 / 10.
P_INP_D1 = '9'.
WHEN 'BUT0'.
GV_INPUT1 = P_INPUT1 + 0 / 10.
P_INP_D1 = 'O'.
ENDCASE.
ENDIF.
IF P_INPUT1 <> SPACE
AND P_SIMBOL = SPACE.
*** 输入符号 ***
CASE SY-UCOMM.
WHEN 'BUTPLS'.
P_SIMBOL = '+'.
WHEN 'BUTMIN'.
P_SIMBOL = '-'.
WHEN 'BUTMUT'.
P_SIMBOL = '×'.
* P_SIMBOL = '*'.
WHEN 'BUTDVD'.
P_SIMBOL = '÷'.
ENDCASE.
ENDIF.
IF P_SIMBOL <> SPACE.
*** 更改符号 ***
CASE SY-UCOMM.
WHEN 'BUTPLS'.
P_SIMBOL = '+'.
WHEN 'BUTMIN'.
P_SIMBOL = '-'.
WHEN 'BUTMUT'.
P_SIMBOL = '×'.
* P_SIMBOL = '*'.
WHEN 'BUTDVD'.
P_SIMBOL = '÷'.
ENDCASE.
ENDIF.
*** 输入 第二行 整数 ***
IF P_SIMBOL <> SPACE
AND P_POINT2 = SPACE
AND P_INPUT2 = '1'.
CASE SY-UCOMM.
WHEN 'BUT0'.
GV_INPUT2 = '10'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT1'.
GV_INPUT2 = '11'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT2'.
GV_INPUT2 = '12'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT3'.
GV_INPUT2 = '13'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT4'.
GV_INPUT2 = '14'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT5'.
GV_INPUT2 = '15'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT6'.
GV_INPUT2 = '16'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT7'.
GV_INPUT2 = '17'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT8'.
GV_INPUT2 = '18'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT9'.
GV_INPUT2 = '19'.
P_INPUT2 = GV_INPUT2.
ENDCASE.
ENDIF.
IF P_SIMBOL <> SPACE
AND P_POINT2 = SPACE
AND P_INPUT2 = '2'.
CASE SY-UCOMM.
WHEN 'BUT0'.
GV_INPUT2 = '20'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT1'.
GV_INPUT2 = '21'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT2'.
GV_INPUT2 = '22'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT3'.
GV_INPUT2 = '23'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT4'.
GV_INPUT2 = '24'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT5'.
GV_INPUT2 = '25'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT6'.
GV_INPUT2 = '26'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT7'.
GV_INPUT2 = '27'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT8'.
GV_INPUT2 = '28'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT9'.
GV_INPUT2 = '29'.
P_INPUT2 = GV_INPUT2.
ENDCASE.
ENDIF.
IF P_SIMBOL <> SPACE
AND P_POINT2 = SPACE
AND P_INPUT2 = '3'.
CASE SY-UCOMM.
WHEN 'BUT0'.
GV_INPUT2 = '30'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT1'.
GV_INPUT2 = '31'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT2'.
GV_INPUT2 = '32'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT3'.
GV_INPUT2 = '33'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT4'.
GV_INPUT2 = '34'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT5'.
GV_INPUT2 = '35'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT6'.
GV_INPUT2 = '36'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT7'.
GV_INPUT2 = '37'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT8'.
GV_INPUT2 = '38'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT9'.
GV_INPUT2 = '39'.
P_INPUT2 = GV_INPUT2.
ENDCASE.
ENDIF.
IF P_SIMBOL <> SPACE
AND P_POINT2 = SPACE
AND P_INPUT2 = '4'.
CASE SY-UCOMM.
WHEN 'BUT0'.
GV_INPUT2 = '40'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT1'.
GV_INPUT2 = '41'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT2'.
GV_INPUT2 = '42'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT3'.
GV_INPUT2 = '43'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT4'.
GV_INPUT2 = '44'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT5'.
GV_INPUT2 = '45'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT6'.
GV_INPUT2 = '46'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT7'.
GV_INPUT2 = '47'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT8'.
GV_INPUT2 = '48'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT9'.
GV_INPUT2 = '49'.
P_INPUT2 = GV_INPUT2.
ENDCASE.
ENDIF.
IF P_SIMBOL <> SPACE
AND P_POINT2 = SPACE
AND P_INPUT2 = '5'.
CASE SY-UCOMM.
WHEN 'BUT0'.
GV_INPUT2 = '50'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT1'.
GV_INPUT2 = '51'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT2'.
GV_INPUT2 = '52'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT3'.
GV_INPUT2 = '53'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT4'.
GV_INPUT2 = '54'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT5'.
GV_INPUT2 = '55'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT6'.
GV_INPUT2 = '56'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT7'.
GV_INPUT2 = '57'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT8'.
GV_INPUT2 = '58'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT9'.
GV_INPUT2 = '59'.
P_INPUT2 = GV_INPUT2.
ENDCASE.
ENDIF.
IF P_SIMBOL <> SPACE
AND P_POINT2 = SPACE
AND P_INPUT2 = '6'.
CASE SY-UCOMM.
WHEN 'BUT0'.
GV_INPUT2 = '60'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT1'.
GV_INPUT2 = '61'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT2'.
GV_INPUT2 = '62'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT3'.
GV_INPUT2 = '63'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT4'.
GV_INPUT2 = '64'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT5'.
GV_INPUT2 = '65'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT6'.
GV_INPUT2 = '66'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT7'.
GV_INPUT2 = '67'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT8'.
GV_INPUT2 = '68'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT9'.
GV_INPUT2 = '69'.
P_INPUT2 = GV_INPUT2.
ENDCASE.
ENDIF.
IF P_SIMBOL <> SPACE
AND P_POINT2 = SPACE
AND P_INPUT2 = '7'.
CASE SY-UCOMM.
WHEN 'BUT0'.
GV_INPUT2 = '70'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT1'.
GV_INPUT2 = '71'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT2'.
GV_INPUT2 = '72'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT3'.
GV_INPUT2 = '73'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT4'.
GV_INPUT2 = '74'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT5'.
GV_INPUT2 = '75'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT6'.
GV_INPUT2 = '76'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT7'.
GV_INPUT2 = '77'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT8'.
GV_INPUT2 = '78'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT9'.
GV_INPUT2 = '79'.
P_INPUT2 = GV_INPUT2.
ENDCASE.
ENDIF.
IF P_SIMBOL <> SPACE
AND P_POINT2 = SPACE
AND P_INPUT2 = '8'.
CASE SY-UCOMM.
WHEN 'BUT0'.
GV_INPUT2 = '80'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT1'.
GV_INPUT2 = '81'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT2'.
GV_INPUT2 = '82'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT3'.
GV_INPUT2 = '83'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT4'.
GV_INPUT2 = '84'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT5'.
GV_INPUT2 = '85'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT6'.
GV_INPUT2 = '86'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT7'.
GV_INPUT2 = '87'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT8'.
GV_INPUT2 = '88'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT9'.
GV_INPUT2 = '89'.
P_INPUT2 = GV_INPUT2.
ENDCASE.
ENDIF.
IF P_SIMBOL <> SPACE
AND P_POINT2 = SPACE
AND P_INPUT2 = '9'.
CASE SY-UCOMM.
WHEN 'BUT0'.
GV_INPUT2 = '90'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT1'.
GV_INPUT2 = '91'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT2'.
GV_INPUT2 = '92'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT3'.
GV_INPUT2 = '93'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT4'.
GV_INPUT2 = '94'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT5'.
GV_INPUT2 = '95'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT6'.
GV_INPUT2 = '96'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT7'.
GV_INPUT2 = '97'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT8'.
GV_INPUT2 = '98'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT9'.
GV_INPUT2 = '99'.
P_INPUT2 = GV_INPUT2.
ENDCASE.
ENDIF.
IF P_SIMBOL <> SPACE
AND P_POINT2 = SPACE
AND P_INPUT2 = SPACE.
*** 输入符号后数字 ***
CASE SY-UCOMM.
WHEN 'BUT0'.
GV_INPUT2 = '0'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT1'.
GV_INPUT2 = '1'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT2'.
GV_INPUT2 = '2'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT3'.
GV_INPUT2 = '3'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT4'.
GV_INPUT2 = '4'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT5'.
GV_INPUT2 = '5'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT6'.
GV_INPUT2 = '6'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT7'.
GV_INPUT2 = '7'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT8'.
GV_INPUT2 = '8'.
P_INPUT2 = GV_INPUT2.
WHEN 'BUT9'.
GV_INPUT2 = '9'.
P_INPUT2 = GV_INPUT2.
ENDCASE.
ENDIF.
*** 输入 第二行 小数点 ***
IF P_INPUT2 <> SPACE.
CASE SY-UCOMM.
WHEN 'BUTPON'.
P_POINT2 = '.'.
ENDCASE.
ENDIF.
*** 输入 第二行 小数 ***
IF P_INPUT2 <> SPACE
AND P_POINT2 <> SPACE
AND P_INP_D2 = '1'.
CASE SY-UCOMM.
WHEN 'BUT1'.
GV_INPUT2 = P_INPUT2 + 11 / 100.
P_INP_D2 = '11'.
WHEN 'BUT2'.
GV_INPUT2 = P_INPUT2 + 12 / 100.
P_INP_D2 = '12'.
WHEN 'BUT3'.
GV_INPUT2 = P_INPUT2 + 13 / 100.
P_INP_D2 = '13'.
WHEN 'BUT4'.
GV_INPUT2 = P_INPUT2 + 14 / 100.
P_INP_D2 = '14'.
WHEN 'BUT5'.
GV_INPUT2 = P_INPUT2 + 15 / 100.
P_INP_D2 = '15'.
WHEN 'BUT6'.
GV_INPUT2 = P_INPUT2 + 16 / 100.
P_INP_D2 = '16'.
WHEN 'BUT7'.
GV_INPUT2 = P_INPUT2 + 17 / 100.
P_INP_D2 = '17'.
WHEN 'BUT8'.
GV_INPUT2 = P_INPUT2 + 18 / 100.
P_INP_D2 = '18'.
WHEN 'BUT9'.
GV_INPUT2 = P_INPUT2 + 19 / 100.
P_INP_D2 = '19'.
WHEN 'BUT0'.
GV_INPUT2 = P_INPUT2 + 10 / 100.
P_INP_D2 = '10'.
ENDCASE.
ENDIF.
IF P_INPUT2 <> SPACE
AND P_POINT2 <> SPACE
AND P_INP_D2 = '2'.
CASE SY-UCOMM.
WHEN 'BUT1'.
GV_INPUT2 = P_INPUT2 + 21 / 100.
P_INP_D2 = '21'.
WHEN 'BUT2'.
GV_INPUT2 = P_INPUT2 + 22 / 100.
P_INP_D2 = '22'.
WHEN 'BUT3'.
GV_INPUT2 = P_INPUT2 + 23 / 100.
P_INP_D2 = '23'.
WHEN 'BUT4'.
GV_INPUT2 = P_INPUT2 + 24 / 100.
P_INP_D2 = '24'.
WHEN 'BUT5'.
GV_INPUT2 = P_INPUT2 + 25 / 100.
P_INP_D2 = '25'.
WHEN 'BUT6'.
GV_INPUT2 = P_INPUT2 + 26 / 100.
P_INP_D2 = '26'.
WHEN 'BUT7'.
GV_INPUT2 = P_INPUT2 + 27 / 100.
P_INP_D2 = '27'.
WHEN 'BUT8'.
GV_INPUT2 = P_INPUT2 + 28 / 100.
P_INP_D2 = '28'.
WHEN 'BUT9'.
GV_INPUT2 = P_INPUT2 + 29 / 100.
P_INP_D2 = '29'.
WHEN 'BUT0'.
GV_INPUT2 = P_INPUT2 + 20 / 100.
P_INP_D2 = '20'.
ENDCASE.
ENDIF.
IF P_INPUT2 <> SPACE
AND P_POINT2 <> SPACE
AND P_INP_D2 = '3'.
CASE SY-UCOMM.
WHEN 'BUT1'.
GV_INPUT2 = P_INPUT2 + 31 / 100.
P_INP_D2 = '31'.
WHEN 'BUT2'.
GV_INPUT2 = P_INPUT2 + 32 / 100.
P_INP_D2 = '32'.
WHEN 'BUT3'.
GV_INPUT2 = P_INPUT2 + 33 / 100.
P_INP_D2 = '33'.
WHEN 'BUT4'.
GV_INPUT2 = P_INPUT2 + 34 / 100.
P_INP_D2 = '34'.
WHEN 'BUT5'.
GV_INPUT2 = P_INPUT2 + 35 / 100.
P_INP_D2 = '35'.
WHEN 'BUT6'.
GV_INPUT2 = P_INPUT2 + 36 / 100.
P_INP_D2 = '36'.
WHEN 'BUT7'.
GV_INPUT2 = P_INPUT2 + 37 / 100.
P_INP_D2 = '37'.
WHEN 'BUT8'.
GV_INPUT2 = P_INPUT2 + 38 / 100.
P_INP_D2 = '38'.
WHEN 'BUT9'.
GV_INPUT2 = P_INPUT2 + 39 / 100.
P_INP_D2 = '39'.
WHEN 'BUT0'.
GV_INPUT2 = P_INPUT2 + 30 / 100.
P_INP_D2 = '30'.
ENDCASE.
ENDIF.
IF P_INPUT2 <> SPACE
AND P_POINT2 <> SPACE
AND P_INP_D2 = '4'.
CASE SY-UCOMM.
WHEN 'BUT1'.
GV_INPUT2 = P_INPUT2 + 41 / 100.
P_INP_D2 = '41'.
WHEN 'BUT2'.
GV_INPUT2 = P_INPUT2 + 42 / 100.
P_INP_D2 = '42'.
WHEN 'BUT3'.
GV_INPUT2 = P_INPUT2 + 43 / 100.
P_INP_D2 = '43'.
WHEN 'BUT4'.
GV_INPUT2 = P_INPUT2 + 44 / 100.
P_INP_D2 = '44'.
WHEN 'BUT5'.
GV_INPUT2 = P_INPUT2 + 45 / 100.
P_INP_D2 = '45'.
WHEN 'BUT6'.
GV_INPUT2 = P_INPUT2 + 46 / 100.
P_INP_D2 = '46'.
WHEN 'BUT7'.
GV_INPUT2 = P_INPUT2 + 47 / 100.
P_INP_D2 = '47'.
WHEN 'BUT8'.
GV_INPUT2 = P_INPUT2 + 48 / 100.
P_INP_D2 = '48'.
WHEN 'BUT9'.
GV_INPUT2 = P_INPUT2 + 49 / 100.
P_INP_D2 = '49'.
WHEN 'BUT0'.
GV_INPUT2 = P_INPUT2 + 40 / 100.
P_INP_D2 = '40'.
ENDCASE.
ENDIF.
IF P_INPUT2 <> SPACE
AND P_POINT2 <> SPACE
AND P_INP_D2 = '5'.
CASE SY-UCOMM.
WHEN 'BUT1'.
GV_INPUT2 = P_INPUT2 + 51 / 100.
P_INP_D2 = '51'.
WHEN 'BUT2'.
GV_INPUT2 = P_INPUT2 + 52 / 100.
P_INP_D2 = '52'.
WHEN 'BUT3'.
GV_INPUT2 = P_INPUT2 + 53 / 100.
P_INP_D2 = '53'.
WHEN 'BUT4'.
GV_INPUT2 = P_INPUT2 + 54 / 100.
P_INP_D2 = '54'.
WHEN 'BUT5'.
GV_INPUT2 = P_INPUT2 + 55 / 100.
P_INP_D2 = '55'.
WHEN 'BUT6'.
GV_INPUT2 = P_INPUT2 + 56 / 100.
P_INP_D2 = '56'.
WHEN 'BUT7'.
GV_INPUT2 = P_INPUT2 + 57 / 100.
P_INP_D2 = '57'.
WHEN 'BUT8'.
GV_INPUT2 = P_INPUT2 + 58 / 100.
P_INP_D2 = '58'.
WHEN 'BUT9'.
GV_INPUT2 = P_INPUT2 + 59 / 100.
P_INP_D2 = '59'.
WHEN 'BUT0'.
GV_INPUT2 = P_INPUT2 + 50 / 100.
P_INP_D2 = '50'.
ENDCASE.
ENDIF.
IF P_INPUT2 <> SPACE
AND P_POINT2 <> SPACE
AND P_INP_D2 = '6'.
CASE SY-UCOMM.
WHEN 'BUT1'.
GV_INPUT2 = P_INPUT2 + 61 / 100.
P_INP_D2 = '61'.
WHEN 'BUT2'.
GV_INPUT2 = P_INPUT2 + 62 / 100.
P_INP_D2 = '62'.
WHEN 'BUT3'.
GV_INPUT2 = P_INPUT2 + 63 / 100.
P_INP_D2 = '63'.
WHEN 'BUT4'.
GV_INPUT2 = P_INPUT2 + 64 / 100.
P_INP_D2 = '64'.
WHEN 'BUT5'.
GV_INPUT2 = P_INPUT2 + 65 / 100.
P_INP_D2 = '65'.
WHEN 'BUT6'.
GV_INPUT2 = P_INPUT2 + 66 / 100.
P_INP_D2 = '66'.
WHEN 'BUT7'.
GV_INPUT2 = P_INPUT2 + 67 / 100.
P_INP_D2 = '67'.
WHEN 'BUT8'.
GV_INPUT2 = P_INPUT2 + 68 / 100.
P_INP_D2 = '68'.
WHEN 'BUT9'.
GV_INPUT2 = P_INPUT2 + 69 / 100.
P_INP_D2 = '69'.
WHEN 'BUT0'.
GV_INPUT2 = P_INPUT2 + 60 / 100.
P_INP_D2 = '60'.
ENDCASE.
ENDIF.
IF P_INPUT2 <> SPACE
AND P_POINT2 <> SPACE
AND P_INP_D2 = '7'.
CASE SY-UCOMM.
WHEN 'BUT1'.
GV_INPUT2 = P_INPUT2 + 71 / 100.
P_INP_D2 = '71'.
WHEN 'BUT2'.
GV_INPUT2 = P_INPUT2 + 72 / 100.
P_INP_D2 = '72'.
WHEN 'BUT3'.
GV_INPUT2 = P_INPUT2 + 73 / 100.
P_INP_D2 = '73'.
WHEN 'BUT4'.
GV_INPUT2 = P_INPUT2 + 74 / 100.
P_INP_D2 = '74'.
WHEN 'BUT5'.
GV_INPUT2 = P_INPUT2 + 75 / 100.
P_INP_D2 = '75'.
WHEN 'BUT6'.
GV_INPUT2 = P_INPUT2 + 76 / 100.
P_INP_D2 = '76'.
WHEN 'BUT7'.
GV_INPUT2 = P_INPUT2 + 77 / 100.
P_INP_D2 = '77'.
WHEN 'BUT8'.
GV_INPUT2 = P_INPUT2 + 78 / 100.
P_INP_D2 = '78'.
WHEN 'BUT9'.
GV_INPUT2 = P_INPUT2 + 79 / 100.
P_INP_D2 = '79'.
WHEN 'BUT0'.
GV_INPUT2 = P_INPUT2 + 70 / 100.
P_INP_D2 = '70'.
ENDCASE.
ENDIF.
IF P_INPUT2 <> SPACE
AND P_POINT2 <> SPACE
AND P_INP_D2 = '8'.
CASE SY-UCOMM.
WHEN 'BUT1'.
GV_INPUT2 = P_INPUT2 + 81 / 100.
P_INP_D2 = '81'.
WHEN 'BUT2'.
GV_INPUT2 = P_INPUT2 + 82 / 100.
P_INP_D2 = '82'.
WHEN 'BUT3'.
GV_INPUT2 = P_INPUT2 + 83 / 100.
P_INP_D2 = '83'.
WHEN 'BUT4'.
GV_INPUT2 = P_INPUT2 + 84 / 100.
P_INP_D2 = '84'.
WHEN 'BUT5'.
GV_INPUT2 = P_INPUT2 + 85 / 100.
P_INP_D2 = '85'.
WHEN 'BUT6'.
GV_INPUT2 = P_INPUT2 + 86 / 100.
P_INP_D2 = '86'.
WHEN 'BUT7'.
GV_INPUT2 = P_INPUT2 + 87 / 100.
P_INP_D2 = '87'.
WHEN 'BUT8'.
GV_INPUT2 = P_INPUT2 + 88 / 100.
P_INP_D2 = '88'.
WHEN 'BUT9'.
GV_INPUT2 = P_INPUT2 + 89 / 100.
P_INP_D2 = '89'.
WHEN 'BUT0'.
GV_INPUT2 = P_INPUT2 + 80 / 100.
P_INP_D2 = '80'.
ENDCASE.
ENDIF.
IF P_INPUT2 <> SPACE
AND P_POINT2 <> SPACE
AND P_INP_D2 = '9'.
CASE SY-UCOMM.
WHEN 'BUT1'.
GV_INPUT2 = P_INPUT2 + 91 / 100.
P_INP_D2 = '91'.
WHEN 'BUT2'.
GV_INPUT2 = P_INPUT2 + 92 / 100.
P_INP_D2 = '92'.
WHEN 'BUT3'.
GV_INPUT2 = P_INPUT2 + 93 / 100.
P_INP_D2 = '93'.
WHEN 'BUT4'.
GV_INPUT2 = P_INPUT2 + 94 / 100.
P_INP_D2 = '94'.
WHEN 'BUT5'.
GV_INPUT2 = P_INPUT2 + 95 / 100.
P_INP_D2 = '95'.
WHEN 'BUT6'.
GV_INPUT2 = P_INPUT2 + 96 / 100.
P_INP_D2 = '96'.
WHEN 'BUT7'.
GV_INPUT2 = P_INPUT2 + 97 / 100.
P_INP_D2 = '97'.
WHEN 'BUT8'.
GV_INPUT2 = P_INPUT2 + 98 / 100.
P_INP_D2 = '98'.
WHEN 'BUT9'.
GV_INPUT2 = P_INPUT2 + 99 / 100.
P_INP_D2 = '99'.
WHEN 'BUT0'.
GV_INPUT2 = P_INPUT2 + 90 / 100.
P_INP_D2 = '90'.
ENDCASE.
ENDIF.
IF P_INPUT2 <> SPACE
AND P_POINT2 <> SPACE
AND P_INP_D2 = 'O'.
CASE SY-UCOMM.
WHEN 'BUT1'.
GV_INPUT2 = P_INPUT2 + 1 / 100.
P_INP_D2 = 'O1'.
WHEN 'BUT2'.
GV_INPUT2 = P_INPUT2 + 2 / 100.
P_INP_D2 = 'O2'.
WHEN 'BUT3'.
GV_INPUT2 = P_INPUT2 + 3 / 100.
P_INP_D2 = 'O3'.
WHEN 'BUT4'.
GV_INPUT2 = P_INPUT2 + 4 / 100.
P_INP_D2 = 'O4'.
WHEN 'BUT5'.
GV_INPUT2 = P_INPUT2 + 5 / 100.
P_INP_D2 = 'O5'.
WHEN 'BUT6'.
GV_INPUT2 = P_INPUT2 + 6 / 100.
P_INP_D2 = 'O6'.
WHEN 'BUT7'.
GV_INPUT2 = P_INPUT2 + 7 / 100.
P_INP_D2 = 'O7'.
WHEN 'BUT8'.
GV_INPUT2 = P_INPUT2 + 8 / 100.
P_INP_D2 = 'O8'.
WHEN 'BUT9'.
GV_INPUT2 = P_INPUT2 + 9 / 100.
P_INP_D2 = 'O9'.
WHEN 'BUT0'.
GV_INPUT2 = P_INPUT2 + 0 / 100.
P_INP_D2 = 'OO'.
ENDCASE.
ENDIF.
IF P_INPUT2 <> SPACE
AND P_POINT2 <> SPACE
AND P_INP_D2 = SPACE.
CASE SY-UCOMM.
WHEN 'BUT1'.
GV_INPUT2 = P_INPUT2 + 1 / 10.
P_INP_D2 = '1'.
WHEN 'BUT2'.
GV_INPUT2 = P_INPUT2 + 2 / 10.
P_INP_D2 = '2'.
WHEN 'BUT3'.
GV_INPUT2 = P_INPUT2 + 3 / 10.
P_INP_D2 = '3'.
WHEN 'BUT4'.
GV_INPUT2 = P_INPUT2 + 4 / 10.
P_INP_D2 = '4'.
WHEN 'BUT5'.
GV_INPUT2 = P_INPUT2 + 5 / 10.
P_INP_D2 = '5'.
WHEN 'BUT6'.
GV_INPUT2 = P_INPUT2 + 6 / 10.
P_INP_D2 = '6'.
WHEN 'BUT7'.
GV_INPUT2 = P_INPUT2 + 7 / 10.
P_INP_D2 = '7'.
WHEN 'BUT8'.
GV_INPUT2 = P_INPUT2 + 8 / 10.
P_INP_D2 = '8'.
WHEN 'BUT9'.
GV_INPUT2 = P_INPUT2 + 9 / 10.
P_INP_D2 = '9'.
WHEN 'BUT0'.
GV_INPUT2 = P_INPUT2 + 0 / 10.
P_INP_D2 = 'O'.
ENDCASE.
ENDIF.
*** 负号 ***
IF P_SIMBOL <> SPACE.
CASE SY-UCOMM.
WHEN 'BUTPOM'.
GV_INPUT2 = GV_INPUT2 - GV_INPUT2 * 2.
P_INPUT2 = GV_INPUT2.
ENDCASE.
ENDIF.
IF P_SIMBOL = SPACE.
CASE SY-UCOMM.
WHEN 'BUTPOM'.
GV_INPUT1 = GV_INPUT1 - GV_INPUT1 * 2.
P_INPUT1 = GV_INPUT1.
ENDCASE.
ENDIF.
*---------------------------------------------------------------------*
* 运算
*---------------------------------------------------------------------*
IF P_SIMBOL = '+'.
GV_OUTPUT = GV_INPUT1 + GV_INPUT2.
ELSEIF P_SIMBOL = '-'.
GV_OUTPUT = GV_INPUT1 - GV_INPUT2.
ELSEIF P_SIMBOL = '×'.
GV_OUTPUT = GV_INPUT1 * GV_INPUT2.
ELSEIF P_SIMBOL = '÷'.
IF P_INPUT2 = SPACE.
CASE SY-UCOMM.
WHEN 'BUT0'.
MESSAGE '除数不能为 0' TYPE 'S' DISPLAY LIKE 'A'.
WHEN 'BUT1'.
P_INPUT2 = '1'.
GV_INPUT2 = '1'.
WHEN 'BUT2'.
P_INPUT2 = '2'.
GV_INPUT2 = '2'.
WHEN 'BUT3'.
P_INPUT2 = '3'.
GV_INPUT2 = '3'.
WHEN 'BUT4'.
P_INPUT2 = '4'.
GV_INPUT2 = '4'.
WHEN 'BUT5'.
P_INPUT2 = '5'.
GV_INPUT2 = '5'.
WHEN 'BUT6'.
P_INPUT2 = '6'.
GV_INPUT2 = '6'.
WHEN 'BUT7'.
P_INPUT2 = '7'.
GV_INPUT2 = '7'.
WHEN 'BUT8'.
P_INPUT2 = '8'.
GV_INPUT2 = '8'.
WHEN 'BUT9'.
P_INPUT2 = '9'.
GV_INPUT2 = '9'.
ENDCASE.
MESSAGE '除数不能为 0' TYPE 'S' DISPLAY LIKE 'A'.
ENDIF.
IF P_INPUT2 <> SPACE.
GV_OUTPUT = GV_INPUT1 / GV_INPUT2.
ENDIF.
ENDIF.
*---------------------------------------------------------------------*
* 输出
*---------------------------------------------------------------------*
CASE SY-UCOMM.
WHEN 'BUTEQ'.
P_OUTPUT = GV_OUTPUT.
* WRITE: GV_OUTPUT.
* SET PF-STATUS SPACE.
* LEAVE TO LIST-PROCESSING.
WHEN 'BUTAC'.
CLEAR:
P_INPUT1,
P_POINT1,
P_INP_D1,
P_SIMBOL,
P_INPUT2,
P_POINT2,
P_INP_D2,
P_OUTPUT,
GV_INPUT1,
GV_POINT1,
GV_INP_D1,
GV_INPUT2,
GV_POINT2,
GV_INP_D2,
GV_SIMBOL,
GV_OUTPUT.
ENDCASE.
*** 百分号 ***
CASE SY-UCOMM.
WHEN 'BUTPER'.
GV_OUTPUT = GV_OUTPUT / 100.
P_OUTPUT = GV_OUTPUT.
ENDCASE.``