‎2006 Apr 24 11:01 AM
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
‎2006 Apr 24 11:07 AM
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
‎2006 Apr 24 11:10 AM
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
‎2006 Apr 24 11:26 AM
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