Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

zmm_rpt_matdesc_Module pool Eg

Download as rtf, pdf, or txt
Download as rtf, pdf, or txt
You are on page 1of 15

*&---------------------------------------------------------------------*

*& Modulpool ZMM_RPT_MATDESC


*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
PROGRAM zmm_rpt_matdesc.
TYPES : BEGIN OF ts_t023t,
matkl TYPE t023t-matkl,
wgbez TYPE t023t-wgbez,
END OF ts_t023t.

TYPES : BEGIN OF ts_subg,


sub_group TYPE zmm_subgrp-sub_group,
sub_group1 TYPE zmm_subgrp-sub_group1,
sub_group_desc TYPE zmm_subgrp-sub_group_desc,
sub_group1_desc TYPE zmm_subgrp-sub_group1_desc,
END OF ts_subg.

TYPES : BEGIN OF ts_matdesc,


mark TYPE zmm_matdesc-mark,
matkl TYPE zmm_matdesc-matkl,
wgbez TYPE zmm_matdesc-wgbez,
sub_group TYPE zmm_matdesc-sub_group,
sub_group_desc TYPE zmm_matdesc-sub_group_desc,
sub_group1 TYPE zmm_matdesc-sub_group1,
sub_group1_desc TYPE zmm_matdesc-sub_group1_desc,
item_desc TYPE zmm_matdesc-item_desc,
mat_desc TYPE zmm_matdesc-mat_desc,
END OF ts_matdesc.

DATA : it_t023t TYPE TABLE OF ts_t023t,


wa_t023t TYPE ts_t023t,
it_subg TYPE TABLE OF ts_subg,
wa_subg TYPE ts_subg,
it_matdesc TYPE TABLE OF ts_matdesc,
wa_matdesc TYPE ts_matdesc,
it_log TYPE STANDARD TABLE OF zmm_matdesc,
wa_log TYPE zmm_matdesc.
*

DATA: w_dynpfields TYPE dynpread,


i_dynpfields LIKE STANDARD TABLE OF dynpread,
i_return_tab TYPE STANDARD TABLE OF ddshretval,
w_return_tab TYPE ddshretval.

DATA : v1(4) TYPE c,


v2(4) TYPE c,
v3(4) TYPE c,
v4(23) TYPE c.

*&SPWIZARD: DECLARATION OF TABLECONTROL 'ZMATDESC' ITSELF


CONTROLS: zmatdesc TYPE TABLEVIEW USING SCREEN 9100.

*&SPWIZARD: LINES OF TABLECONTROL 'ZMATDESC'


DATA: g_zmatdesc_lines LIKE sy-loopc.

DATA: ok_code LIKE sy-ucomm.

*&SPWIZARD: OUTPUT MODULE FOR TC 'ZMATDESC'. DO NOT CHANGE THIS LINE!


*&SPWIZARD: UPDATE LINES FOR EQUIVALENT SCROLLBAR
MODULE zmatdesc_change_tc_attr OUTPUT.
DESCRIBE TABLE it_matdesc LINES zmatdesc-lines.
ENDMODULE.

*&SPWIZARD: OUTPUT MODULE FOR TC 'ZMATDESC'. DO NOT CHANGE THIS LINE!


*&SPWIZARD: GET LINES OF TABLECONTROL
MODULE zmatdesc_get_lines OUTPUT.
g_zmatdesc_lines = sy-loopc.
ENDMODULE.

*&SPWIZARD: INPUT MODULE FOR TC 'ZMATDESC'. DO NOT CHANGE THIS LINE!


*&SPWIZARD: MODIFY TABLE
MODULE zmatdesc_modify INPUT.

IF wa_matdesc-matkl IS NOT INITIAL.


SELECT matkl
wgbez FROM t023t INTO CORRESPONDING FIELDS OF TABLE it_t023t WHERE
matkl = wa_matdesc-matkl.

READ TABLE it_t023t INTO wa_t023t WITH KEY matkl = wa_matdesc-matkl.


wa_matdesc-wgbez = wa_t023t-wgbez.

ENDIF.

IF wa_matdesc-sub_group_desc IS NOT INITIAL.


SELECT sub_group_desc
sub_group FROM zmm_subgrp INTO CORRESPONDING FIELDS OF TABLE
it_subg WHERE sub_group_desc = wa_matdesc-sub_group_desc.

READ TABLE it_subg INTO wa_subg WITH KEY sub_group_desc = wa_matdesc-


sub_group_desc.
wa_matdesc-sub_group = wa_subg-sub_group.

ENDIF.

IF wa_matdesc-sub_group1_desc IS NOT INITIAL.


SELECT sub_group1_desc
sub_group1 FROM zmm_subgrp INTO CORRESPONDING FIELDS OF TABL
E it_subg WHERE sub_group1_desc = wa_matdesc-sub_group1_desc.

READ TABLE it_subg INTO wa_subg WITH KEY sub_group1_desc = wa_matdesc-


sub_group1_desc.
wa_matdesc-sub_group1 = wa_subg-sub_group1.
ENDIF.

CONDENSE wa_MATDESC-wgbez NO-GAPS.


v1 = wa_MATDESC-wgbez.
v2 = wa_MATDESC-sub_group_desc.
v3 = wa_MATDESC-sub_group1_desc.
v4 = wa_MATDESC-item_desc.

CONCATENATE v1 v2 v3 v4 INTO wa_MATDESC-mat_desc SEPARATED BY '|'.


MODIFY it_matdesc
FROM wa_matdesc
INDEX zmatdesc-current_line.
ENDMODULE.

*&SPWIZARD: INPUT MODUL FOR TC 'ZMATDESC'. DO NOT CHANGE THIS LINE!


*&SPWIZARD: MARK TABLE
MODULE zmatdesc_mark INPUT.
DATA: g_ZMATDESC_wa2 LIKE LINE OF it_matdesc.
IF zmatdesc-line_sel_mode = 1
AND wa_matdesc-mark = 'X'.
LOOP AT it_matdesc INTO g_ZMATDESC_wa2
WHERE mark = 'X'.
g_ZMATDESC_wa2-mark = ''.
MODIFY it_matdesc
FROM g_ZMATDESC_wa2
TRANSPORTING mark.
ENDLOOP.
ENDIF.
MODIFY it_matdesc
FROM wa_matdesc
INDEX zmatdesc-current_line
TRANSPORTING mark.
ENDMODULE.

*&SPWIZARD: INPUT MODULE FOR TC 'ZMATDESC'. DO NOT CHANGE THIS LINE!


*&SPWIZARD: PROCESS USER COMMAND
MODULE zmatdesc_user_command INPUT.
ok_code = sy-ucomm.
PERFORM user_ok_tc USING 'ZMATDESC'
'IT_MATDESC'
'MARK'
CHANGING ok_code.
sy-ucomm = ok_code.
ENDMODULE.

*----------------------------------------------------------------------*
* INCLUDE TABLECONTROL_FORMS *
*----------------------------------------------------------------------*

*&---------------------------------------------------------------------*
*& Form USER_OK_TC *
*&---------------------------------------------------------------------*
FORM user_ok_tc USING p_tc_name TYPE dynfnam
p_table_name
p_mark_name
CHANGING p_ok LIKE sy-ucomm.

*&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------*


DATA: l_ok TYPE sy-ucomm,
l_offset TYPE i.
*&SPWIZARD: END OF LOCAL DATA------------------------------------------*

*&SPWIZARD: Table control specific operations *


*&SPWIZARD: evaluate TC name and operations *
SEARCH p_ok FOR p_tc_name.
IF sy-subrc <> 0.
EXIT.
ENDIF.
l_offset = strlen( p_tc_name ) + 1.
l_ok = p_ok+l_offset.
*&SPWIZARD: execute general and TC specific operations *
CASE l_ok.
WHEN 'INSR'. "insert row
PERFORM fcode_insert_row USING p_tc_name
p_table_name.
CLEAR p_ok.

WHEN 'DELE'. "delete row


PERFORM fcode_delete_row USING p_tc_name
p_table_name
p_mark_name.
CLEAR p_ok.

WHEN 'P--' OR "top of list


'P-' OR "previous page
'P+' OR "next page
'P++'. "bottom of list
PERFORM compute_scrolling_in_tc USING p_tc_name
l_ok.
CLEAR p_ok.
* WHEN 'L--'. "total left
* PERFORM FCODE_TOTAL_LEFT USING P_TC_NAME.
*
* WHEN 'L-'. "column left
* PERFORM FCODE_COLUMN_LEFT USING P_TC_NAME.
*
* WHEN 'R+'. "column right
* PERFORM FCODE_COLUMN_RIGHT USING P_TC_NAME.
*
* WHEN 'R++'. "total right
* PERFORM FCODE_TOTAL_RIGHT USING P_TC_NAME.
*
WHEN 'MARK'. "mark all filled lines
PERFORM fcode_tc_mark_lines USING p_tc_name
p_table_name
p_mark_name .
CLEAR p_ok.

WHEN 'DMRK'. "demark all filled lines


PERFORM fcode_tc_demark_lines USING p_tc_name
p_table_name
p_mark_name .
CLEAR p_ok.

* WHEN 'SASCEND' OR
* 'SDESCEND'. "sort column
* PERFORM FCODE_SORT_TC USING P_TC_NAME
* l_ok.

ENDCASE.

ENDFORM. " USER_OK_TC

*&---------------------------------------------------------------------*
*& Form FCODE_INSERT_ROW *
*&---------------------------------------------------------------------*
FORM fcode_insert_row
USING p_tc_name TYPE dynfnam
p_table_name .

*&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------*


DATA l_lines_name LIKE feld-name.
DATA l_selline LIKE sy-stepl.
DATA l_lastline TYPE i.
DATA l_line TYPE i.
DATA l_table_name LIKE feld-name.
FIELD-SYMBOLS <tc> TYPE cxtab_control.
FIELD-SYMBOLS <table> TYPE STANDARD TABLE.
FIELD-SYMBOLS <lines> TYPE i.
*&SPWIZARD: END OF LOCAL DATA------------------------------------------*

ASSIGN (p_tc_name) TO <tc>.

*&SPWIZARD: get the table, which belongs to the tc *


CONCATENATE p_table_name '[]' INTO l_table_name. "table body
ASSIGN (l_table_name) TO <table>. "not headerline

*&SPWIZARD: get looplines of TableControl *


CONCATENATE 'G_' p_tc_name '_LINES' INTO l_lines_name.
ASSIGN (l_lines_name) TO <lines>.

*&SPWIZARD: get current line *


GET CURSOR LINE l_selline.
IF sy-subrc <> 0. " append line to table
l_selline = <tc>-lines + 1.
*&SPWIZARD: set top line *
IF l_selline > <lines>.
<tc>-top_line = l_selline - <lines> + 1 .
ELSE.
<tc>-top_line = 1.
ENDIF.
ELSE. " insert line into table
l_selline = <tc>-top_line + l_selline - 1.
l_lastline = <tc>-top_line + <lines> - 1.
ENDIF.
*&SPWIZARD: set new cursor line *
l_line = l_selline - <tc>-top_line + 1.

*&SPWIZARD: insert initial line *


INSERT INITIAL LINE INTO <table> INDEX l_selline.
<tc>-lines = <tc>-lines + 1.
*&SPWIZARD: set cursor *
SET CURSOR LINE l_line.

ENDFORM. " FCODE_INSERT_ROW

*&---------------------------------------------------------------------*
*& Form FCODE_DELETE_ROW *
*&---------------------------------------------------------------------*
FORM fcode_delete_row
USING p_tc_name TYPE dynfnam
p_table_name
p_mark_name .

*&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------*


DATA l_table_name LIKE feld-name.

FIELD-SYMBOLS <tc> TYPE cxtab_control.


FIELD-SYMBOLS <table> TYPE STANDARD TABLE.
FIELD-SYMBOLS <wa>.
FIELD-SYMBOLS <mark_field>.
*&SPWIZARD: END OF LOCAL DATA------------------------------------------*

ASSIGN (p_tc_name) TO <tc>.

*&SPWIZARD: get the table, which belongs to the tc *


CONCATENATE p_table_name '[]' INTO l_table_name. "table body
ASSIGN (l_table_name) TO <table>. "not headerline

*&SPWIZARD: delete marked lines *


DESCRIBE TABLE <table> LINES <tc>-lines.

LOOP AT <table> ASSIGNING <wa>.

*&SPWIZARD: access to the component 'FLAG' of the table header *


ASSIGN COMPONENT p_mark_name OF STRUCTURE <wa> TO <mark_field>.

IF <mark_field> = 'X'.
DELETE <table> INDEX syst-tabix.
IF sy-subrc = 0.
<tc>-lines = <tc>-lines - 1.
ENDIF.
ENDIF.
ENDLOOP.

ENDFORM. " FCODE_DELETE_ROW

*&---------------------------------------------------------------------*
*& Form COMPUTE_SCROLLING_IN_TC
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_TC_NAME name of tablecontrol
* -->P_OK ok code
*----------------------------------------------------------------------*
FORM compute_scrolling_in_tc USING p_tc_name
p_ok.
*&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------*
DATA l_tc_new_top_line TYPE i.
DATA l_tc_name LIKE feld-name.
DATA l_tc_lines_name LIKE feld-name.
DATA l_tc_field_name LIKE feld-name.

FIELD-SYMBOLS <tc> TYPE cxtab_control.


FIELD-SYMBOLS <lines> TYPE i.
*&SPWIZARD: END OF LOCAL DATA------------------------------------------*

ASSIGN (p_tc_name) TO <tc>.


*&SPWIZARD: get looplines of TableControl *
CONCATENATE 'G_' p_tc_name '_LINES' INTO l_tc_lines_name.
ASSIGN (l_tc_lines_name) TO <lines>.

*&SPWIZARD: is no line filled? *


IF <tc>-lines = 0.
*&SPWIZARD: yes, ... *
l_tc_new_top_line = 1.
ELSE.
*&SPWIZARD: no, ... *
CALL FUNCTION 'SCROLLING_IN_TABLE'
EXPORTING
entry_act = <tc>-top_line
entry_from = 1
entry_to = <tc>-lines
last_page_full = 'X'
loops = <lines>
ok_code = p_ok
overlapping = 'X'
IMPORTING
entry_new = l_tc_new_top_line
EXCEPTIONS
* NO_ENTRY_OR_PAGE_ACT = 01
* NO_ENTRY_TO = 02
* NO_OK_CODE_OR_PAGE_GO = 03
OTHERS = 0.
ENDIF.

*&SPWIZARD: get actual tc and column *


GET CURSOR FIELD l_tc_field_name
AREA l_tc_name.

IF syst-subrc = 0.
IF l_tc_name = p_tc_name.
*&SPWIZARD: et actual column *
SET CURSOR FIELD l_tc_field_name LINE 1.
ENDIF.
ENDIF.

*&SPWIZARD: set the new top line *


<tc>-top_line = l_tc_new_top_line.

ENDFORM. " COMPUTE_SCROLLING_IN_TC

*&---------------------------------------------------------------------*
*& Form FCODE_TC_MARK_LINES
*&---------------------------------------------------------------------*
* marks all TableControl lines
*----------------------------------------------------------------------*
* -->P_TC_NAME name of tablecontrol
*----------------------------------------------------------------------*
FORM fcode_tc_mark_lines USING p_tc_name
p_table_name
p_mark_name.
*&SPWIZARD: EGIN OF LOCAL DATA-----------------------------------------*
DATA l_table_name LIKE feld-name.

FIELD-SYMBOLS <tc> TYPE cxtab_control.


FIELD-SYMBOLS <table> TYPE STANDARD TABLE.
FIELD-SYMBOLS <wa>.
FIELD-SYMBOLS <mark_field>.
*&SPWIZARD: END OF LOCAL DATA------------------------------------------*

ASSIGN (p_tc_name) TO <tc>.

*&SPWIZARD: get the table, which belongs to the tc *


CONCATENATE p_table_name '[]' INTO l_table_name. "table body
ASSIGN (l_table_name) TO <table>. "not headerline

*&SPWIZARD: mark all filled lines *


LOOP AT <table> ASSIGNING <wa>.

*&SPWIZARD: access to the component 'FLAG' of the table header *


ASSIGN COMPONENT p_mark_name OF STRUCTURE <wa> TO <mark_field>.

<mark_field> = 'X'.
ENDLOOP.
ENDFORM. "fcode_tc_mark_lines

*&---------------------------------------------------------------------*
*& Form FCODE_TC_DEMARK_LINES
*&---------------------------------------------------------------------*
* demarks all TableControl lines
*----------------------------------------------------------------------*
* -->P_TC_NAME name of tablecontrol
*----------------------------------------------------------------------*
FORM fcode_tc_demark_lines USING p_tc_name
p_table_name
p_mark_name .
*&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------*
DATA l_table_name LIKE feld-name.

FIELD-SYMBOLS <tc> TYPE cxtab_control.


FIELD-SYMBOLS <table> TYPE STANDARD TABLE.
FIELD-SYMBOLS <wa>.
FIELD-SYMBOLS <mark_field>.
*&SPWIZARD: END OF LOCAL DATA------------------------------------------*

ASSIGN (p_tc_name) TO <tc>.

*&SPWIZARD: get the table, which belongs to the tc *


CONCATENATE p_table_name '[]' INTO l_table_name. "table body
ASSIGN (l_table_name) TO <table>. "not headerline

*&SPWIZARD: demark all filled lines *


LOOP AT <table> ASSIGNING <wa>.

*&SPWIZARD: access to the component 'FLAG' of the table header *


ASSIGN COMPONENT p_mark_name OF STRUCTURE <wa> TO <mark_field>.

<mark_field> = space.
ENDLOOP.
ENDFORM. "fcode_tc_mark_lines
*&---------------------------------------------------------------------*
*& Module STATUS_9100 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE status_9100 OUTPUT.
SET PF-STATUS 'PF1'.
SET TITLEBAR 'TITLE'.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_9100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_9100 INPUT.
CASE sy-ucomm.
WHEN 'BACK'.
LEAVE PROGRAM.

WHEN 'CANCEL'.
LEAVE PROGRAM.

WHEN 'SAVE'.

* LOOP AT it_final INTO wa_final." INDEX selfield-tabindex.


* "IF sy-subrc = 0.
* " wa_log-matkl = wa_final-matkl.
* wa_log-wgbez = wa_final-wgbez.
* wa_log-sub_group = wa_final-sub_group.
* wa_log-sub_group1 = wa_final-sub_group1.
* wa_log-item_desc = wa_final-item_desc.
* wa_log-MAT_desc = wa_final-MAT_desc.
*
* "modify zmm_subg from wa_log TRANSPORTING.
* APPEND wa_log TO it_log.
* "ENDIF.
* ENDLOOP.
*
*
* MODIFY zmm_subg FROM TABLE it_log.
*
* IF wa_final-item_desc IS not INITIAL.
* MESSAGE 'data updated' TYPE 'I'.
*
* ELSE.
*
* MESSAGE 'data already present' TYPE 'E'.
* ENDIF.

"select item_desc from zmm_subg into table @data(it_new).

" INDEX selfield-tabindex.


"read table it_final into wa_final with key item_desc = wa_final-
item_desc.
* if wa_new-item_desc = wa_final-item_desc.
* MESSAGE 'data already present' TYPE 'E'.
* else.
LOOP AT it_matdesc INTO wa_matdesc.

SELECT SINGLE item_desc FROM zmm_MATDESC INTO @DATA(wa_new)


WHERE item_desc = @wa_MATDESC-item_desc.
IF wa_new IS INITIAL.
wa_log-matkl = wa_MATDESC-matkl.
wa_log-wgbez = wa_MATDESC-wgbez.
wa_log-sub_group_desc = wa_matdesc-sub_group_desc.
wa_log-sub_group1_desc = wa_matdesc-sub_group1_desc.
wa_log-sub_group = wa_matdesc-sub_group.
wa_log-sub_group1 = wa_matdesc-sub_group1.
wa_log-item_desc = wa_MATDESC-item_desc.
wa_log-MAT_desc = wa_MATDESC-MAT_desc.

"modify zmm_subg from wa_log TRANSPORTING.


APPEND wa_log TO it_log.
CLEAR wa_log.
"ENDIF.
ELSE.
MESSAGE 'Data already exist' TYPE 'I'.
ENDIF.
CLEAR wa_new.
ENDLOOP.

MODIFY zmm_matdesc FROM TABLE it_log.

IF sy-subrc = 0.
MESSAGE 'Data modified sucessfully' TYPE 'I'.

* ELSE.
*
* MESSAGE 'data already present' TYPE 'E'.
ENDIF.

ENDCASE.

ENDMODULE.
*&---------------------------------------------------------------------*
*& Module FILL_MATKL_ON_F4 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE fill_matkl_on_f4 INPUT.

SELECT matkl
wgbez FROM t023t INTO CORRESPONDING FIELDS OF TABLE it_t023t.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'


EXPORTING
* DDIC_STRUCTURE = ' '
retfield = 'MATKL'
* PVALKEY = ' '
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'WA_matdesc-MATKL'
* STEPL = 0
* WINDOW_TITLE =
* VALUE = ' '
value_org = 'S'
* MULTIPLE_CHOICE = ' '
* DISPLAY = ' '
* CALLBACK_PROGRAM = ' '
* CALLBACK_FORM = ' '
* CALLBACK_METHOD =
* MARK_TAB =
* IMPORTING
* USER_RESET =
TABLES
value_tab = it_t023t
* FIELD_TAB =
return_tab = i_return_tab
"DYNPFLD_MAPPING = t_mapping
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
* IF sy-subrc <> 0.
** Implement suitable error handling here
* ENDIF.

*
* READ TABLE i_return_tab INTO w_return_tab INDEX 1.
* WA_matdesc-matkl = w_return_tab-fieldval.
* READ TABLE it_t023t INTO wa_t023t WITH KEY matkl = wa_matdesc-matkl.
* IF sy-subrc = 0.
* w_dynpfields-fieldname = 'WA_MATDESC-WGBEZ'.
* w_dynpfields-fieldvalue = wa_t023t-wgbez.
* APPEND w_dynpfields TO i_dynpfields.
* CLEAR w_dynpfields.
* "DYNP_VALUES_UPDATE
*
* CALL FUNCTION 'DYNP_VALUES_UPDATE'
* EXPORTING
* dyname = sy-repid
* dynumb = sy-dynnr
* TABLES
* dynpfields = i_dynpfields
* EXCEPTIONS
* INVALID_ABAPWORKAREA = 1
* INVALID_DYNPROFIELD = 2
* INVALID_DYNPRONAME = 3
* INVALID_DYNPRONUMMER = 4
* INVALID_REQUEST = 5
* NO_FIELDDESCRIPTION = 6
* UNDEFIND_ERROR = 7
* OTHERS = 8
* .
* IF sy-subrc <> 0.
** Implement suitable error handling here
* ENDIF.
* endif.

ENDMODULE.
*&---------------------------------------------------------------------*
*& Module FILL_SUB_GROUP_DESC_ON_F4 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE fill_sub_group_desc_on_f4 INPUT.
SELECT sub_group_desc
sub_group FROM zmm_subgrp INTO CORRESPONDING FIELDS OF TABLE
it_subg.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
* DDIC_STRUCTURE = ' '
retfield = 'SUB_GROUP_DESC'
* PVALKEY = ' '
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'WA_MATDESC-SUB_GROUP_DESC'
* STEPL = 0
* WINDOW_TITLE =
* VALUE = ' '
value_org = 'S'
* MULTIPLE_CHOICE = ' '
* DISPLAY = ' '
* CALLBACK_PROGRAM = ' '
* CALLBACK_FORM = ' '
* CALLBACK_METHOD =
* MARK_TAB =
* IMPORTING
* USER_RESET =
TABLES
value_tab = it_subg
* FIELD_TAB =
* RETURN_TAB =
* DYNPFLD_MAPPING =
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module FILL_SUB_GROUP1_DESC_ON_F4 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE fill_sub_group1_desc_on_f4 INPUT.
SELECT sub_group1_desc
sub_group1 FROM zmm_subgrp INTO CORRESPONDING FIELDS OF TABLE it
_subg.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
* DDIC_STRUCTURE = ' '
retfield = 'sub_group1_desc'
* PVALKEY = ' '
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'WA_MATDESC-sub_group1_desc'
* STEPL = 0
* WINDOW_TITLE =
* VALUE = ' '
value_org = 'S'
* MULTIPLE_CHOICE = ' '
* DISPLAY = ' '
* CALLBACK_PROGRAM = ' '
* CALLBACK_FORM = ' '
* CALLBACK_METHOD =
* MARK_TAB =
* IMPORTING
* USER_RESET =
TABLES
value_tab = it_subg
* FIELD_TAB =
* RETURN_TAB =
* DYNPFLD_MAPPING =
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDMODULE.
*&---------------------------------------------------------------------*
**& Module FILL_WGBEZ_ON_F4 INPUT
**&---------------------------------------------------------------------*
** text
**----------------------------------------------------------------------*
*MODULE fill_wgbez_on_f4 INPUT.
* SELECT matkl , wgbez FROM t023t INTO TABLE @DATA(t1_T023T).
* CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
* EXPORTING
** DDIC_STRUCTURE = ' '
* retfield = 'WGBEZ'
** PVALKEY = ' '
* dynpprog = sy-repid
* dynpnr = sy-dynnr
* dynprofield = 'WA_MATDESC-WGBEZ'
** STEPL = 0
** WINDOW_TITLE =
** VALUE = ' '
* value_org = 'S'
** MULTIPLE_CHOICE = ' '
** DISPLAY = ' '
** CALLBACK_PROGRAM = ' '
** CALLBACK_FORM = ' '
** CALLBACK_METHOD =
** MARK_TAB =
** IMPORTING
** USER_RESET =
* TABLES
* value_tab = t1_T023T
** FIELD_TAB =
** RETURN_TAB =
** DYNPFLD_MAPPING =
* EXCEPTIONS
* parameter_error = 1
* no_values_found = 2
* OTHERS = 3.
* IF sy-subrc <> 0.
** Implement suitable error handling here
* ENDIF.
*
*ENDMODULE.

You might also like