*---------------------------------------------------------------------*
* FORM F_TASK_END
*---------------------------------------------------------------------*
FORM f_task_end USING u_taskname.

DATA lv_mssg(80). "#EC NEEDED

* RECEIVING TASK RESULTS
* YOU NEED TO CREATE FUNCTIONAL MODULE "Z_NBCSH_DELAY"
* TO TRY DELAY LESS THEN 1 SECOND
RECEIVE RESULTS FROM FUNCTION 'RFC_PING_AND_WAIT' "接受RFC返回值
* RECEIVE RESULTS FROM FUNCTION "Z_NBCSH_DELAY"
EXCEPTIONS
resource_failure = 1
communication_failure = 2 message lv_mssg
system_failure = 3 message lv_mssg
OTHERS = 4.

CHECK sy-subrc EQ 0."接受成功,则
SET USER-COMMAND 'PF26'. "方块自动下落,到底后行检查,出现下个方块,这步【关键】

ENDFORM. " F_TASK_END
*************** END OF PROGRAM ZNBCSH_TETRIS *********************
*&---------------------------------------------------------------------*
*& MODULE STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* TEXT
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
* SET PF-STATUS "STATUS_0".
*CALL METHOD CL_GUI_CFW=>SET_NEW_OK_CODE
* EXPORTING NEW_CODE = "PF21".
* WRITE "PRESS TO BEGIN".
PERFORM out."屏幕输出
LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 100.
LEAVE SCREEN."离开屏幕

* LEAVE SCREEN.
* SET TITLEBAR "XXX".
* DATA LV_MSSG(80). "#EC NEEDED

ENDMODULE. " STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*& MODULE USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* TEXT
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
CASE sy-ucomm.
WHEN 'BACK' OR 'UP' OR'EXIT'."退出
LEAVE PROGRAM.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT


*---------------------------------------------------------------------*
* MODULE EXX INPUT *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
MODULE exx INPUT.
LEAVE PROGRAM."退出程序
ENDMODULE. " EXX INPUT

*---------------------------------------------------------------------*
* FORM INIT_FIGURES *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM init_figures."初始化方块
DATA s TYPE i.
DATA w TYPE i.
w = st_width. "
s = w DIV 2. "
square-name = 'SQUARE'."方块田
square-body1 = s.
square-body2 = s 1.
square-body3 = s w.
square-body4 = s w 1.
square-width = 2.
square-height = 2.

line1-name = 'LINE1'."横长条
line1-body1 = s - 2.
line1-body2 = s - 1.
line1-body3 = s .
line1-body4 = s 1.
line1-width = 4.
line1-height = 1.

line2-name = 'LINE2'."竖长条
line2-body1 = s .
line2-body2 = s w.
line2-body3 = s w w.
line2-body4 = s w w w.
line2-width = 1.
line2-height = 4.

lzz1-name = 'LZZ1'.
lzz1-body1 = s .
lzz1-body2 = s w.
lzz1-body3 = s 1 w.
lzz1-body4 = s 1 w w.
lzz1-width = 2.
lzz1-height = 3.

lzz2-name = 'LZZ2'.
lzz2-body1 = s .
lzz2-body2 = s 1.
lzz2-body3 = s w - 1.
lzz2-body4 = s w.
lzz2-width = 3.
lzz2-height = 2.

rzz1-name = 'RZZ1'.
rzz1-body1 = s 1.
rzz1-body2 = s w .
rzz1-body3 = s w 1.
rzz1-body4 = s w w.
rzz1-width = 2.
rzz1-height