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

Query on retrieving data back to the program from ALV List

Former Member
0 Likes
402

Hi Group,

I have a requirement to send the details of the selected data as an ALV list to the user.

Then, the user selects either 1 or 2 or all or none back to the program from the ALV.

Thing is that,

1) when the user selects ( Icon ) to choose all the fields, they were not getting checked and in turn, I was not been able to read the records as checked in the program ( this is for All selection records ).

2) And also, I am not able to get the records checked ( incase of the user selects all fields ).

In short, I should be able to read the records which were checked and process only that records.

please let me know if you have any queries on the same.

Thank you very much in advance for the help.

Regards,

Vishnu.

Hi Group,

I have a requirement to send the details of the selected data as an ALV list to the user.

Then, the user selects either 1 or 2 or all or none back to the program from the ALV.

Thing is that,

1) when the user selects ( Icon ) to choose all the fields, they were not getting checked and in turn, I was not been able to read the records as checked in the program ( this is for All selection records ).

2) And also, I am not able to get the records checked ( incase of the user selects all fields ).

In short, I should be able to read the records which were checked and process only that records.

please let me know if you have any queries on the same.

Thank you very much in advance for the help.

Regards,

Vishnu.

2 REPLIES 2
Read only

Former Member
0 Likes
380

hi,

try like this

TABLES: ekko.

TYPE-POOLS: slis.

TYPES: BEGIN OF t_ekko,

sel, "stores which row user has selected

ebeln TYPE ekpo-ebeln,

ebelp TYPE ekpo-ebelp,

statu TYPE ekpo-statu,

aedat TYPE ekpo-aedat,

matnr TYPE ekpo-matnr,

menge TYPE ekpo-menge,

meins TYPE ekpo-meins,

netpr TYPE ekpo-netpr,

peinh TYPE ekpo-peinh,

END OF t_ekko.

DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,

wa_ekko TYPE t_ekko.

DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,

fieldcatalog1 TYPE slis_t_fieldcat_alv WITH HEADER LINE,

gd_tab_group TYPE slis_t_sp_group_alv,

gd_layout TYPE slis_layout_alv,

gd_repid LIKE sy-repid.

DATA : BEGIN OF det_tab OCCURS 0,

ebeln LIKE ekpo-ebeln,

END OF det_tab.

START-OF-SELECTION.

PERFORM data_retrieval.

PERFORM build_fieldcatalog.

PERFORM build_layout.

PERFORM display_alv_report.

&----


*& Form BUILD_FIELDCATALOG

&----


  • Build Fieldcatalog for ALV Report

----


FORM build_fieldcatalog.

fieldcatalog-fieldname = 'EBELN'.

fieldcatalog-seltext_m = 'Purchase Order'.

fieldcatalog-outputlen = 10.

fieldcatalog-emphasize = 'X'.

fieldcatalog-key = 'X'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'EBELP'.

fieldcatalog-seltext_m = 'PO Item'.

  • fieldcatalog-col_pos = 1.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'STATU'.

fieldcatalog-seltext_m = 'Status'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'AEDAT'.

fieldcatalog-seltext_m = 'Item change date'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'MATNR'.

fieldcatalog-seltext_m = 'Material Number'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'MENGE'.

fieldcatalog-seltext_m = 'PO quantity'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'MEINS'.

fieldcatalog-seltext_m = 'Order Unit'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'NETPR'.

fieldcatalog-seltext_m = 'Net Price'.

fieldcatalog-outputlen = 15.

fieldcatalog-do_sum = 'X'. "Display column total

fieldcatalog-datatype = 'CURR'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

fieldcatalog-fieldname = 'PEINH'.

fieldcatalog-seltext_m = 'Price Unit'.

APPEND fieldcatalog TO fieldcatalog.

CLEAR fieldcatalog.

ENDFORM. " BUILD_FIELDCATALOG

&----


*& Form BUILD_LAYOUT

&----


  • Build layout for ALV grid report

----


FORM build_layout.

gd_layout-box_fieldname = 'SEL'.

"set field name to store row selection

gd_layout-edit = 'X'. "makes whole ALV table editable

gd_layout-zebra = 'X'.

ENDFORM. " BUILD_LAYOUT

&----


*& Form DISPLAY_ALV_REPORT

&----


  • Display report using ALV grid

----


FORM display_alv_report.

gd_repid = sy-repid.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = gd_repid

i_callback_user_command = 'USER_COMMAND'

i_callback_pf_status_set = 'SET_STAT'

is_layout = gd_layout

it_fieldcat = fieldcatalog[]

i_save = 'X'

TABLES

t_outtab = it_ekko

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.

ENDFORM. " DISPLAY_ALV_REPORT

&----


*& Form DATA_RETRIEVAL

&----


  • Retrieve data form EKPO table and populate itab it_ekko

----


FORM data_retrieval.

SELECT ebeln ebelp statu aedat matnr menge meins netpr peinh

UP TO 10 ROWS

FROM ekpo

INTO CORRESPONDING FIELDS OF TABLE it_ekko.

ENDFORM. " DATA_RETRIEVAL

----


  • FORM USER_COMMAND *

----


  • --> R_UCOMM *

  • --> RS_SELFIELD *

----


FORM user_command USING r_ucomm LIKE sy-ucomm

rs_selfield TYPE slis_selfield.

CASE r_ucomm.

WHEN '&IC1'.

IF rs_selfield-fieldname = 'EBELN'.

READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.

SET PARAMETER ID 'BES' FIELD wa_ekko-ebeln.

CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.

ENDIF.

WHEN 'DET'. "user presses SAVE

CLEAR det_tab.

REFRESH det_tab.

LOOP AT it_ekko INTO wa_ekko WHERE sel = 'X'.

MOVE-CORRESPONDING wa_ekko TO det_tab.

APPEND det_tab.

ENDLOOP.

PERFORM build_cat.

PERFORM dis_data.

ENDCASE.

ENDFORM. "user_command

&----


*& Form set_stat

&----


  • text

----


  • -->RT_EXTAB text

----


FORM set_stat USING rt_extab TYPE slis_t_extab.

SET PF-STATUS 'ZSTAT' EXCLUDING rt_extab.

ENDFORM. "set_stat

&----


*& Form build_cat

&----


  • text

----


FORM build_cat.

CLEAR fieldcatalog1.

REFRESH fieldcatalog1.

fieldcatalog1-fieldname = 'EBELN'.

fieldcatalog1-tabname = 'DET_TAB'.

fieldcatalog1-seltext_m = 'Order No.'.

fieldcatalog1-outputlen = 10.

APPEND fieldcatalog1 TO fieldcatalog1.

CLEAR fieldcatalog1.

ENDFORM. "build_cat

&----


*& Form dis_data

&----


  • text

----


FORM dis_data.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = 'ZTEST_DS'

it_fieldcat = fieldcatalog1[]

i_save = 'X'

TABLES

t_outtab = det_tab.

ENDFORM. "dis_data

here i have created one button(DET) in toolbar along with all the buttons of ALV..

when i click on this i am getting detail list....

reward if usefull....

Read only

Former Member
0 Likes
380

Hi,

did u tried this method...

data : o_alv_grid type ref to cl_gui_alv_grid,

lt_index_rows type lvc_t_row,

lt_row_no type lvc_t_roid.

call method o_alv_grid->get_selected_rows

importing

et_index_rows = lt_index_rows

et_row_no = lt_row_no.

Then you can read all the records from the internal table of ALV for the index available in table lt_index_rows.

Try that it should work...

Regards

Rajesh