2006 Nov 28 3:49 AM
I am trying to write checkbox for users to select lines for output to excel file.
I did something like the codes below..
but found that the changes in ticking checkboxes doesnt seem detected.
...
DATA: BEGIN OF mmdiv_itab OCCURS 0,
matnr LIKE mara-matnr,
maktx LIKE makt-maktx,
werks LIKE marc-werks,
spart LIKE mara-spart,
meins LIKE mara-meins,
matkl LIKE mara-matkl,
lvorm LIKE marc-lvorm,
markfield(1) TYPE c,
END OF mmdiv_itab,
...
AT USER-COMMAND.
IF sy-ucomm = 'EXCEL'.
LOOP AT mmdiv_itab WHERE markfield = 'X'.
MOVE mmdiv_itab TO export_itab.
APPEND export_itab.
ENDLOOP.
...
*output list
LOOP AT mmdiv_itab.
WRITE: / sy-vline,
...
mmdiv_itab-markfield AS CHECKBOX,
sy-vline.
...
I am trying to write checkbox for users to select lines for output to excel file.
I did something like the codes below..
but found that the changes in ticking checkboxes doesnt seem detected.
...
DATA: BEGIN OF mmdiv_itab OCCURS 0,
matnr LIKE mara-matnr,
maktx LIKE makt-maktx,
werks LIKE marc-werks,
spart LIKE mara-spart,
meins LIKE mara-meins,
matkl LIKE mara-matkl,
lvorm LIKE marc-lvorm,
markfield(1) TYPE c,
END OF mmdiv_itab,
...
AT USER-COMMAND.
IF sy-ucomm = 'EXCEL'.
LOOP AT mmdiv_itab WHERE markfield = 'X'.
MOVE mmdiv_itab TO export_itab.
APPEND export_itab.
ENDLOOP.
...
*output list
LOOP AT mmdiv_itab.
WRITE: / sy-vline,
...
mmdiv_itab-markfield AS CHECKBOX,
sy-vline.
...
2006 Nov 28 3:51 AM
hi,
chk this sampel.
REPORT ychatest. .
TABLES : sflight.
TYPE-POOLS: slis.
DATA : w_repid LIKE sy-repid.
w_repid = sy-repid.
DATA : BEGIN OF it_sflight OCCURS 0,
checkbox(1),
carrid LIKE sflight-carrid,
END OF it_sflight.
*layout
DATA: wa_layout TYPE slis_layout_alv.
*field catalog
DATA: it_fieldcatalog TYPE slis_t_fieldcat_alv,
wa_fieldcatalog TYPE slis_fieldcat_alv.
START-OF-SELECTION.
SELECT carrid FROM sflight INTO CORRESPONDING FIELDS OF TABLE
it_sflight.
END-OF-SELECTION.
CLEAR it_fieldcatalog.
REFRESH it_fieldcatalog.
wa_fieldcatalog-fieldname = 'CHECKBOX'.
wa_fieldcatalog-outputlen = '3'.
wa_fieldcatalog-col_pos = '1'.
wa_fieldcatalog-seltext_m = 'Chk'.
wa_fieldcatalog-checkbox = 'X'.
wa_fieldcatalog-edit = 'X'.
APPEND wa_fieldcatalog TO it_fieldcatalog.
CLEAR wa_fieldcatalog.
wa_fieldcatalog-fieldname = 'CARRID'.
wa_fieldcatalog-outputlen = '10'.
wa_fieldcatalog-col_pos = '2'.
wa_fieldcatalog-seltext_m = 'Carrid'.
APPEND wa_fieldcatalog TO it_fieldcatalog.
CLEAR wa_fieldcatalog.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = w_repid
is_layout = wa_layout
i_callback_user_command = 'USER_COMMAND'
it_fieldcat = it_fieldcatalog
TABLES
t_outtab = it_sflight
EXCEPTIONS
program_error = 1
OTHERS = 2.
*&---------------------------------------------------------------------*
*& Form USER_COMMAND
*&---------------------------------------------------------------------*
FORM user_command USING p_ucomm TYPE sy-ucomm
p_selfld TYPE slis_selfield.
CASE p_ucomm.
WHEN '&DATA_SAVE'.
DATA ref1 TYPE REF TO cl_gui_alv_grid.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = ref1.
CALL METHOD ref1->check_changed_data.
LOOP AT it_sflight WHERE checkbox = 'X'.
DELETE it_sflight INDEX sy-tabix.
ENDLOOP.
p_selfld-refresh = 'X'.
ENDCASE.
ENDFORM. "user_commandrgds
anver
2006 Nov 28 4:02 AM
Hi,
Check the following code...
DATA: BEGIN OF itab OCCURS 0,
check,
value(20),
END OF itab.
SET PF-STATUS 'TEST1'.
itab-value = 'ETSAT'.
APPEND itab.
itab-value = 'ETSATADSF'.
APPEND itab.
itab-value = 'ETSAT'.
APPEND itab.
LOOP AT itab.
WRITE: / itab-check AS CHECKBOX,
itab-value.
ENDLOOP.
AT USER-COMMAND.
DATA: wa LIKE itab.
DATA: itab_download LIKE itab OCCURS 0 WITH HEADER LINE.
IF sy-ucomm = 'DOWNLOAD'.
DESCRIBE TABLE itab.
DO sy-tfill TIMES.
READ LINE sy-index FIELD VALUE itab-check.
IF sy-subrc <> 0.
EXIT.
ENDIF.
CHECK itab-check = 'X'.
itab_download-value = itab-value.
APPEND itab_download.
ENDDO.
DOWNLOAD
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
filename = 'C:\TEST.XLS '
TABLES
data_tab = itab_download.
ENDIF.
Thanks,
Naren
2006 Nov 28 5:54 AM
2006 Nov 28 7:01 AM
did the following... but didnt get the correct values...
DESCRIBE TABLE mmdiv_itab LINES n.
DO n TIMES.
READ LINE sy-index FIELD VALUE mmdiv_itab-markfield.
IF sy-subrc <> 0.
EXIT.
ENDIF.
IF mmdiv_itab-markfield = 'X'.
READ TABLE mmdiv_itab INDEX sy-index.
IF sy-subrc = 0.
mmdiv_itab-markfield = 'X'.
MODIFY mmdiv_itab INDEX sy-index.
ENDIF.
ENDIF.
ENDDO.
LOOP AT mmdiv_itab WHERE markfield = 'X'.
export_itab-matnr = mmdiv_itab-matnr.
APPEND export_itab.
ENDLOOP.
2006 Nov 28 9:28 AM
2006 Nov 28 4:17 PM
Hi,
Please make sure to reward points for useful answers.
Thanks,
Naren
2006 Nov 30 2:48 AM
Hi Naren,
I got my answer from other threads and not this thread.
thanks for your help anyway.
thanks,
Charles
2006 Dec 22 9:35 AM
Hi Charles,
I have similar requirement. Can you please share the solution with me.
Regards,
Rajesh
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |