Skip to Content
0
Former Member
May 25, 2009 at 03:32 AM

How to make some of the records in ALV Grid read only

386 Views

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