Sei sulla pagina 1di 4

Dialog program

MODULE user_command_1000 INPUT.


DATA: lv_field(30),
lv_line TYPE i.
DATA: op TYPE i,
mark TYPE c.

SET PF-STATUS 'DOUBLE_CLICK'.


* SET PF-STATUS 'DELETE'.
GET CURSOR FIELD lv_field LINE lv_line.

CASE ok_code.
WHEN 'NEW'.
DESCRIBE TABLE it_stpo1.
op = sy-tfill.

IF op GE 1.
op = op + 1.
* APPEND INITIAL LINE TO it_stpo1.
* INSERT INITIAL LINE INTO it_stpo1 INDEX op.
CLEAR: wa_stpo1.
INSERT wa_stpo1 INTO it_stpo1 INDEX op .
IF sy-subrc = 0.
* MESSAGE '' TYPE 'I'.
ENDIF.
ELSE.
MESSAGE 'There is no records' TYPE 'I'.
ENDIF.

WHEN 'DELETE'.
DESCRIBE TABLE it_stpo1.
op = sy-tfill.
IF mark NE 'X'.
tc1-v_scroll = 'X'.

IF op GE 1.
* DELETE it_stpo1 INDEX tc1-current_line.
DELETE it_stpo1 INDEX op.
ELSE.
MESSAGE 'There is no Records' TYPE 'I'.
ENDIF.

ELSE.
READ TABLE it_stpo1 INTO wa_stpo1 WITH KEY mark = 'X'.
IF sy-subrc = 0.
DELETE it_stpo1 INDEX sy-tabix.
ENDIF.

ENDIF.

WHEN 'BACK'.
* leave TO SCREEN 1000.
LEAVE TO SCREEN 0.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'PICK'.
CLEAR: it_stpo1.
SORT it_stko.

READ TABLE it_stko INDEX lv_line INTO wa_stko.

IF sy-subrc = 0.

LOOP AT it_stpo INTO wa_stpo WHERE stlnr EQ wa_stko-stlnr.


* wa_stpo1-mark = 'X'.
wa_stpo1-andat = wa_stpo-andat.
wa_stpo1-idnrk = wa_stpo-idnrk.
wa_stpo1-lifnr = wa_stpo-lifnr.
wa_stpo1-meins = wa_stpo-meins.
wa_stpo1-menge = wa_stpo-menge.
wa_stpo1-posnr = wa_stpo-posnr.
wa_stpo1-preis = wa_stpo-preis.
wa_stpo1-stlkn = wa_stpo-stlkn.
wa_stpo1-stlnr = wa_stpo-stlnr.
APPEND wa_stpo1 TO it_stpo1 .

ENDLOOP.

ENDIF.
WHEN 'REPORT'.
PERFORM report_header.

ENDCASE.

ENDMODULE. " USER_COMMAND_1000 INPUT


*&---------------------------------------------------------------------*
*& Form REPORT_HEADER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM report_header .
CLEAR: wa_fieldcat,
it_fieldcat.
wa_fieldcat-fieldname = 'STLTY'.
wa_fieldcat-seltext_m = 'BOM Category'.
APPEND wa_fieldcat TO it_fieldcat.

CLEAR: wa_fieldcat.
wa_fieldcat-fieldname = 'STLNR'.
wa_fieldcat-seltext_m = 'Bill of material'.
APPEND wa_fieldcat TO it_fieldcat.

CLEAR: wa_fieldcat.
wa_fieldcat-fieldname = 'STLAL'.
wa_fieldcat-seltext_m = 'Alternative BOM'.
APPEND wa_fieldcat TO it_fieldcat.

CLEAR: wa_fieldcat.
wa_fieldcat-fieldname = 'DATUV'.
wa_fieldcat-seltext_m = 'Valid form date'.
APPEND wa_fieldcat TO it_fieldcat.

CLEAR: wa_fieldcat.
wa_fieldcat-fieldname = 'AEDAT'.
wa_fieldcat-seltext_m = 'Changed On'.
APPEND wa_fieldcat TO it_fieldcat.

CLEAR: wa_fieldcat.
wa_fieldcat-fieldname = 'AENAM'.
wa_fieldcat-seltext_m = 'Name of the person'.
APPEND wa_fieldcat TO it_fieldcat.

CLEAR: wa_fieldcat.
wa_fieldcat-fieldname = 'BMEIN'.
wa_fieldcat-seltext_m = 'Base unit'.
APPEND wa_fieldcat TO it_fieldcat.

CLEAR: wa_fieldcat.
wa_fieldcat-fieldname = 'STLST'.
wa_fieldcat-seltext_m = 'BOM Status'.
APPEND wa_fieldcat TO it_fieldcat.

CLEAR: wa_fieldcat.
wa_fieldcat-fieldname = 'WRKAN'.
wa_fieldcat-seltext_m = 'Plant for BOM'.
APPEND wa_fieldcat TO it_fieldcat.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'


EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-CPROG
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
* IS_LAYOUT =
IT_FIELDCAT = it_fieldcat
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP = 0
* I_HTML_HEIGHT_END = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = it_stko
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

ENDFORM.

Potrebbero piacerti anche