In this tutorial we will explain how to hide a column in a table control use in a Dynpro screen.
As example, we will hide a column in the table control ‘TC_DLSAM’ (used in the MRP transaction MD06).
Step 1:
In the flow logic of the screen where the table control is used, we will have to call a module in the screen PBO (Process Before Output) which will contains the appropriate code logic to hide the column.
Code to call the module ‘F_HIDE_COLUMN’:
1 2 3 4 5 6 7 8 9 10 11 |
*---------------------- PROCESS BEFORE OUTPUT. *---------------------- * Some Codes… * Calling the module which will hide the column. MODULE f_hide_columns. |
Step 2:
The following code will hide the column ‘MRP Date’ from the table control ‘TC_DLSAM’.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
*----------------------------------------------------------------------* * Hiding the column 'MRP Date' in the table control 'TC_DLSAM' in * * screen 602 of transaction MD06. * *----------------------------------------------------------------------* MODULE f_hide_column OUTPUT. *----------------------------------------------------------------------* * Other Declarations may be needed: * CONTROLS: tc_dlsam TYPE TABLEVIEW USING SCREEN 602. * TYPE-POOL CXTAB . * TYPES CXTAB_COLUMN type scxtab_column. * Types: DATA: lst_cols TYPE cxtab_column. * Constants: CONSTANTS: lc_column_mrp_date TYPE char10 VALUE 'MDKE-DSDAT'. * We will have to loop at the standard table control 'TC_DLSAM' * deep structure 'COLS' and we will modify the display attribute * of column 'MRP Date' to hide it on the report. LOOP AT tc_dlsam-cols INTO lst_cols. * If the column name equals to 'MDKE-DSDAT'(MRP Date), proceed. IF lst_cols-screen-name EQ lc_column_mrp_date. * Set the 'Invisible' display attribute of column 'MRP Date' * to true to hide it. lst_cols-invisible = 1. * Modify the table control deep structure 'COLS' with the new * display attribute for column 'MRP Date'. MODIFY tc_dlsam-cols FROM lst_cols INDEX sy-tabix. ENDIF. * As a best practice, clear the structure * as its inside a loop. CLEAR: lst_cols. ENDLOOP. ENDMODULE. " F_HIDE_COLUMN OUTPUT |