Application Development 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: 

secondary list doesnt trigger

Former Member
0 Kudos

hi,

i have pasted the code below.

when i click in the basic list ...its taking me to secondary list sy-lsind = 1. but in this list its not allowing me to click.(not taking me to sy-lsind>=2) something wrong with my menu painter stuff. when i try to click....i get as chose valid function in the status place.

I have given 'TEST' in the function key place before choose.

in application tool bar have crated MARC.MARD.MAKT. GAVE THEM AS sap gui FUNCTIONS. can some one plz correct me.

Tables: marc,mard,makt.

data: begin of itab occurs 0,

matnr like mara-matnr,

ersda like mara-ersda,

ernam like mara-ernam,

mtart like mara-mtart,

end of itab.

TOP-OF-PAGE.

WRITE:/ 'INTERACTIVE REPORTS'.

ULINE.

WRITE:/ 'MATNR', 'ERSDA', 'ERNAM', 'MTART'.

START-OF-SELECTION.

SELECT MATNR ERSDA ERNAM MTART INTO TABLE ITAB FROM MARA.

END-OF-SELECTION.

LOOP AT ITAB.

WRITE:/ ITAB-MATNR HOTSPOT ON,ITAB-ERSDA,ITAB-ERNAM,ITAB-MTART.

HIDE: ITAB-MATNR.

ENDLOOP.

AT LINE-SELECTION.

WRITE:/ 'LIST INDEX NO:',SY-LSIND.

IF SY-LSIND > 0.

WRITE:/ ITAB-MATNR , ITAB-ERSDA, ITAB-ERNAM.

ENDIF.

"this below part of the code is not really executin i guess'

SET PF-STATUS 'THREE'.

AT USER-COMMAND.

CASE SY-UCOMM.

WHEN 'MARC'.

SELECT * FROM MARC WHERE MATNR = ITAB-MATNR.

WRITE:/ MARC-MATNR, MARC-WERKS.

ENDSELECT.

IF SY-SUBRC <> 0.

WRITE:/ ' NO RECORDS AVAILABLE'.

ENDIF.

WHEN 'MARD'.

SELECT * FROM MARD WHERE MATNR = ITAB-MATNR.

WRITE:/ MARD-MATNR, MARC-WERKS.

ENDSELECT.

IF SY-SUBRC <> 0.

WRITE:/ ' NO RECORDS AVAILABLE FROM MARD'.

ENDIF.

WHEN 'MAKT'.

SELECT * FROM MAKT WHERE MATNR = ITAB-MATNR.

WRITE:/ MAKT-MATNR, MAKT-SPRAS.

ENDSELECT.

IF SY-SUBRC <> 0.

WRITE:/ 'NO RECORDS AVAILABLE FROM MAKT'.

ENDIF.

ENDCASE.

END-OF-SELECTION.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

lease look at the changed code.

However sy-ucomm will be 'PICK' at the line selection.

Shreekant

TABLES: marc,mard,makt.

DATA: BEGIN OF itab OCCURS 0,

matnr LIKE mara-matnr,

ersda LIKE mara-ersda,

ernam LIKE mara-ernam,

mtart LIKE mara-mtart,

END OF itab.

TOP-OF-PAGE.

WRITE:/ 'INTERACTIVE REPORTS'.

ULINE.

WRITE:/ 'MATNR', 'ERSDA', 'ERNAM', 'MTART'.

START-OF-SELECTION.

SELECT matnr ersda ernam mtart INTO TABLE itab FROM mara.

END-OF-SELECTION.

LOOP AT itab.

WRITE:/ itab-matnr HOTSPOT ON,itab-ersda,itab-ernam,itab-mtart.

HIDE: itab-matnr.

ENDLOOP.

AT LINE-SELECTION.

WRITE:/ 'LIST INDEX NO:',sy-lsind.

IF sy-lsind > 0.

WRITE:/ itab-matnr , itab-ersda, itab-ernam.

CASE sy-ucomm.

WHEN 'MARC'.

SELECT * FROM marc WHERE matnr = itab-matnr.

WRITE:/ marc-matnr, marc-werks.

ENDSELECT.

IF sy-subrc <> 0.

WRITE:/ ' NO RECORDS AVAILABLE'.

ENDIF.

WHEN 'MARD'.

SELECT * FROM mard WHERE matnr = itab-matnr.

WRITE:/ mard-matnr, marc-werks.

ENDSELECT.

IF sy-subrc <> 0.

WRITE:/ ' NO RECORDS AVAILABLE FROM MARD'.

ENDIF.

WHEN 'MAKT'.

SELECT * FROM makt WHERE matnr = itab-matnr.

WRITE:/ makt-matnr, makt-spras.

ENDSELECT.

IF sy-subrc <> 0.

WRITE:/ 'NO RECORDS AVAILABLE FROM MAKT'.

ENDIF.

ENDCASE.

ENDIF.

"this below part of the code is not really executin i guess'

*SET PF-STATUS 'THREE'.

*AT USER-COMMAND.

END-OF-SELECTION.

8 REPLIES 8

Former Member
0 Kudos

lease look at the changed code.

However sy-ucomm will be 'PICK' at the line selection.

Shreekant

TABLES: marc,mard,makt.

DATA: BEGIN OF itab OCCURS 0,

matnr LIKE mara-matnr,

ersda LIKE mara-ersda,

ernam LIKE mara-ernam,

mtart LIKE mara-mtart,

END OF itab.

TOP-OF-PAGE.

WRITE:/ 'INTERACTIVE REPORTS'.

ULINE.

WRITE:/ 'MATNR', 'ERSDA', 'ERNAM', 'MTART'.

START-OF-SELECTION.

SELECT matnr ersda ernam mtart INTO TABLE itab FROM mara.

END-OF-SELECTION.

LOOP AT itab.

WRITE:/ itab-matnr HOTSPOT ON,itab-ersda,itab-ernam,itab-mtart.

HIDE: itab-matnr.

ENDLOOP.

AT LINE-SELECTION.

WRITE:/ 'LIST INDEX NO:',sy-lsind.

IF sy-lsind > 0.

WRITE:/ itab-matnr , itab-ersda, itab-ernam.

CASE sy-ucomm.

WHEN 'MARC'.

SELECT * FROM marc WHERE matnr = itab-matnr.

WRITE:/ marc-matnr, marc-werks.

ENDSELECT.

IF sy-subrc <> 0.

WRITE:/ ' NO RECORDS AVAILABLE'.

ENDIF.

WHEN 'MARD'.

SELECT * FROM mard WHERE matnr = itab-matnr.

WRITE:/ mard-matnr, marc-werks.

ENDSELECT.

IF sy-subrc <> 0.

WRITE:/ ' NO RECORDS AVAILABLE FROM MARD'.

ENDIF.

WHEN 'MAKT'.

SELECT * FROM makt WHERE matnr = itab-matnr.

WRITE:/ makt-matnr, makt-spras.

ENDSELECT.

IF sy-subrc <> 0.

WRITE:/ 'NO RECORDS AVAILABLE FROM MAKT'.

ENDIF.

ENDCASE.

ENDIF.

"this below part of the code is not really executin i guess'

*SET PF-STATUS 'THREE'.

*AT USER-COMMAND.

END-OF-SELECTION.

0 Kudos

with the changed code I get secondary index 20 but....i couldn't see marc mard makt in the list........that part is not processed

0 Kudos

I am not clear with your requiremnt.

When you click the sy-ucomm = 'PICK'.

Sy-ucomm cant be mara, mard.

Let me know what exactly is ur requirement.

Shreekant

0 Kudos

YEA....I want marc mard makt to be three buttons.

and when I click marc it should display respective details. like wise for mard and makt.

But I dont happen to see these buttons in my list. so couldn't click and process further.

Message was edited by:

Alchemi

0 Kudos

You might have to change the normal screen and add a new screen to the report. If you open your program in se80 and add a new GUI status. In the screen you will have to add 3 different buttons and assign a function code to them

In your case the function code woill me mar, mard and makt.

in the pf status use the sy-ucomm.

Case sy-ucomm.

when mard...

and so on.

However I would suggest you to use a ALV display rather than a normal display.

Hope this helps.

Shreekant.

I will send you a program which dose something like this but you might have to change for your requirement.

Whats ur mail id.

Shreekant

0 Kudos

hi shreekant,

my id is chi_peb@yahoo.com.au.

thanks

0 Kudos

Check your mail.

Shreekant

Former Member
0 Kudos

hi

I think you need to place the set pf-status above top-of-page.

SET PF-STATUS 'THREE'.

top-of-page.

and pase remaining code

regards,

venkat