‎2007 Apr 16 8:26 PM
Hello All,
I have a question about editable ALV. Is it possible to make certail lines editable and some are not?
Thanks,
Jim
‎2007 Apr 16 8:28 PM
Check this link:
http://help.sap.com/saphelp_47x200/helpdata/en/df/ef7f380c2f2e3ce10000009b38f8cf/frameset.htm
Regards,
Amey
‎2007 Apr 16 8:30 PM
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.
‎2007 Apr 16 8:33 PM
Hi.
Do you have a sample code which is not OO-related? I am not good at object oriented.
Thanks,
Jim
‎2007 Apr 16 8:35 PM
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.
‎2007 Apr 16 8:33 PM
‎2007 Apr 16 9:20 PM
‎2007 Apr 16 10:44 PM
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
‎2007 Apr 17 2:52 PM
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
‎2007 Apr 17 7:38 PM
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