Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

ALV - Input enable control

Former Member
0 Likes
631

Hi frnds,

i need a sample prog in ALV of Input enable. here my client wants to edit some column data in table, according to that the remaining columns of the table should change. here i am planning to write Dailog Prog with table control. but i heard that, using ALV input enable we can do the same functionality. so, if any one having the sample prog. please send me.

thanks in advance.

Regards,

Balu

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
594

REPORT zabalv .

TABLES : rmmg1,MCHB, mkpf.

DATA: BEGIN OF t_mseg OCCURS 0,

zeile LIKE mseg-zeile,

menge LIKE mseg-menge,

meins LIKE mseg-meins,

matnr LIKE mseg-matnr,

werks LIKE mseg-werks,

charg LIKE mseg-charg,

bwart LIKE mseg-bwart,

END OF t_mseg.

DATA:BEGIN OF t_mchb OCCURS 0.

INCLUDE STRUCTURE mchb.

data flag type c.

  • matnr LIKE mchb-matnr,

  • charg LIKE mchb-charg,

  • werks LIKE mchb-werks,

  • clabs LIKE mchb-clabs,

DATA END OF t_mchb.

TYPE-POOLS slis.

data: progname like sy-repid,

fieldcattab TYPE slis_t_fieldcat_alv WITH HEADER LINE.

data tabindex type i.

data wa_matnr LIKE mchb-matnr.

progname = sy-repid.

SELECTION-SCREEN BEGIN OF BLOCK b_b1 WITH FRAME TITLE text-001.

SELECT-OPTIONS s_docno FOR mkpf-mblnr OBLIGATORY.

PARAMETERS p_docyr LIKE mkpf-mjahr OBLIGATORY.

SELECTION-SCREEN END OF BLOCK b_b1.

START-OF-SELECTION.

SELECT zeile

menge

meins

matnr

werks

charg

bwart

FROM mseg

INTO TABLE t_mseg

WHERE mblnr IN s_docno AND mjahr = p_docyr.

CLEAR fieldcattab.

fieldcattab-col_pos = 1.

fieldcattab-fieldname = 'ZEILE'.

fieldcattab-tabname = 'T_MSEG'.

fieldcattab-fix_column = 'X'.

fieldcattab-seltext_l = 'Item'.

APPEND fieldcattab.

CLEAR fieldcattab.

fieldcattab-col_pos = 2.

fieldcattab-fieldname = 'MENGE'.

fieldcattab-tabname = 'T_MSEG'.

fieldcattab-seltext_l = 'Quantity'.

APPEND fieldcattab.

CLEAR fieldcattab.

fieldcattab-col_pos = 3.

fieldcattab-fieldname = 'MEINS'.

fieldcattab-tabname = 'T_MSEG'.

fieldcattab-seltext_l = 'Unit'.

APPEND fieldcattab.

CLEAR fieldcattab.

fieldcattab-col_pos = 4.

fieldcattab-fieldname = 'MATNR'.

fieldcattab-tabname = 'T_MSEG'.

fieldcattab-seltext_l = 'Material'.

APPEND fieldcattab.

CLEAR fieldcattab.

fieldcattab-col_pos = 5.

fieldcattab-fieldname = 'WERKS'.

fieldcattab-tabname = 'T_MSEG'.

fieldcattab-seltext_l = 'Plant'.

APPEND fieldcattab.

CLEAR fieldcattab.

fieldcattab-col_pos = 6.

fieldcattab-fieldname = 'CHARG'.

fieldcattab-tabname = 'T_MSEG'.

fieldcattab-seltext_l = 'Batch No'.

APPEND fieldcattab.

CLEAR fieldcattab.

fieldcattab-col_pos = 7.

fieldcattab-fieldname = 'BWART'.

fieldcattab-tabname = 'T_MSEG'.

fieldcattab-seltext_l = 'Inventory'.

fieldcattab-hotspot = 'X'.

APPEND fieldcattab.

end-of-selection.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = PROGNAME

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'USERCOMMAND1'

  • 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 = fieldcattab[]

  • 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

  • IT_ALV_GRAPHICS =

  • IT_ADD_FIELDCAT = fieldcattab

  • IT_HYPERLINK =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = t_mseg

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

FORM usercommand1 USING r_ucomm LIKE sy-ucomm rs_selfield TYPE

slis_selfield.

CASE r_ucomm.

WHEN '&IC1'.

tabindex = rs_selfield-tabindex.

read table t_mseg INDEX tabindex.

select * from mchb into table t_mchb where matnr = t_mseg-matnr.

clear fieldcattab.

CLEAR fieldcattab[].

fieldcattab-col_pos = 1.

fieldcattab-fieldname = 'FLAG'.

fieldcattab-tabname = 'T_MCHB'.

fieldcattab-fix_column = 'X'.

fieldcattab-seltext_l = 'Check Box'.

fieldcattab-input = 'X'.

fieldcattab-edit = 'X'.

fieldcattab-checkbox = 'X'.

APPEND fieldcattab.

clear fieldcattab.

fieldcattab-col_pos = 2.

fieldcattab-fieldname = 'MATNR'.

fieldcattab-tabname = 'T_MCHB'.

fieldcattab-fix_column = 'X'.

fieldcattab-seltext_l = 'Material'.

fieldcattab-emphasize = 'C1'.

fieldcattab-input = 'X'.

fieldcattab-edit = 'X'.

  • fieldcattab-checkbox = 'X'.

APPEND fieldcattab.

clear fieldcattab.

fieldcattab-col_pos = 3.

fieldcattab-fieldname = 'CHARG'.

fieldcattab-tabname = 'T_MCHB'.

fieldcattab-seltext_l = 'Batch No'.

fieldcattab-emphasize = 'C2'.

fieldcattab-input = 'X'.

fieldcattab-edit = 'X'.

APPEND fieldcattab.

clear fieldcattab.

fieldcattab-col_pos = 4.

fieldcattab-fieldname = 'WERKS'.

fieldcattab-tabname = 'T_MCHB'.

fieldcattab-seltext_l = 'Plant'.

fieldcattab-emphasize = 'C30'.

fieldcattab-input = 'X'.

fieldcattab-edit = 'X'.

APPEND fieldcattab.

clear fieldcattab.

fieldcattab-col_pos = 5.

fieldcattab-fieldname = 'CLABS'.

fieldcattab-tabname = 'T_MCHB'.

fieldcattab-seltext_l = 'Stock'.

fieldcattab-emphasize = 'C601'.

fieldcattab-input = 'X'.

fieldcattab-edit = 'X'.

APPEND fieldcattab.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = PROGNAME

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'USERCOMMAND2'

  • 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 = FIELDCATTAB[]

  • 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

  • IT_ALV_GRAPHICS =

  • IT_ADD_FIELDCAT =

  • IT_HYPERLINK =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = t_mchb

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

endcase.

endform.

FORM usercommand2 USING r_ucomm LIKE sy-ucomm rs_selfield TYPE

slis_selfield.

CASE r_ucomm.

WHEN '&IC1'.

IF rs_selfield-sel_tab_field = 'T_MCHB-MATNR'.

  • CALL FUNCTION 'ZALV2'

  • EXPORTING

    • CTU = 'X'

  • MODE = 'E'

  • UPDATE = 'A'

    • GROUP =

    • USER =

    • KEEP =

    • HOLDDATE =

    • NODATA = '/'

  • MATNR_001 = '200-200'

    • KZSEL_01_002 = 'X'

    • IMPORTING

    • SUBRC =

    • TABLES

    • MESSTAB =

  • .

**

SET PARAMETER ID 'RID' FIELD RMMG1-MATNR.

CALL TRANSACTION 'MM03' and skip first screen.

    • ENDIF.

    • ENDCASE.

*

  • CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

  • EXPORTING

  • i_callback_program = progname

  • i_callback_user_command = 'USERCOMMAND3'

  • it_fieldcat = fieldcattab[]

  • TABLES

  • t_outtab = t_mchb

  • EXCEPTIONS

  • program_error = 1

  • OTHERS = 2.

*

  • IF sy-subrc <> 0.

  • MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

  • WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

endcase.

ENDFORM.

Regards

Abhishek

4 REPLIES 4
Read only

naimesh_patel
Active Contributor
0 Likes
594

Hello,

See this treads:

Regards,

Naimesh

Read only

Former Member
0 Likes
594

hi,

try these standard program,>

BCALV_EDIT_01

BCALV_EDIT_02

BCALV_EDIT_03

BCALV_EDIT_04

BCALV_FULLSCREEN_GRID_EDIT

BCALV_GRID_EDIT

BCALV_TEST_GRID_EDIT_01

BCALV_TEST_GRID_EDITABLE

hope it will help u

with regards

chetan vishnoi

Read only

Former Member
0 Likes
595

REPORT zabalv .

TABLES : rmmg1,MCHB, mkpf.

DATA: BEGIN OF t_mseg OCCURS 0,

zeile LIKE mseg-zeile,

menge LIKE mseg-menge,

meins LIKE mseg-meins,

matnr LIKE mseg-matnr,

werks LIKE mseg-werks,

charg LIKE mseg-charg,

bwart LIKE mseg-bwart,

END OF t_mseg.

DATA:BEGIN OF t_mchb OCCURS 0.

INCLUDE STRUCTURE mchb.

data flag type c.

  • matnr LIKE mchb-matnr,

  • charg LIKE mchb-charg,

  • werks LIKE mchb-werks,

  • clabs LIKE mchb-clabs,

DATA END OF t_mchb.

TYPE-POOLS slis.

data: progname like sy-repid,

fieldcattab TYPE slis_t_fieldcat_alv WITH HEADER LINE.

data tabindex type i.

data wa_matnr LIKE mchb-matnr.

progname = sy-repid.

SELECTION-SCREEN BEGIN OF BLOCK b_b1 WITH FRAME TITLE text-001.

SELECT-OPTIONS s_docno FOR mkpf-mblnr OBLIGATORY.

PARAMETERS p_docyr LIKE mkpf-mjahr OBLIGATORY.

SELECTION-SCREEN END OF BLOCK b_b1.

START-OF-SELECTION.

SELECT zeile

menge

meins

matnr

werks

charg

bwart

FROM mseg

INTO TABLE t_mseg

WHERE mblnr IN s_docno AND mjahr = p_docyr.

CLEAR fieldcattab.

fieldcattab-col_pos = 1.

fieldcattab-fieldname = 'ZEILE'.

fieldcattab-tabname = 'T_MSEG'.

fieldcattab-fix_column = 'X'.

fieldcattab-seltext_l = 'Item'.

APPEND fieldcattab.

CLEAR fieldcattab.

fieldcattab-col_pos = 2.

fieldcattab-fieldname = 'MENGE'.

fieldcattab-tabname = 'T_MSEG'.

fieldcattab-seltext_l = 'Quantity'.

APPEND fieldcattab.

CLEAR fieldcattab.

fieldcattab-col_pos = 3.

fieldcattab-fieldname = 'MEINS'.

fieldcattab-tabname = 'T_MSEG'.

fieldcattab-seltext_l = 'Unit'.

APPEND fieldcattab.

CLEAR fieldcattab.

fieldcattab-col_pos = 4.

fieldcattab-fieldname = 'MATNR'.

fieldcattab-tabname = 'T_MSEG'.

fieldcattab-seltext_l = 'Material'.

APPEND fieldcattab.

CLEAR fieldcattab.

fieldcattab-col_pos = 5.

fieldcattab-fieldname = 'WERKS'.

fieldcattab-tabname = 'T_MSEG'.

fieldcattab-seltext_l = 'Plant'.

APPEND fieldcattab.

CLEAR fieldcattab.

fieldcattab-col_pos = 6.

fieldcattab-fieldname = 'CHARG'.

fieldcattab-tabname = 'T_MSEG'.

fieldcattab-seltext_l = 'Batch No'.

APPEND fieldcattab.

CLEAR fieldcattab.

fieldcattab-col_pos = 7.

fieldcattab-fieldname = 'BWART'.

fieldcattab-tabname = 'T_MSEG'.

fieldcattab-seltext_l = 'Inventory'.

fieldcattab-hotspot = 'X'.

APPEND fieldcattab.

end-of-selection.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = PROGNAME

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'USERCOMMAND1'

  • 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 = fieldcattab[]

  • 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

  • IT_ALV_GRAPHICS =

  • IT_ADD_FIELDCAT = fieldcattab

  • IT_HYPERLINK =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = t_mseg

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

FORM usercommand1 USING r_ucomm LIKE sy-ucomm rs_selfield TYPE

slis_selfield.

CASE r_ucomm.

WHEN '&IC1'.

tabindex = rs_selfield-tabindex.

read table t_mseg INDEX tabindex.

select * from mchb into table t_mchb where matnr = t_mseg-matnr.

clear fieldcattab.

CLEAR fieldcattab[].

fieldcattab-col_pos = 1.

fieldcattab-fieldname = 'FLAG'.

fieldcattab-tabname = 'T_MCHB'.

fieldcattab-fix_column = 'X'.

fieldcattab-seltext_l = 'Check Box'.

fieldcattab-input = 'X'.

fieldcattab-edit = 'X'.

fieldcattab-checkbox = 'X'.

APPEND fieldcattab.

clear fieldcattab.

fieldcattab-col_pos = 2.

fieldcattab-fieldname = 'MATNR'.

fieldcattab-tabname = 'T_MCHB'.

fieldcattab-fix_column = 'X'.

fieldcattab-seltext_l = 'Material'.

fieldcattab-emphasize = 'C1'.

fieldcattab-input = 'X'.

fieldcattab-edit = 'X'.

  • fieldcattab-checkbox = 'X'.

APPEND fieldcattab.

clear fieldcattab.

fieldcattab-col_pos = 3.

fieldcattab-fieldname = 'CHARG'.

fieldcattab-tabname = 'T_MCHB'.

fieldcattab-seltext_l = 'Batch No'.

fieldcattab-emphasize = 'C2'.

fieldcattab-input = 'X'.

fieldcattab-edit = 'X'.

APPEND fieldcattab.

clear fieldcattab.

fieldcattab-col_pos = 4.

fieldcattab-fieldname = 'WERKS'.

fieldcattab-tabname = 'T_MCHB'.

fieldcattab-seltext_l = 'Plant'.

fieldcattab-emphasize = 'C30'.

fieldcattab-input = 'X'.

fieldcattab-edit = 'X'.

APPEND fieldcattab.

clear fieldcattab.

fieldcattab-col_pos = 5.

fieldcattab-fieldname = 'CLABS'.

fieldcattab-tabname = 'T_MCHB'.

fieldcattab-seltext_l = 'Stock'.

fieldcattab-emphasize = 'C601'.

fieldcattab-input = 'X'.

fieldcattab-edit = 'X'.

APPEND fieldcattab.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = PROGNAME

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'USERCOMMAND2'

  • 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 = FIELDCATTAB[]

  • 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

  • IT_ALV_GRAPHICS =

  • IT_ADD_FIELDCAT =

  • IT_HYPERLINK =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = t_mchb

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

endcase.

endform.

FORM usercommand2 USING r_ucomm LIKE sy-ucomm rs_selfield TYPE

slis_selfield.

CASE r_ucomm.

WHEN '&IC1'.

IF rs_selfield-sel_tab_field = 'T_MCHB-MATNR'.

  • CALL FUNCTION 'ZALV2'

  • EXPORTING

    • CTU = 'X'

  • MODE = 'E'

  • UPDATE = 'A'

    • GROUP =

    • USER =

    • KEEP =

    • HOLDDATE =

    • NODATA = '/'

  • MATNR_001 = '200-200'

    • KZSEL_01_002 = 'X'

    • IMPORTING

    • SUBRC =

    • TABLES

    • MESSTAB =

  • .

**

SET PARAMETER ID 'RID' FIELD RMMG1-MATNR.

CALL TRANSACTION 'MM03' and skip first screen.

    • ENDIF.

    • ENDCASE.

*

  • CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

  • EXPORTING

  • i_callback_program = progname

  • i_callback_user_command = 'USERCOMMAND3'

  • it_fieldcat = fieldcattab[]

  • TABLES

  • t_outtab = t_mchb

  • EXCEPTIONS

  • program_error = 1

  • OTHERS = 2.

*

  • IF sy-subrc <> 0.

  • MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

  • WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

endcase.

ENDFORM.

Regards

Abhishek

Read only

Former Member
0 Likes
594

hi,

hv u check the sample program which i gave u,

if yes than tell me it helps u or not

if yes than give points yaar

thanks

chetan vishnoi