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

Checkbox in interactive list

Former Member
0 Likes
1,012

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.
...

8 REPLIES 8
Read only

anversha_s
Active Contributor
0 Likes
901

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_command

rgds

anver

Read only

Former Member
0 Likes
901

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

Read only

0 Likes
901

hi, I tried your code, but it doesn't work...

Read only

Former Member
0 Likes
901

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.

Read only

Former Member
0 Likes
901

problem solved...

Read only

Former Member
0 Likes
901

Hi,

Please make sure to reward points for useful answers.

Thanks,

Naren

Read only

0 Likes
901

Hi Naren,

I got my answer from other threads and not this thread.

thanks for your help anyway.

thanks,

Charles

Read only

rajeshkumar_kaveti
Participant
0 Likes
901

Hi Charles,

I have similar requirement. Can you please share the solution with me.

Regards,

Rajesh