Hi Experts,
I need to display some of the records in an alv grid read only based on the status field value inside my internal Table. How can I do this, pls advice me.
I am pasting my code below, i need to make my bdmng_n field to be read only if gt_output-status_pkl eq ' '. else the bdmng_n field can be editable.
IF l_f_chk = 3.
PERFORM display USING:
1 1 'PKLNO' text-t01 15 ' ' ' ' ' ' ' ' ' '
' ' 'GT_OUTPUT' ' ',
1 2 'PSPNR_EQ_E' text-t04 14 ' ' ' ' ' ' ' ' ' '
' ' 'GT_OUTPUT' ' ',
1 3 'PKLIT' text-t02 13 ' ' ' ' ' ' 'C400' 'L'
' ' 'GT_OUTPUT' ' ',
1 4 'VBELN_N' text-t22 10 ' ' ' ' ' ' ' ' ' '
' ' 'GT_OUTPUT' ' ',
1 5 'ERDAT_PK' text-t21 15 ' ' ' ' ' ' ' ' ' '
' ' 'GT_OUTPUT' ' ',
1 6 'POSNR_N' text-t23 13 ' ' ' ' ' ' 'C400' 'L'
' ' 'GT_OUTPUT' ' ',
1 7 'POST1' text-t05 40 ' ' ' ' ' ' ' ' ' '
' ' 'GT_OUTPUT' ' ',
1 8 'CREADAT' text-t06 10 ' ' ' ' ' ' 'C400' 'L'
' ' 'GT_OUTPPUT' ' ',
1 9 'BDTER' text-t07 10 ' ' ' ' ' ' 'C400' 'L'
' ' 'GT_OUTPUT' ' ',
1 10 'RFPNT' text-t08 20 ' ' ' ' ' ' ' ' ' '
' ' 'GT_OUTPUT' ' ',
1 11 'MATNR' text-t09 18 ' ' ' ' ' ' ' ' ' '
' ' 'GT_OUTPUT' ' ',
1 12 'MAKTX' text-t10 40 ' ' ' ' ' ' ' ' ' '
' ' 'GT_OUTPUT' ' ',
1 13 'BDMNG' text-t11 24 ' ' ' ' ' ' ' ' ' '
' ' 'GT_OUTPUT' ' ',
1 14 'BDMNG_PK' text-t13 15 ' ' ' ' ' ' ' ' ' '
' ' 'GT_OUTPUT' ' ',
1 15 'BDMNG_O' text-t19 12 ' ' ' ' ' ' ' ' ' '
' ' 'GT_OUTPUT' ' ',
1 16 'CHECK1' text-t24 10 ' ' ' ' ' ' ' ' ' '
' ' 'GT_OUTPUT' 'X'.
ENDIF.
Sort List
PERFORM sort_list USING
1 'PKLNO' 'GT_OUTPUT' ' ' 'X'.
wrk_layout-zebra = 'X'.
wrk_layout-numc_sum = ' '.
wrk_layout-get_selinfos = 'X'.
wrk_layout-detail_popup = 'X'.
wrk_layout-cell_merge = ' '.
CLEAR wrk_print.
wrk_print-no_change_print_params = 'X'.
wrk_print-no_print_selinfos = 'X'.
wrk_print-no_print_listinfos = 'X'.
SORT gt_output BY pklno DESCENDING pklit ASCENDING.
call alv
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' "#EC *
EXPORTING
i_callback_program = sy-repid
is_layout = wrk_layout
it_fieldcat = wrk_fieldcat
i_callback_top_of_page = c_top_of_page
i_callback_pf_status_set = c_alv_pf_status_set
it_sort = it_sort
i_callback_user_command = c_alv_user_command
I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
i_save = 'A'
is_variant = alv_variant
is_print = wrk_print
TABLES
t_outtab = gt_output
EXCEPTIONS
program_error = 1
OTHERS = 2 .
-
*
FORM display USING l p f d o of h i c j a t ch. "#EC *
--------------------------------------------------------------------*
DATA: wrk_fld TYPE slis_fieldcat_alv.
DATA: ok_code TYPE sy-ucomm,
save_ok TYPE sy-ucomm.
DATA: lines TYPE i,
limit TYPE i.
CLEAR : wrk_fld.
MOVE l TO wrk_fld-row_pos.
MOVE p TO wrk_fld-col_pos.
MOVE f TO wrk_fld-fieldname.
MOVE d TO : wrk_fld-seltext_l ,
wrk_fld-seltext_m ,
wrk_fld-seltext_s .
MOVE o TO wrk_fld-outputlen.
MOVE h TO wrk_fld-hotspot.
MOVE i TO wrk_fld-input.
MOVE c TO wrk_fld-emphasize.
MOVE t TO wrk_fld-tabname.
MOVE a TO wrk_fld-icon.
MOVE j TO wrk_fld-just.
MOVE of TO wrk_fld-offset.
MOVE ch TO wrk_fld-checkbox."added
IF falv IS INITIAL.
CASE f.
WHEN 'PKLNO' . "OR 'PKLIT' OR 'VBELN' OR 'POSNR' or 'PSPNR_RT_E' or 'PSPNR_EQ_E' or 'POST1' or 'CREADAT' or 'BDTER' or 'RFPNT' or 'MATNR' or 'MAKTX' or 'BDMNG' or 'BDMNG_OS' or 'BDMNG_PK'.
WHEN 'BDMNG_N'.
wrk_fld-edit = 'X'.
WHEN 'BDMNG'.
MOVE 'MEINS' TO wrk_fld-qfieldname.
WHEN 'BDMNG_O'.
wrk_fld-edit = 'X'.
WHEN 'CHECK'.
wrk_fld-input = 'X'.
wrk_fld-edit = 'X'.
WHEN 'CHECK1'.
wrk_fld-input = 'X'.
wrk_fld-edit = 'X'.
ENDCASE.
APPEND wrk_fld TO wrk_fieldcat.
ENDIF.
ENDFORM. " DISPLAY