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

Capturing check box value into internal table

Former Member
0 Likes
2,138

Hi all,

I am displaying the output including check box through following internal table.

The checkbox is displayed before every record.

<b>LOOP AT it_qals.

WRITE:/ it_qals-t_val AS CHECKBOX,

5 it_qals-werk,

12 it_qals-prueflos,

30 it_qals-matnr,

50 it_qals-charg,

62 it_qals-lagortchrg.

hide: it_qals .

ENDLOOP.</b>

I selected some of the records through check the checkboxes. when i click the <b>PUSHBUTTON TRANSFER</b>, those selected records only should transfer. i don't know how to modify the internal table with latest checkbox values. Initially checkbox values are blank.

Is there any solution except Function Module.

i would appreciate an earlier reply.

Regards

Prabhu

3 REPLIES 3
Read only

naimesh_patel
Active Contributor
0 Likes
838

Hello,

Create one more table and transfer your entries into new table.

I have attached my code for you.

Regards,

Naimesh

********************

REPORT ZTEST_NP NO STANDARD PAGE HEADING.

TABLES: MARA, MAKT.

DATA: BEGIN OF IT_MARA OCCURS 0,

MATNR LIKE MARA-MATNR,

MAKTX LIKE MAKT-MAKTX,

SEL,

END OF IT_MARA.

DATA: IT_MARA1 LIKE IT_MARA OCCURS 0 WITH HEADER LINE.

START-OF-SELECTION.

SET PF-STATUS 'ZTEST'.

PERFORM GET_DATA.

PERFORM WRITE_DATA.

TOP-OF-PAGE.

PERFORM HEADER.

AT USER-COMMAND.

CASE SY-UCOMM.

WHEN 'SELECT'.

PERFORM GET_DATA_SELECTED.

PERFORM WRITE_DATA_SELE.

WHEN 'SELALL'.

PERFORM SELECT_ALL.

SY-LSIND = 0.

PERFORM HEADER.

PERFORM WRITE_DATA.

WHEN 'DESEL'.

PERFORM DESELECT_ALL.

SY-LSIND = 0.

PERFORM HEADER.

PERFORM WRITE_DATA.

ENDCASE.

&----


*& Form GET_DATA

&----


FORM GET_DATA.

SELECT MATNR

INTO TABLE IT_MARA

FROM MARA

WHERE MATNR LIKE 'IN10020%'.

LOOP AT IT_MARA.

SELECT SINGLE MAKTX

INTO IT_MARA-MAKTX

FROM MAKT

WHERE MATNR = IT_MARA-MATNR

AND SPRAS = SY-LANGU.

MODIFY IT_MARA.

CLEAR IT_MARA.

ENDLOOP.

ENDFORM. " GET_DATA

&----


*& Form WRITE_DATA

&----


FORM WRITE_DATA.

ULINE /(50).

LOOP AT IT_MARA.

WRITE: / '|' NO-GAP, IT_MARA-SEL AS CHECKBOX NO-GAP,

'|' NO-GAP, (10) IT_MARA-MATNR NO-GAP,

'|' NO-GAP, (35) IT_MARA-MAKTX NO-GAP,

'|' NO-GAP.

ENDLOOP.

ULINE /(50).

ENDFORM. " WRITE_DATA

&----


*& Form HEADER

&----


FORM HEADER.

ULINE /(50).

WRITE: / '|' NO-GAP, (1) ' ' NO-GAP,

'|' NO-GAP, (10) 'Material' NO-GAP,

'|' NO-GAP, (35) 'Description' NO-GAP,

'|' NO-GAP.

ENDFORM. " HEADER

&----


*& Form GET_DATA_SELECTED

&----


FORM GET_DATA_SELECTED.

DATA: L_CNT TYPE I.

DO.

L_CNT = L_CNT + 1.

READ LINE L_CNT FIELD VALUE IT_MARA-MATNR INTO IT_MARA1-MATNR

IT_MARA-MAKTX INTO IT_MARA1-MAKTX

IT_MARA-SEL INTO IT_MARA1-SEL.

IF SY-SUBRC = 0.

IF IT_MARA1-SEL = 'X'.

APPEND IT_MARA1.

CLEAR IT_MARA1.

ENDIF.

ELSE.

EXIT.

ENDIF.

ENDDO.

ENDFORM. " GET_DATA_SELECTED

&----


*& Form WRITE_DATA_SELE

&----


FORM WRITE_DATA_SELE.

PERFORM HEADER.

ULINE /(50).

LOOP AT IT_MARA1.

WRITE: / '|' NO-GAP, IT_MARA1-SEL AS CHECKBOX,

'|' NO-GAP, (10) IT_MARA1-MATNR NO-GAP,

'|' NO-GAP, (35) IT_MARA1-MAKTX NO-GAP,

'|' NO-GAP.

ENDLOOP.

ULINE /(50).

ENDFORM. " WRITE_DATA_SELE

&----


*& Form SELECT_ALL

&----


FORM SELECT_ALL.

LOOP AT IT_MARA.

IT_MARA-SEL = 'X'.

MODIFY IT_MARA.

CLEAR IT_MARA.

ENDLOOP.

ENDFORM. " SELECT_ALL

&----


*& Form DESELECT_ALL

&----


FORM DESELECT_ALL.

LOOP AT IT_MARA.

IT_MARA-SEL = ' '.

MODIFY IT_MARA.

CLEAR IT_MARA.

ENDLOOP.

ENDFORM. " DESELECT_ALL

Read only

Former Member
0 Likes
838

Hi Prabhakara,

After selecting the records, you can check the value of the field it_qals-t_val, which seems to be a table with header line.

You can write the following code.

LOOP AT it_qals.

If it_qals-t_val = 'X'.

append it_qals to lit_tranfer_records.

endif.

ENDLOOP.

The lit_tranfer_records table would contain the records to be transferred.

Regards,

Ameya

Read only

Former Member
0 Likes
838

Hi Prabhakar,

<b>

  • The checkbox is written to screen</b>

write: / xpickc as checkbox input off.

write: vbkpf-belnr,

vbkpf-gjahr,

vbkpf-bukrs.

write: vbkpf-blart,

(8) vbkpf-budat dd/mm/yy,

vbkpf-waers,

vbkpf-xblnr,

vbkpf-xwffr,

vbkpf-xprfg,

vbkpf-xfrge.

_________________________________________________

<b>* At user command, event will be triggered on clicking the transfer push button</b>

at user-command.

case sy-ucomm.

when 'TRANSFER'.

perform tbkpf_fuellen.

perform beleg_pickup.

-


--

endcase.

______________________________________________

<b>* To read the value of checkbox in the internal table

form tbkpf_fuellen.</b>

lsind = sy-lsind - 1.

clear anzkr.

refresh tbkpf.

do.

read line sy-index index lsind field value xpickc.

if sy-subrc = 0.

check xpickc ne space.

anzkr = anzkr + 1.

move-corresponding vbkpf to tbkpf.

append tbkpf.

else.

exit.

endif.

enddo.

endform.

______________________________________________

If the record is chosen, the check box for that corresponding line would automatically be populated with 'X'.

Hope this was useful.

Thanks,

Susmitha