2008 Jun 16 9:12 AM
i have displayed a alv with check boxes..
and two fields as editable..
now every thing is displayed exzactly..
i will i select a check box and input values to that fields
but when capturing the user command the internal table values are not modified
no 'X' in check box field...null vaues in the modified field..
whatz the problem
2008 Jun 16 10:00 AM
hi,
even i faced the same problem when i have a similar requirement. in order to populate' X' value in internal table.
set the fcode to '&REFRESH'
THEN USE EVENT_EXIT STRUCTURE IN SLIS.
populate the fields event_exit-after = 'X'.
pass it to grid display.
u will definitiely get it.
Rewards if useful.
Rgds.,
subash.
2008 Jun 16 9:14 AM
Hi,
In the structure of final internal table take one char field for checkbox.In the subroutine for 'USER_COMMAND',write :
Loop at itab where checkbox = 'X'.
-
endloop.
2008 Jun 16 9:16 AM
Are you using OOPS ALV? If so use method CHECK_CHANGED_DATA of Grid object to get the modified data in your internal table.
In the user command, call this method in the first statement, then write your code.
Regards,
Lakshmi.
Edited by: Santhanalakshmi V on Jun 16, 2008 1:46 PM
2008 Jun 16 9:17 AM
2008 Jun 16 9:42 AM
For checkbox in normal ALV:
1. Declare a field in internal table of type CHAR1.
2. Assign that field name to parameter box_fieldname in Layout structure
Then in the user command that field is automatically updated with the modification. (X when checked).
For other fields i don't have an idea.
Regards,
Lakshmi.
2008 Jun 16 9:48 AM
in list display its coming as 'X.
but in list display how to make the field editable
2008 Jun 16 9:54 AM
In the fieldcatelog set the EDIT parameter to X for this check box field. Then it will come in editable mode.
It works with ALV Grid also. REUSE_ALV_GRID_DISPLAY.
I think editing other fields and obtaining the values back in the internal table is only possible in OOPS ALV.
Regards,
Lakshmi.
2008 Jun 16 9:57 AM
This is my code..pl find out if i have missed out any thing..
everything is appearing corrctly...but no reflected in the itab
REPORT zbbnd_updation_ksd .
TABLES:zbbndmast.
DATA:diff TYPE i.
TYPES:BEGIN OF st_ce1tvse,
sel TYPE CHAR1,
kokrs TYPE zbbndmast-kokrs,
period TYPE zbbndmast-period,
budat TYPE zbbndmast-budat,
kndnr TYPE zbbndmast-kndnr,
kdgrp TYPE zbbndmast-kdgrp,
land1 TYPE zbbndmast-land1,
vkorg TYPE zbbndmast-vkorg,
vtweg TYPE zbbndmast-vtweg,
spart TYPE zbbndmast-spart,
werks TYPE zbbndmast-werks,
prctr TYPE zbbndmast-prctr,
gsber TYPE zbbndmast-gsber,
artnr TYPE zbbndmast-artnr,
matkl TYPE zbbndmast-matkl,
mvgr1 TYPE zbbndmast-mvgr1,
mvgr2 TYPE zbbndmast-mvgr2,
mvgr3 TYPE zbbndmast-mvgr3,
mvgr4 TYPE zbbndmast-mvgr4,
mvgr5 TYPE zbbndmast-mvgr5,
frwae TYPE zbbndmast-frwae,
absmg TYPE zbbndmast-absmg,
erlos TYPE zbbndmast-erlos,
absmgval TYPE zbbndmast-absmgval,
erlosval TYPE zbbndmast-erlosval,
mvg1d TYPE tvm1t-bezei,
mvg3d TYPE tvm3t-bezei,
mvg2d TYPE tvm2t-bezei,
mvg4d TYPE tvm4t-bezei,
mvg5d TYPE tvm5t-bezei,
wgbez TYPE t023t-wgbez,
vtwegd TYPE tvtwt-vtext,
spartd TYPE tspat-vtext,
prctrd TYPE cepct-ktext,
kdgrpd TYPE t151t-ktext,
END OF st_ce1tvse.
TYPES:BEGIN OF st_tvm3t,
mvgr3 TYPE tvm3t-mvgr3,
bezei TYPE tvm3t-bezei,
END OF st_tvm3t.
DATA:it_tvm3t TYPE STANDARD TABLE OF st_tvm3t INITIAL SIZE 0.
DATA:wa_tvm3t TYPE st_tvm3t.
TYPES:BEGIN OF st_tvm2t,
mvgr2 TYPE tvm2t-mvgr2,
bezei TYPE tvm2t-bezei,
END OF st_tvm2t.
DATA:it_tvm2t TYPE STANDARD TABLE OF st_tvm2t INITIAL SIZE 0.
DATA:wa_tvm2t TYPE st_tvm2t.
TYPES:BEGIN OF st_tvm4t,
mvgr4 TYPE tvm4t-mvgr4,
bezei TYPE tvm4t-bezei,
END OF st_tvm4t.
DATA:it_tvm4t TYPE STANDARD TABLE OF st_tvm4t INITIAL SIZE 0.
DATA:wa_tvm4t TYPE st_tvm4t.
TYPES:BEGIN OF st_tvm5t,
mvgr5 TYPE tvm5t-mvgr5,
bezei TYPE tvm5t-bezei,
END OF st_tvm5t.
DATA:it_tvm5t TYPE STANDARD TABLE OF st_tvm5t INITIAL SIZE 0.
DATA:wa_tvm5t TYPE st_tvm5t.
TYPES:BEGIN OF st_tvm1t,
mvgr1 TYPE tvm1t-mvgr1,
bezei TYPE tvm1t-bezei,
END OF st_tvm1t.
DATA:it_tvm1t TYPE STANDARD TABLE OF st_tvm1t INITIAL SIZE 0.
DATA:wa_tvm1t TYPE st_tvm1t.
TYPES:BEGIN OF st_maktx,
matnr TYPE marc-matnr,
maktx TYPE makt-maktx,
END OF st_maktx.
DATA:it_maktx TYPE STANDARD TABLE OF st_maktx INITIAL SIZE 0.
DATA:wa_maktx TYPE st_maktx.
TYPES:BEGIN OF st_matkl,
matkl TYPE t023t-matkl,
wgbez TYPE t023t-wgbez,
END OF st_matkl.
DATA: it_matkl TYPE STANDARD TABLE OF st_matkl INITIAL SIZE 0.
DATA:wa_matkl TYPE st_matkl.
TYPES:BEGIN OF st_vtweg,
vtweg TYPE tvtwt-vtweg,
vtext TYPE tvtwt-vtext,
END OF st_vtweg.
DATA: it_vtweg TYPE STANDARD TABLE OF st_vtweg INITIAL SIZE 0.
DATA:wa_vtweg TYPE st_vtweg.
TYPES:BEGIN OF st_spart,
spart TYPE tspat-spart,
vtext TYPE tspat-vtext,
END OF st_spart.
DATA: it_spart TYPE STANDARD TABLE OF st_spart INITIAL SIZE 0.
DATA:wa_spart TYPE st_spart.
TYPES:BEGIN OF st_prctr,
prctr TYPE cepct-prctr,
ktext TYPE cepct-ktext,
END OF st_prctr.
DATA: it_prctr TYPE STANDARD TABLE OF st_prctr INITIAL SIZE 0.
DATA:wa_prctr TYPE st_prctr.
TYPES:BEGIN OF st_kdgrp,
kdgrp TYPE t151t-kdgrp,
ktext TYPE t151t-ktext,
END OF st_kdgrp.
DATA: it_kdgrp TYPE STANDARD TABLE OF st_kdgrp INITIAL SIZE 0.
DATA:wa_kdgrp TYPE st_kdgrp.
DATA:it_tvse TYPE STANDARD TABLE OF st_ce1tvse INITIAL SIZE 0.
FIELD-SYMBOLS:<fs_tvse> TYPE st_ce1tvse.
TYPE-POOLS:slis.
DATA:alvfld TYPE slis_fieldcat_alv.
DATA:fieldcat TYPE STANDARD TABLE OF slis_fieldcat_alv INITIAL SIZE 0.
DATA:layout TYPE slis_layout_alv,
it_comments TYPE slis_t_listheader,
comments LIKE LINE OF it_comments.
DEFINE macro_alv.
alvfld-col_pos = &3.
alvfld-fieldname = &1.
alvfld-seltext_m = &2.
case &1.
when 'SEL'.
alvfld-checkbox = 'X'.
alvfld-edit = 'X'.
when 'ABSMGVAL' or 'ERLOSVAL'.
alvfld-edit = 'X'.
when 'ERLOS' or 'ABSMG'.
alvfld-emphasize = 'C310'.
when 'SEL' or 'PERIOD' or 'BUDAT' or 'KNDNR' or 'KDGRPD' or
'VKORG' or 'VTWEGD' or 'SPARTD' or 'WERKS' or
'PRCTRD'.
alvfld-fix_column = 'X'.
endcase.
append alvfld to fieldcat.
clear alvfld.
END-OF-DEFINITION.
PARAMETERS:pa_kokrs TYPE ce1tvse-kokrs DEFAULT '9000' MODIF ID abc.
SELECT-OPTIONS:so_budat FOR zbbndmast-budat OBLIGATORY NO-EXTENSION.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF screen-group1 = 'ABC'.
screen-input = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
INITIALIZATION.
PERFORM init_alv_catalouge.
AT SELECTION-SCREEN ON so_budat.
diff = ABS( so_budat-low - so_budat-high ).
IF diff > 2.
MESSAGE 'Date range must be for 3 days !!' TYPE 'E'.
ENDIF.
IF so_budat-low+4(2) <> so_budat-high+4(2).
MESSAGE 'Month must not be different !!' TYPE 'E'.
ENDIF.
START-OF-SELECTION.
TYPE-POOLS:ftis.
DATA:fiscal_year TYPE ftis_gjahr.
DATA:fiscal_month TYPE ftis_monat.
DATA:period TYPE ce1tvse-perio.
PERFORM convert_date_to_fiscal_period USING pa_kokrs so_budat-low
CHANGING fiscal_year
fiscal_month.
CONCATENATE fiscal_year '0' fiscal_month INTO period.
CONDENSE period NO-GAPS.
* PERFORM check_data_existense.
SELECT kokrs perio AS period budat kndnr kdgrp land1
vkorg vtweg spart werks prctr gsber artnr matkl
mvgr1 mvgr2 mvgr3 mvgr4 mvgr5 frwae SUM( absmg ) AS absmg
SUM( erlos ) AS erlos
FROM ce1tvse INTO CORRESPONDING FIELDS OF TABLE it_tvse
WHERE paledger = '01'
AND vrgar BETWEEN 'A' AND 'I'
AND perio = period
AND gjahr = fiscal_year
AND perde = fiscal_month
AND budat IN so_budat
AND kokrs = pa_kokrs
GROUP BY kokrs perio budat kndnr kdgrp land1 vkorg vtweg spart
werks prctr gsber artnr matkl mvgr1 mvgr2 mvgr3 mvgr4 mvgr5
frwae.
IF sy-subrc = 0.
PERFORM get_descriptions.
PERFORM process_itab.
PERFORM build_alv_header.
PERFORM display_alv.
ELSE.
MESSAGE 'No data Found !!' TYPE 'I'.
STOP.
ENDIF.
END-OF-SELECTION.
*&---------------------------------------------------------------------*
*& Form CONVERT_DATE_TO_FISCAL_PERIOD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_PA_KOKRS text
* -->P_SO_BUDAT_LOW text
* <--P_FISCAL_YEAR text
* <--P_FISCAL_MONTH text
*----------------------------------------------------------------------*
FORM convert_date_to_fiscal_period USING p_pa_kokrs
p_so_budat_low
CHANGING p_fiscal_year
p_fiscal_month.
CALL FUNCTION 'FTI_FISCAL_YEAR_MONTH_GET'
EXPORTING
i_bukrs = p_pa_kokrs
i_budat = p_so_budat_low
IMPORTING
e_gjahr = p_fiscal_year
e_monat = p_fiscal_month.
ENDFORM. " CONVERT_DATE_TO_FISCAL_PERIOD
*&---------------------------------------------------------------------*
*& Form CHECK_DATA_EXISTENSE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM check_data_existense .
SELECT SINGLE * FROM zbbndmast WHERE
kokrs = pa_kokrs
AND period = period
AND budat IN so_budat .
IF sy-subrc = 0.
MESSAGE 'Data already exists for this period' TYPE 'I'.
STOP.
ENDIF.
ENDFORM. " CHECK_DATA_EXISTENSE
*&---------------------------------------------------------------------*
*& Form GET_DESCRIPTIONS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_descriptions .
SORT it_tvse BY mvgr3 ASCENDING.
SELECT mvgr3 bezei INTO TABLE it_tvm3t FROM tvm3t
FOR ALL ENTRIES IN it_tvse
WHERE mvgr3 = it_tvse-mvgr3
AND spras = sy-langu.
SORT it_tvse BY mvgr1 ASCENDING.
SELECT mvgr1 bezei INTO TABLE it_tvm1t FROM tvm1t
FOR ALL ENTRIES IN it_tvse
WHERE mvgr1 = it_tvse-mvgr1
AND spras = sy-langu.
SORT it_tvse BY mvgr2 ASCENDING.
SELECT mvgr2 bezei INTO TABLE it_tvm2t FROM tvm2t
FOR ALL ENTRIES IN it_tvse
WHERE mvgr2 = it_tvse-mvgr2
AND spras = sy-langu.
SORT it_tvse BY mvgr4 ASCENDING.
SELECT mvgr4 bezei INTO TABLE it_tvm4t FROM tvm4t
FOR ALL ENTRIES IN it_tvse
WHERE mvgr4 = it_tvse-mvgr4
AND spras = sy-langu.
SORT it_tvse BY mvgr5 ASCENDING.
SELECT mvgr5 bezei INTO TABLE it_tvm5t FROM tvm5t
FOR ALL ENTRIES IN it_tvse
WHERE mvgr5 = it_tvse-mvgr5
AND spras = sy-langu.
SORT it_tvse BY artnr ASCENDING.
SELECT matnr maktx INTO TABLE it_maktx FROM makt
FOR ALL ENTRIES IN it_tvse
WHERE matnr = it_tvse-artnr
AND spras = sy-langu.
SORT it_tvse BY matkl ASCENDING.
SELECT matkl wgbez INTO TABLE it_matkl FROM t023t
FOR ALL ENTRIES IN it_tvse
WHERE matkl = it_tvse-matkl
AND spras = sy-langu.
SORT it_tvse BY vtweg ASCENDING.
SELECT vtweg vtext INTO TABLE it_vtweg FROM tvtwt
FOR ALL ENTRIES IN it_tvse
WHERE vtweg = it_tvse-vtweg
AND spras = sy-langu.
SORT it_tvse BY spart ASCENDING.
SELECT spart vtext INTO TABLE it_spart FROM tspat
FOR ALL ENTRIES IN it_tvse
WHERE spart = it_tvse-spart
AND spras = sy-langu.
SORT it_tvse BY prctr ASCENDING.
SELECT prctr ktext INTO TABLE it_prctr FROM cepct
FOR ALL ENTRIES IN it_tvse
WHERE prctr = it_tvse-prctr
AND spras = sy-langu.
SORT it_tvse BY kdgrp ASCENDING.
SELECT kdgrp ktext INTO TABLE it_kdgrp FROM t151t
FOR ALL ENTRIES IN it_tvse
WHERE kdgrp = it_tvse-kdgrp
AND spras = sy-langu.
ENDFORM. " GET_DESCRIPTIONS
*&---------------------------------------------------------------------*
*& Form PROCESS_ITAB
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM process_itab .
SORT it_tvse ASCENDING.
LOOP AT it_tvse ASSIGNING <fs_tvse>.
READ TABLE it_kdgrp INTO wa_kdgrp WITH KEY kdgrp = <fs_tvse>-kdgrp.
IF sy-subrc = 0.
<fs_tvse>-kdgrpd = wa_kdgrp-ktext.
ENDIF.
READ TABLE it_tvm3t INTO wa_tvm3t WITH KEY mvgr3 = <fs_tvse>-mvgr3.
IF sy-subrc = 0.
<fs_tvse>-mvg3d = wa_tvm3t-bezei.
ENDIF.
READ TABLE it_tvm1t INTO wa_tvm1t WITH KEY mvgr1 = <fs_tvse>-mvgr1.
IF sy-subrc = 0.
<fs_tvse>-mvg1d = wa_tvm1t-bezei.
ENDIF.
READ TABLE it_tvm2t INTO wa_tvm2t WITH KEY mvgr2 = <fs_tvse>-mvgr2.
IF sy-subrc = 0.
<fs_tvse>-mvg2d = wa_tvm2t-bezei.
ENDIF.
READ TABLE it_tvm4t INTO wa_tvm4t WITH KEY mvgr4 = <fs_tvse>-mvgr4.
IF sy-subrc = 0.
<fs_tvse>-mvg4d = wa_tvm4t-bezei.
ENDIF.
READ TABLE it_tvm5t INTO wa_tvm5t WITH KEY mvgr5 = <fs_tvse>-mvgr5.
IF sy-subrc = 0.
<fs_tvse>-mvg5d = wa_tvm5t-bezei.
ENDIF.
READ TABLE it_prctr INTO wa_prctr WITH KEY prctr = <fs_tvse>-prctr.
IF sy-subrc = 0.
<fs_tvse>-prctrd = wa_prctr-ktext.
ENDIF.
READ TABLE it_matkl INTO wa_matkl WITH KEY matkl = <fs_tvse>-matkl.
IF sy-subrc = 0.
<fs_tvse>-wgbez = wa_matkl-wgbez.
ENDIF.
READ TABLE it_vtweg INTO wa_vtweg WITH KEY vtweg = <fs_tvse>-vtweg.
IF sy-subrc = 0.
<fs_tvse>-vtwegd = wa_vtweg-vtext.
ENDIF.
READ TABLE it_spart INTO wa_spart WITH KEY spart = <fs_tvse>-spart.
IF sy-subrc = 0.
<fs_tvse>-spartd = wa_spart-vtext.
ENDIF.
ENDLOOP.
ENDFORM. " PROCESS_ITAB
*&---------------------------------------------------------------------*
*& Form INIT_ALV_CATALOUGE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM init_alv_catalouge .
macro_alv 'SEL' 'Sel' '1'.
macro_alv 'PERIOD' 'Period' '2'.
macro_alv 'BUDAT' 'Date' '3'.
macro_alv 'KNDNR' 'Customer' '4'.
macro_alv 'KDGRPD' 'Cust.Grp' '5'.
macro_alv 'VKORG' 'Sales.Org' '6'.
macro_alv 'VTWEGD' 'Dist.Chnl' '7'.
macro_alv 'SPARTD' 'Div' '8'.
macro_alv 'WERKS' 'Plant' '9'.
macro_alv 'PRCTRD' 'Prft.Cntr' '10'.
macro_alv 'GSBER' 'Buss.Area' '11'.
macro_alv 'ARTNR' 'Part No' '12'.
macro_alv 'WGBEZ' 'Matl.Grp' '13'.
macro_alv 'MVG1D' 'Matl.Grp1' '14'.
macro_alv 'MVG2D' 'Matl.Grp2' '15'.
macro_alv 'MVG3D' 'Matl.Grp3' '16'.
macro_alv 'MVG4D' 'Matl.Grp4' '17'.
macro_alv 'MVG5D' 'Matl.Grp5' '18'.
macro_alv 'ABSMG' 'Sale.Qty' '19'.
macro_alv 'ABSMGVAL' 'In.Sale.Qty' '20'.
macro_alv 'ERLOS' 'Act.Sales' '21'.
macro_alv 'ERLOSVAL' 'In.Act.Sales' '22'.
ENDFORM. " INIT_ALV_CATALOUGE
*&---------------------------------------------------------------------*
*& Form BUILD_ALV_HEADER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM build_alv_header .
DATA:dat1(10) TYPE c.
DATA:dat2(10) TYPE c.
WRITE so_budat-low TO dat1.
WRITE so_budat-high TO dat2.
comments-typ = 'H'.
comments-info = 'BBND Updation'.
APPEND comments TO it_comments.
CLEAR comments.
comments-typ = 'S'.
comments-key = 'Controlling Area:'.
comments-info = pa_kokrs.
APPEND comments TO it_comments.
CLEAR comments.
comments-typ = 'S'.
comments-key = 'Date:'.
CONCATENATE dat1 '-' dat2 INTO comments-info.
APPEND comments TO it_comments.
CLEAR comments.
ENDFORM. " BUILD_ALV_HEADER
*&---------------------------------------------------------------------*
*& Form DISPLAY_ALV
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM display_alv .
layout-colwidth_optimize = 'X'.
layout-box_fieldname = 'SEL'.
layout-box_tabname = 'IT_TVSE'.
* layout-edit = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = 'ZBBND_UPDATION_KSD'
I_CALLBACK_PF_STATUS_SET = 'SET_GUI'
i_callback_user_command = 'USER_COMMAND'
* i_callback_top_of_page = 'ALV_TOP'
is_layout = layout
I_STRUCTURE_NAME = 'ST_TVSE'
it_fieldcat = fieldcat[]
TABLES
t_outtab = it_tvse[].
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " DISPLAY_ALV
*&---------------------------------------------------------------------*
*& Form ALV_TOP
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM alv_top.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
i_logo = 'ENJOYSAP_LOGO'
it_list_commentary = it_comments.
ENDFORM. "ALV_TOP
*&---------------------------------------------------------------------*
*& Form set_gui
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM set_gui USING extab TYPE slis_t_extab.
SET PF-STATUS 'UPD'.
ENDFORM. "set_gui
*&---------------------------------------------------------------------*
*& Form user_command
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->SY-UCOMM text
* -->SELFIELD text
*----------------------------------------------------------------------*
FORM user_command USING ucomm LIKE sy-ucomm
cursor TYPE slis_selfield.
DATA:ok_code TYPE sy-ucomm.
ok_code = ucomm.
CASE ok_code.
WHEN 'EXI'.
LEAVE.
WHEN 'SAV'.
PERFORM save_entries_into_ztable.
WHEN 'DES'.
LOOP AT it_tvse ASSIGNING <fs_tvse> WHERE sel = 'X' .
<fs_tvse>-sel = ' '.
ENDLOOP.
PERFORM display_alv.
ENDCASE.
ENDFORM. "user_command
*&---------------------------------------------------------------------*
*& Form SAVE_ENTRIES_INTO_ZTABLE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM save_entries_into_ztable .
DATA:wa_insert TYPE zbbndmast.
LOOP AT it_tvse ASSIGNING <fs_tvse>.
wa_insert-mandt = sy-mandt.
MOVE-CORRESPONDING <fs_tvse> TO wa_insert.
zbbndmast = wa_insert.
INSERT zbbndmast.
IF sy-subrc = 0.
COMMIT WORK.
ENDIF.
ENDLOOP.
MESSAGE 'Data Successfully Updated' TYPE 'S'.
ENDFORM. " SAVE_ENTRIES_INTO_ZTABLE
2008 Jun 16 9:58 AM
Hiiii...
This can also be done with out using OOPS Alv also ....
just use &REFRESH as sy-ucomm...that will make the internal table column to be 'X'
regards
chandu reddy
2008 Jun 16 9:59 AM
Hi,
Please refer the link below:
http://www.saptechnical.com/Tutorials/ALV/Edit/demo.htm
Thanks,
Sriram Ponna.
2008 Jun 16 10:00 AM
hi,
even i faced the same problem when i have a similar requirement. in order to populate' X' value in internal table.
set the fcode to '&REFRESH'
THEN USE EVENT_EXIT STRUCTURE IN SLIS.
populate the fields event_exit-after = 'X'.
pass it to grid display.
u will definitiely get it.
Rewards if useful.
Rgds.,
subash.
2008 Jun 16 10:27 AM
2008 Jun 16 10:33 AM
hi,
once u check the checkboxes u will be clicking on some buttton right. so make that button's fcode to &refresh. and also use slis_event_exit structure and pass the values in a workarea . Then pass this workarea to grid_display for i_event_exit = workarea.
In Usercommand Form.
case sy-ucomm.
when '&REFRESH&'.//at this step debug and see u can find the checkbox values to 'X'.
read table......
ur logic.
Rgds.,
subash