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

Editable ALV

Former Member
0 Likes
2,343

Hello All,

I have a question about editable ALV. Is it possible to make certail lines editable and some are not?

Thanks,

Jim

9 REPLIES 9
Read only

Former Member
Read only

Former Member
0 Likes
900

Sure -:)

Look at this sample code -:D It uses OO ALV.


*&-----------------------------------------------------------*
*& Report  Z_DUMMY_ATG
*&-----------------------------------------------------------*

REPORT  Z_DUMMY_ATG NO STANDARD PAGE HEADING.

TABLES: SPFLI.

*============================================================
* Variables
*============================================================

DATA: OK_CODE TYPE SY-UCOMM,
      L_MODE TYPE RAW4,
      W_TABIX TYPE SY-TABIX.

*============================================================
* Tablas internas
*============================================================
DATA: L_S_LAYO TYPE LVC_S_LAYO.

DATA: WA_EDIT TYPE LVC_T_STYL WITH HEADER LINE.
DATA: IT_EDIT TYPE LVC_T_STYL WITH HEADER LINE.

DATA: BEGIN OF G_WA_SFLIGHT.
        INCLUDE STRUCTURE SPFLI.
DATA: CELL_TAB TYPE LVC_T_STYL.
DATA: END OF G_WA_SFLIGHT.

TYPES: BEGIN OF SPFLI_TAB.
        INCLUDE STRUCTURE SPFLI.
TYPES: CELL_TAB TYPE LVC_T_STYL.
TYPES: END OF SPFLI_TAB.

TYPES: SPFLI_TABS TYPE STANDARD TABLE OF SPFLI_TAB.

DATA: GI_SFLIGHT TYPE SPFLI_TABS.

DATA: BEGIN OF AUX_TAB OCCURS 0,
      CARRID LIKE SPFLI-CARRID,
      CONNID LIKE SPFLI-CONNID,
      CITYFROM LIKE SPFLI-CITYFROM,
      AIRPFROM LIKE SPFLI-AIRPFROM,
      CITYTO LIKE SPFLI-CITYTO,
      AIRPTO LIKE SPFLI-AIRPTO,
      END OF AUX_TAB.

DATA: SPFLI_TAB_WA LIKE G_WA_SFLIGHT.
FIELD-SYMBOLS: <SF> STRUCTURE G_WA_SFLIGHT 
               DEFAULT SPFLI_TAB_WA.

*============================================================
* Objetos
*============================================================

DATA: CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
      ALV_LIST TYPE REF TO CL_GUI_ALV_GRID.

*============================================================
* Selección de Datos
*============================================================

SELECT *
FROM SPFLI
INTO CORRESPONDING FIELDS OF TABLE AUX_TAB .

LOOP AT AUX_TAB.
  MOVE-CORRESPONDING AUX_TAB TO <SF>.
  APPEND <SF> TO GI_SFLIGHT.
ENDLOOP.

*============================================================
* Instancimiento de Objetos
*============================================================

CREATE OBJECT CONTAINER
       EXPORTING CONTAINER_NAME = 'LIST_AREA'.

CREATE OBJECT ALV_LIST
       EXPORTING I_PARENT = CONTAINER.

*============================================================
* Procesamiento
*============================================================

LOOP AT GI_SFLIGHT INTO G_WA_SFLIGHT.
  W_TABIX = SY-TABIX.
  IF G_WA_SFLIGHT-CITYTO EQ 'SAN FRANCISCO'.
    L_MODE = CL_GUI_ALV_GRID=>MC_STYLE_ENABLED.
    MOVE 'CITYTO' TO WA_EDIT-FIELDNAME.
    MOVE L_MODE TO WA_EDIT-STYLE.
    INSERT WA_EDIT INTO IT_EDIT INDEX W_TABIX.
    G_WA_SFLIGHT-CELL_TAB[] = IT_EDIT[].
  ENDIF.
  MODIFY GI_SFLIGHT FROM G_WA_SFLIGHT.
ENDLOOP.

MOVE 'CELL_TAB' TO L_S_LAYO-STYLEFNAME.

CALL METHOD ALV_LIST->SET_READY_FOR_INPUT
      EXPORTING I_READY_FOR_INPUT = 1.

CALL METHOD ALV_LIST->SET_TABLE_FOR_FIRST_DISPLAY(
                      EXPORTING I_STRUCTURE_NAME = 'SPFLI'
                                IS_LAYOUT = L_S_LAYO
                      CHANGING IT_OUTTAB = GI_SFLIGHT ).

*============================================================
* Dynpro
*============================================================

CALL SCREEN 100.

*&-----------------------------------------------------------
*&      Module  STATUS_0100  OUTPUT
*&-----------------------------------------------------------
MODULE STATUS_0100 OUTPUT.
  SET PF-STATUS '100'.
ENDMODULE.

*&-----------------------------------------------------------
*&      Module  USER_COMMAND_0100  INPUT
*&-----------------------------------------------------------
MODULE USER_COMMAND_0100 INPUT.
  OK_CODE = SY-UCOMM.
  IF OK_CODE = 'BACK'.
    SET SCREEN 0.
    LEAVE SCREEN.
    CLEAR OK_CODE.
  ENDIF.
ENDMODULE.

Greetings,

Blag.

Read only

0 Likes
900

Hi.

Do you have a sample code which is not OO-related? I am not good at object oriented.

Thanks,

Jim

Read only

0 Likes
900

Sorry Jim -:( I'm not...I made that code, because I need it for a requirement...But I don't think it would be difficult to adapted to "normal" ALV...

Greetings,

Blag.

Read only

Former Member
0 Likes
900

Yes You can. Its possible.

Shreekant

Read only

0 Likes
900

Hi Shreekant,

Can you please teach me how?

Thanks,

Jim

Read only

Former Member
0 Likes
900

Hi,

Please check this link.

http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_editable.htm

Then you can capture the events in USER COMMAND.

http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_ucomm.htm

Regards,

Ferry Lianto

Read only

0 Likes
900

Hi Ferry,

Thanks a lot for the link. But I still have a problem. My editable fields in the ALV should be 3 fields. When I try to add more fields which should be uneditable, I get a dump.

Thanks,

Jim

Read only

Former Member
0 Likes
900

I use this code:

LOOP AT i_display INTO ls_listrow WHERE payment_amount NE space.

ls_stylerow-fieldname = 'PAYMENT_AMOUNT' .

ls_stylerow-style = cl_gui_alv_grid=>mc_style_disabled.

INSERT ls_stylerow INTO TABLE lt_styletab.

ls_stylerow-fieldname = 'CASH_PAY_AMT' .

ls_stylerow-style = cl_gui_alv_grid=>mc_style_disabled.

INSERT ls_stylerow INTO TABLE lt_styletab.

ls_stylerow-fieldname = 'CHEQUE_PAY_AMT' .

ls_stylerow-style = cl_gui_alv_grid=>mc_style_disabled.

INSERT ls_stylerow INTO TABLE lt_styletab.

INSERT LINES OF lt_styletab INTO TABLE ls_listrow-celltab.

MODIFY i_display FROM ls_listrow.

ENDLOOP.

Thanks to all who replied.

Jim