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

Former Member
0 Likes
642

I have a requirement as below.

I have to display a list along with check boxes for each row in the list.Next when I click any of the check boxes of any row in the list .Then based on that record I have to display a list(Interactive process).Can any one post the procedure for that.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
616

HI

Below is the code for displayin check boxes:

&----


*& Report Z_INVOICE_REPORT *

*& *

&----


*& *

*& *

&----


REPORT z_invoice_report .

--


TABLES--

TABLES: vbak.

  • vbfa,

  • vbap,

  • konv,

  • zresnonres.

--


TYPES--

TYPES:BEGIN OF ty_header,

knumv LIKE vbak-knumv,

END OF ty_header,

BEGIN OF ty_details,

knumv LIKE konv-knumv,

kwert LIKE konv-kwert,

kschl LIKE konv-kschl,

zaehk LIKE konv-zaehk,

kbetr LIKE konv-kbetr,

END OF ty_details,

BEGIN OF ty_output,

vbeln LIKE vbak-vbeln,

knumv LIKE konv-knumv,

kunnr LIKE vbak-kunnr,

matnr LIKE vbap-matnr,

kwert LIKE konv-kwert,

kbetr LIKE konv-kbetr,

kschl LIKE konv-kschl,

zaehk LIKE konv-zaehk,

posnr LIKE vbsp-posnr,

vbtyp LIKE vbak-vbtyp,

vbtyp_n LIKE vbfa-vbtyp_n,

check TYPE c,

END OF ty_output,

BEGIN OF ty_invoice,

vbeln TYPE vbak-vbeln,

vbtyp_n TYPE vbfa-vbtyp_n,

END OF ty_invoice.

--


INTERNAL TABLES--

DATA:tbl_header TYPE STANDARD TABLE OF ty_header,

tbl_details TYPE STANDARD TABLE OF ty_details,

tbl_output TYPE STANDARD TABLE OF ty_output,

  • tbl_modout TYPE STANDARD TABLE OF ty_output,

tbl_invoice TYPE STANDARD TABLE OF ty_invoice WITH HEADER LINE,

tbl_preinv TYPE STANDARD TABLE OF ty_output,

tbl_postinv TYPE STANDARD TABLE OF ty_output.

  • tbl_preinvdisc TYPE STANDARD TABLE OF zresnonres,

  • tbl_postinvdisc TYPE STANDARD TABLE OF zresnonres,

  • tbl_vbfa TYPE STANDARD TABLE OF vbfa.

--


WORK AREAS--

DATA:

  • wa_header TYPE ty_header,

wa_details TYPE ty_details,

wa_output TYPE ty_output,

  • wa_modout TYPE ty_output,

wa_preinv TYPE ty_output,

wa_postinv TYPE ty_output.

  • wa_invoice TYPE ty_invoice.

  • wa_preinvdisc TYPE zresnonres,

  • wa_postinvdisc TYPE zresnonres,

  • mata LIKE vbap-matnr.

  • wa_vbfa TYPE STANDARD TABLE OF vbfa.

--


DATA DECLARATIONS--

*DATA ok_code LIKE sy-ucomm.

SET PF-STATUS '100'.

--


SELECTION SCREEN--

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

SELECT-OPTIONS s_credat FOR vbak-erdat.

PARAMETERS p_user LIKE vbak-ernam.

SELECTION-SCREEN END OF BLOCK b1.

--


START OF SELECTION--

*Check if created by field is initial if so ignore it in select query

IF p_user IS INITIAL.

SELECT knumv

FROM vbak

INTO TABLE tbl_header

WHERE erdat IN s_credat.

ELSE.

  • If user has entered name of person include it in select query

SELECT knumv

FROM vbak

INTO TABLE tbl_header

WHERE erdat IN s_credat

AND ernam = p_user.

ENDIF.

  • Select the condition type details from konv table

IF NOT tbl_header[] IS INITIAL.

SELECT knumv

kwert

kschl

zaehk

kbetr

FROM konv

INTO CORRESPONDING FIELDS OF TABLE tbl_details

FOR ALL ENTRIES IN tbl_header

WHERE knumv = tbl_header-knumv

AND kruek = 'X'.

ENDIF.

  • Selecting the required fields for display from vbak and vbap

IF NOT tbl_details IS INITIAL.

SELECT p~vbeln

p~kunnr

p~knumv

q~posnr

p~vbtyp

q~matnr

INTO CORRESPONDING FIELDS OF TABLE tbl_output

FROM vbak AS p

JOIN vbap AS q

ON pvbeln = qvbeln

FOR ALL ENTRIES IN tbl_details

WHERE p~knumv = tbl_details-knumv.

ENDIF.

  • Selecting the sales documents which have been invoiced

SELECT pvbeln qvbtyp_n

INTO CORRESPONDING FIELDS OF TABLE tbl_invoice

FROM vbak AS p

INNER JOIN vbfa AS q

ON qvbelv = pvbeln

WHERE p~erdat IN s_credat

AND q~vbtyp_n = 'M' .

*Selecting the sales documents which have been invoiced

LOOP AT tbl_output INTO wa_output.

READ TABLE tbl_invoice WITH KEY vbeln =

wa_output-vbeln vbtyp_n = 'M'.

  • Moving the invoiced documents to Post invoice internal table

IF sy-subrc = 0.

MOVE-CORRESPONDING wa_output TO wa_postinv.

APPEND wa_postinv TO tbl_postinv.

  • Moving quotations to Pre invoice internal table

ELSE.

MOVE-CORRESPONDING wa_output TO wa_preinv.

APPEND wa_preinv TO tbl_preinv.

ENDIF.

ENDLOOP.

*Selecting the condition types details from konv table

LOOP AT tbl_preinv INTO wa_preinv.

READ TABLE tbl_details INTO wa_details WITH KEY knumv =

wa_preinv-knumv.

wa_preinv-knumv = wa_details-knumv.

wa_preinv-kwert = wa_details-kwert.

wa_preinv-kschl = wa_details-kschl.

wa_preinv-kbetr = wa_details-kbetr.

wa_preinv-zaehk = wa_details-zaehk.

wa_preinv-check = 'SPACE'.

  • Modifying the post invoice internal table from fetched details

MODIFY tbl_preinv FROM wa_preinv.

ENDLOOP.

*Selecting the condition types details from konv table

LOOP AT tbl_postinv INTO wa_postinv.

READ TABLE tbl_details INTO wa_details WITH KEY knumv =

wa_postinv-knumv.

wa_postinv-knumv = wa_details-knumv.

wa_postinv-kwert = wa_details-kwert.

wa_postinv-kschl = wa_details-kschl.

wa_postinv-kbetr = wa_details-kbetr.

wa_postinv-zaehk = wa_details-zaehk.

wa_postinv-check = 'SPACE'.

  • Modifying the post invoice internal table from fetched details

MODIFY tbl_postinv FROM wa_postinv.

ENDLOOP.

  • Displaying the output

WRITE /'PRE-INVOICE'.

WRITE: / sy-uline(80).

WRITE : / '' UNDER 'PRE-INVOICE'.

WRITE AT 5 sy-vline.

WRITE : 'Quotation Number'.

WRITE AT 24 sy-vline.

WRITE: 'Customer' .

WRITE AT 42 sy-vline.

WRITE : 'material'.

WRITE AT 60 sy-vline.

WRITE: 'Discount Amount'.

WRITE AT 80 sy-vline.

WRITE: / sy-uline(80).

LOOP AT tbl_preinv INTO wa_preinv.

<b>WRITE : / ' ' ,wa_preinv-check AS CHECKBOX UNDER 'PRE-INVOICE'.</b>

WRITE AT 5 sy-vline.

WRITE: wa_preinv-vbeln UNDER'Quotation Number'.

WRITE AT 24 sy-vline.

WRITE: wa_preinv-kunnr UNDER 'Customer'.

WRITE AT 42 sy-vline.

WRITE: wa_preinv-matnr UNDER 'material'.

WRITE AT 60 sy-vline.

WRITE: wa_preinv-kwert UNDER'Discount Amount' .

WRITE AT 80 sy-vline.

WRITE: / sy-uline(80).

ENDLOOP.

WRITE /'POST-INVOICE'.

WRITE: / sy-uline(80).

WRITE : / ' ' UNDER 'POST-INVOICE'.

WRITE AT 5 sy-vline.

WRITE : 'Invoice Number'.

WRITE AT 24 sy-vline.

WRITE: 'Customer' .

WRITE AT 42 sy-vline.

WRITE : 'material'.

WRITE AT 60 sy-vline.

WRITE: 'Discount Amount'.

WRITE AT 80 sy-vline.

WRITE: / sy-uline(80).

LOOP AT tbl_postinv INTO wa_postinv .

WRITE : / ' ' ,wa_postinv-check AS CHECKBOX UNDER 'PRE-INVOICE'.

WRITE AT 5 sy-vline.

WRITE: wa_postinv-vbeln UNDER'Invoice Number'.

WRITE AT 24 sy-vline.

WRITE: wa_postinv-kunnr UNDER 'Customer'.

WRITE AT 42 sy-vline.

WRITE: wa_postinv-matnr UNDER 'material'.

WRITE AT 60 sy-vline.

WRITE: wa_postinv-kwert UNDER'Discount Amount' .

WRITE AT 80 sy-vline.

WRITE: / sy-uline(80).

ENDLOOP.

AT USER-COMMAND.

CASE sy-ucomm.

WHEN 'BACK' OR 'EXIT' OR 'CANCEL'.

LEAVE TO SCREEN 0.

ENDCASE.

Regards

Vasudha

Message was edited by:

Vasudha L

5 REPLIES 5
Read only

Former Member
0 Likes
617

HI

Below is the code for displayin check boxes:

&----


*& Report Z_INVOICE_REPORT *

*& *

&----


*& *

*& *

&----


REPORT z_invoice_report .

--


TABLES--

TABLES: vbak.

  • vbfa,

  • vbap,

  • konv,

  • zresnonres.

--


TYPES--

TYPES:BEGIN OF ty_header,

knumv LIKE vbak-knumv,

END OF ty_header,

BEGIN OF ty_details,

knumv LIKE konv-knumv,

kwert LIKE konv-kwert,

kschl LIKE konv-kschl,

zaehk LIKE konv-zaehk,

kbetr LIKE konv-kbetr,

END OF ty_details,

BEGIN OF ty_output,

vbeln LIKE vbak-vbeln,

knumv LIKE konv-knumv,

kunnr LIKE vbak-kunnr,

matnr LIKE vbap-matnr,

kwert LIKE konv-kwert,

kbetr LIKE konv-kbetr,

kschl LIKE konv-kschl,

zaehk LIKE konv-zaehk,

posnr LIKE vbsp-posnr,

vbtyp LIKE vbak-vbtyp,

vbtyp_n LIKE vbfa-vbtyp_n,

check TYPE c,

END OF ty_output,

BEGIN OF ty_invoice,

vbeln TYPE vbak-vbeln,

vbtyp_n TYPE vbfa-vbtyp_n,

END OF ty_invoice.

--


INTERNAL TABLES--

DATA:tbl_header TYPE STANDARD TABLE OF ty_header,

tbl_details TYPE STANDARD TABLE OF ty_details,

tbl_output TYPE STANDARD TABLE OF ty_output,

  • tbl_modout TYPE STANDARD TABLE OF ty_output,

tbl_invoice TYPE STANDARD TABLE OF ty_invoice WITH HEADER LINE,

tbl_preinv TYPE STANDARD TABLE OF ty_output,

tbl_postinv TYPE STANDARD TABLE OF ty_output.

  • tbl_preinvdisc TYPE STANDARD TABLE OF zresnonres,

  • tbl_postinvdisc TYPE STANDARD TABLE OF zresnonres,

  • tbl_vbfa TYPE STANDARD TABLE OF vbfa.

--


WORK AREAS--

DATA:

  • wa_header TYPE ty_header,

wa_details TYPE ty_details,

wa_output TYPE ty_output,

  • wa_modout TYPE ty_output,

wa_preinv TYPE ty_output,

wa_postinv TYPE ty_output.

  • wa_invoice TYPE ty_invoice.

  • wa_preinvdisc TYPE zresnonres,

  • wa_postinvdisc TYPE zresnonres,

  • mata LIKE vbap-matnr.

  • wa_vbfa TYPE STANDARD TABLE OF vbfa.

--


DATA DECLARATIONS--

*DATA ok_code LIKE sy-ucomm.

SET PF-STATUS '100'.

--


SELECTION SCREEN--

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

SELECT-OPTIONS s_credat FOR vbak-erdat.

PARAMETERS p_user LIKE vbak-ernam.

SELECTION-SCREEN END OF BLOCK b1.

--


START OF SELECTION--

*Check if created by field is initial if so ignore it in select query

IF p_user IS INITIAL.

SELECT knumv

FROM vbak

INTO TABLE tbl_header

WHERE erdat IN s_credat.

ELSE.

  • If user has entered name of person include it in select query

SELECT knumv

FROM vbak

INTO TABLE tbl_header

WHERE erdat IN s_credat

AND ernam = p_user.

ENDIF.

  • Select the condition type details from konv table

IF NOT tbl_header[] IS INITIAL.

SELECT knumv

kwert

kschl

zaehk

kbetr

FROM konv

INTO CORRESPONDING FIELDS OF TABLE tbl_details

FOR ALL ENTRIES IN tbl_header

WHERE knumv = tbl_header-knumv

AND kruek = 'X'.

ENDIF.

  • Selecting the required fields for display from vbak and vbap

IF NOT tbl_details IS INITIAL.

SELECT p~vbeln

p~kunnr

p~knumv

q~posnr

p~vbtyp

q~matnr

INTO CORRESPONDING FIELDS OF TABLE tbl_output

FROM vbak AS p

JOIN vbap AS q

ON pvbeln = qvbeln

FOR ALL ENTRIES IN tbl_details

WHERE p~knumv = tbl_details-knumv.

ENDIF.

  • Selecting the sales documents which have been invoiced

SELECT pvbeln qvbtyp_n

INTO CORRESPONDING FIELDS OF TABLE tbl_invoice

FROM vbak AS p

INNER JOIN vbfa AS q

ON qvbelv = pvbeln

WHERE p~erdat IN s_credat

AND q~vbtyp_n = 'M' .

*Selecting the sales documents which have been invoiced

LOOP AT tbl_output INTO wa_output.

READ TABLE tbl_invoice WITH KEY vbeln =

wa_output-vbeln vbtyp_n = 'M'.

  • Moving the invoiced documents to Post invoice internal table

IF sy-subrc = 0.

MOVE-CORRESPONDING wa_output TO wa_postinv.

APPEND wa_postinv TO tbl_postinv.

  • Moving quotations to Pre invoice internal table

ELSE.

MOVE-CORRESPONDING wa_output TO wa_preinv.

APPEND wa_preinv TO tbl_preinv.

ENDIF.

ENDLOOP.

*Selecting the condition types details from konv table

LOOP AT tbl_preinv INTO wa_preinv.

READ TABLE tbl_details INTO wa_details WITH KEY knumv =

wa_preinv-knumv.

wa_preinv-knumv = wa_details-knumv.

wa_preinv-kwert = wa_details-kwert.

wa_preinv-kschl = wa_details-kschl.

wa_preinv-kbetr = wa_details-kbetr.

wa_preinv-zaehk = wa_details-zaehk.

wa_preinv-check = 'SPACE'.

  • Modifying the post invoice internal table from fetched details

MODIFY tbl_preinv FROM wa_preinv.

ENDLOOP.

*Selecting the condition types details from konv table

LOOP AT tbl_postinv INTO wa_postinv.

READ TABLE tbl_details INTO wa_details WITH KEY knumv =

wa_postinv-knumv.

wa_postinv-knumv = wa_details-knumv.

wa_postinv-kwert = wa_details-kwert.

wa_postinv-kschl = wa_details-kschl.

wa_postinv-kbetr = wa_details-kbetr.

wa_postinv-zaehk = wa_details-zaehk.

wa_postinv-check = 'SPACE'.

  • Modifying the post invoice internal table from fetched details

MODIFY tbl_postinv FROM wa_postinv.

ENDLOOP.

  • Displaying the output

WRITE /'PRE-INVOICE'.

WRITE: / sy-uline(80).

WRITE : / '' UNDER 'PRE-INVOICE'.

WRITE AT 5 sy-vline.

WRITE : 'Quotation Number'.

WRITE AT 24 sy-vline.

WRITE: 'Customer' .

WRITE AT 42 sy-vline.

WRITE : 'material'.

WRITE AT 60 sy-vline.

WRITE: 'Discount Amount'.

WRITE AT 80 sy-vline.

WRITE: / sy-uline(80).

LOOP AT tbl_preinv INTO wa_preinv.

<b>WRITE : / ' ' ,wa_preinv-check AS CHECKBOX UNDER 'PRE-INVOICE'.</b>

WRITE AT 5 sy-vline.

WRITE: wa_preinv-vbeln UNDER'Quotation Number'.

WRITE AT 24 sy-vline.

WRITE: wa_preinv-kunnr UNDER 'Customer'.

WRITE AT 42 sy-vline.

WRITE: wa_preinv-matnr UNDER 'material'.

WRITE AT 60 sy-vline.

WRITE: wa_preinv-kwert UNDER'Discount Amount' .

WRITE AT 80 sy-vline.

WRITE: / sy-uline(80).

ENDLOOP.

WRITE /'POST-INVOICE'.

WRITE: / sy-uline(80).

WRITE : / ' ' UNDER 'POST-INVOICE'.

WRITE AT 5 sy-vline.

WRITE : 'Invoice Number'.

WRITE AT 24 sy-vline.

WRITE: 'Customer' .

WRITE AT 42 sy-vline.

WRITE : 'material'.

WRITE AT 60 sy-vline.

WRITE: 'Discount Amount'.

WRITE AT 80 sy-vline.

WRITE: / sy-uline(80).

LOOP AT tbl_postinv INTO wa_postinv .

WRITE : / ' ' ,wa_postinv-check AS CHECKBOX UNDER 'PRE-INVOICE'.

WRITE AT 5 sy-vline.

WRITE: wa_postinv-vbeln UNDER'Invoice Number'.

WRITE AT 24 sy-vline.

WRITE: wa_postinv-kunnr UNDER 'Customer'.

WRITE AT 42 sy-vline.

WRITE: wa_postinv-matnr UNDER 'material'.

WRITE AT 60 sy-vline.

WRITE: wa_postinv-kwert UNDER'Discount Amount' .

WRITE AT 80 sy-vline.

WRITE: / sy-uline(80).

ENDLOOP.

AT USER-COMMAND.

CASE sy-ucomm.

WHEN 'BACK' OR 'EXIT' OR 'CANCEL'.

LEAVE TO SCREEN 0.

ENDCASE.

Regards

Vasudha

Message was edited by:

Vasudha L

Read only

Former Member
0 Likes
616

Hi

In the final Output internal table display a Single char field as first field and

while writing display that single char field as check box.

it displays along with other fields as check box.

Then write the code to select that in a do..enddo loop and read the SY-LISEL field for each selected record and capture the key field on that row and move all those values into another internal table

and display those data in another list using SY-UCOMM.

Regards

Anji

Read only

Former Member
0 Likes
616

hi,

use this..

<b>WRITE : / ' ' ,wa_preinv-check AS CHECKBOX UNDER 'PRE-INVOICE'.</b>

With Rgds,

S.Barani

Read only

harimanjesh_an
Active Participant
0 Likes
616

hi sandeep,

check this sample code...... where wa_ekko-chk is checkbox ie., my work area contains checkbox as component.

This is my Types Declaration:

BEGIN OF tp_ekko, "STRUCTURE FOR EKKO TABLE

ebeln TYPE ekko-ebeln,

bukrs TYPE ekko-bukrs,

bsart TYPE ekko-bsart,

lifnr TYPE ekko-lifnr,

zterm TYPE ekko-zterm,

llief TYPE ekko-llief,

chk TYPE c,

END OF tp_ekko,

AT USER-COMMAND.

CASE sy-ucomm.

  • selects all purchase items that are checked.

WHEN 'SELECT'.

w_count = 0. <b>" w_count is used to keep track whether any checkbox is checked or not</b> DO.

READ LINE sy-index FIELD VALUE wa_ekko-chk.

IF sy-subrc <> 0. <b> " Loop terminating condition</b> EXIT.

ENDIF.

IF wa_ekko-chk = 'X'. <b> " If checkbox is checked, then display</b> PERFORM display.

CLEAR wa_ekko-chk.

w_count = w_count + 1.

ENDIF.

ENDDO.

IF w_count = 0.

MESSAGE text-000 TYPE 'E'. <b>"ATLEAST ONE PURCHASE ORDER SHOULD BE CHECKED TO DISPLAY THE PURCHASE ITEM.</b>

ENDIF.

<u>Bolded lines are Comments.</u><b></b>

Reward me if useful.....

Harimanjesh AN

Read only

Former Member
0 Likes
616

Hi sandeep,

Simple solution is...

DO.

MOVE space TO pick1.

READ LINE sy-index FIELD VALUE pick1.

IF sy-subrc <> 0.

EXIT.

ENDIF.

IF pick1 EQ 'X'.

"you code goes here...

ENDIF.

ENDDO.