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

need help in interactive list

Former Member
0 Likes
1,441

Hi all,

In first list i displayed sflight table details.i used this code.if i double click on carrid value i am getting corresponding spfli details in the next list.

AT LINE-SELECTION.

GET CURSOR FIELD fld VALUE val LENGTH len OFFSET off LINE li.

select airpfrom cityfrom countryto cityto from spfli into table it_tab2 where carrid = val.

i want if i double click any where in the line not only in carrid value even in connid or fldate i should get coressponding spfli details..if anybody knows kindly help me.

Thanks in advance.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,423

Hi ,

go thru this:

AT LINE-SELECTION.

GET CURSOR FIELD fld VALUE val LENGTH len OFFSET off LINE li.

case fld.

when 'CARRID'

select airpfrom cityfrom countryto cityto from spfli into table it_tab2 where carrid = val.

When 'CONNID'.

select airpfrom cityfrom countryto cityto from spfli into table it_tab2 where connid = val.

When 'LDATE'.

select airpfrom cityfrom countryto cityto from spfli into table it_tab2 where ldate = val.

Endacse.

Rvert back if any issues,

Reward with points if helpful.

regards,

Naveen

Hi Kavitha,

Is your issue solved?

Rvert back if not yet solved.

Regards,

Naveen

12 REPLIES 12
Read only

Former Member
0 Likes
1,423

HI,

<b>instead of get cursor use hide or sy-lisel or read line</b>

see this code.

REPORT ZBHREP3 LINE-COUNT 15(1) LINE-SIZE 75.

TABLES: SFLIGHT.

DATA ITAB LIKE SFLIGHT OCCURS 0 WITH HEADER LINE.

DATA VAR LIKE SFLIGHT-CONNID.

SET PF-STATUS 'MENU'.

SET TITLEBAR 'TIT'.

FORMAT HOTSPOT ON.

WRITE:/10 'AIRLINE CODE',25 'CONNECTION ID',40 'FLIGHT DATE'.

SELECT * FROM SFLIGHT.

WRITE:/10 SFLIGHT-CARRID,25 SFLIGHT-CONNID,40 SFLIGHT-FLDATE.

HIDE SFLIGHT-CONNID.

ENDSELECT.

*TOP-OF-PAGE.

TOP-OF-PAGE.

WRITE:/ 'THIS IS MY FIRST REPORTS PROGRAM.'.

*AT LINE-SELECTION.

AT LINE-SELECTION.

CASE SY-LSIND.

WHEN '1'.

SELECT * FROM SFLIGHT INTO CORRESPONDING FIELDS OF ITAB WHERE

CONNID = SFLIGHT-CONNID.

WRITE:/ ITAB-CARRID,ITAB-PLANETYPE,ITAB-PAYMENTSUM.

ENDSELECT.

WRITE:/ SFLIGHT-CONNID.

  • READ LINE SY-LILLI FIELD VALUE SFLIGHT-CONNID INTO VAR.

  • SELECT * FROM SFLIGHT INTO CORRESPONDING FIELDS OF ITAB WHERE

  • CONNID = VAR.

  • WRITE:/ ITAB-CARRID,ITAB-PLANETYPE,ITAB-PAYMENTSUM.

  • ENDSELECT.

  • WRITE:/ VAR.

  • SELECT * FROM SFLIGHT INTO CORRESPONDING FIELDS OF *ITAB WHERE

*CONNID = SY-LISEL+24(4).

  • WRITE:/ ITAB-CARRID,ITAB-PLANETYPE,ITAB-PAYMENTSUM.

  • ENDSELECT.

  • SKIP 1.

  • WRITE:/ SY-LISEL+24(4).

ENDCASE.

rgds,

bharat.

Read only

Former Member
0 Likes
1,423

Hi Kavitha,

Instead of GET CURSOR FIELD use HIDE statement.

This should solve your problem.

Regards,

Bharat.

      • Reward points if helpful.

Read only

Former Member
0 Likes
1,424

Hi ,

go thru this:

AT LINE-SELECTION.

GET CURSOR FIELD fld VALUE val LENGTH len OFFSET off LINE li.

case fld.

when 'CARRID'

select airpfrom cityfrom countryto cityto from spfli into table it_tab2 where carrid = val.

When 'CONNID'.

select airpfrom cityfrom countryto cityto from spfli into table it_tab2 where connid = val.

When 'LDATE'.

select airpfrom cityfrom countryto cityto from spfli into table it_tab2 where ldate = val.

Endacse.

Rvert back if any issues,

Reward with points if helpful.

regards,

Naveen

Read only

0 Likes
1,423

i used case statement.

if i double click 2nd field i am getting same output 2 times,if i choose 3rd field getting same output 3 times.

thank u for ur answer

Read only

0 Likes
1,423

Hi,

Paste ur code.

Rvert back,

Regards,

Naveen

Read only

0 Likes
1,423

AT LINE-SELECTION.

GET CURSOR FIELD fld VALUE val LENGTH len OFFSET off LINE li.

*WRITE: / fld,val,len,off,li.

CASE fld.

WHEN 'WA_TAB-CARRID'.

SELECT airpfrom cityfrom countryto cityto FROM spfli INTO TABLE it_tab2 WHERE carrid = val.

WHEN 'WA_TAB-CONNID'.

SELECT airpfrom cityfrom countryto cityto FROM spfli INTO TABLE it_tab2 WHERE CONNID = val.

ENDCASE.

LOOP AT it_tab2 INTO wa_tab2.

WRITE:/ wa_tab2-airpfrom,wa_tab2-cityfrom,wa_tab2-countryto,wa_tab2-cityto.

ENDLOOP.

Read only

0 Likes
1,423

Hi Kavitha,

Is your issue solved?

Rvert back if not yet solved.

Regards,

Naveen

Read only

0 Likes
1,423

ya solved.Thank u Naveen.

regards

Kavitha

Read only

0 Likes
1,423

Hi Kavitha,

can u tell me why it was repeating ?

Regards,

Naveen

Read only

0 Likes
1,423

Actually its not repeating.I misunderstood.There are 2 set of values in spfli table for single connid field.

Read only

0 Likes
1,423

Ohhh ok!!!

Thanks

Read only

Former Member
0 Likes
1,423

hI

SEE THIS PROGRAM

A Sample Hide & Get Cursor in Interactive Programming

Hide & Get Cursor is used in interactive programming ( in the event AT LINE-selection).

Using Hide in Loop..Endloop, you can get the field name At Line-Select

Event While Double Clicking That Line.

***PROG.BEGIN**************************************************************

&----


*& Report ZPREM_INTERACTIVE *

*& *

&----


*& *

*& *

&----


REPORT zprem_interactive .

TYPES : BEGIN OF ty_test,

code TYPE i,

name(10) TYPE c,

amount TYPE p DECIMALS 2,

END OF ty_test.

DATA : it_test TYPE STANDARD TABLE OF ty_test WITH HEADER LINE INITIAL SIZE 10.

DATA : wa TYPE ty_test,

chk1 TYPE c,

fldname(30), fldval(50).

*set pf-status 'PF01'.

*set titlebar 'PF01'.

*

INITIALIZATION.

it_test-code = 300.

it_test-name = 'Ramesh'.

it_test-amount = 5500.

APPEND it_test.

wa-code = 207.

wa-name = 'Prem'.

wa-amount = 5000.

APPEND wa TO it_test.

it_test-code = 117.

it_test-name = 'James Bond'.

it_test-amount = 9900.

INSERT it_test INDEX 3.

it_test-code = 217.

it_test-name = 'Sivaraman'.

it_test-amount = 9900.

INSERT it_test INDEX 3.

it_test-code = 201.

it_test-name = 'Saravanan'.

it_test-amount = 1000.

APPEND it_test.

it_test-code = 210.

it_test-name = 'Shanmugam'.

it_test-amount = 6000.

APPEND it_test.

WRITE : / 'Loop Display ( Appended rows ) :-'.

LOOP AT it_test.

WRITE : / chk1 AS CHECKBOX,

sy-tabix, sy-vline, it_test-code, it_test-name, it_test-amount.

HIDE : it_test-code, it_test-name.

ENDLOOP.

SKIP.

END-OF-SELECTION.

CLEAR : it_test-code, it_test-name.

WRITE : / 'this from end of selection'.

&----


*& Form DISP1

&----


  • text

----


FORM disp1.

WINDOW STARTING AT 15 10

ENDING AT 80 15.

DO.

CLEAR chk1.

READ LINE sy-index FIELD VALUE chk1.

IF sy-subrc NE 0.

EXIT.

ELSE.

CHECK chk1 NE space.

WRITE : / it_test-code, it_test-name.

MODIFY CURRENT LINE :

FIELD VALUE chk1 FROM ' '

FIELD FORMAT chk1 INPUT OFF.

ENDIF.

ENDDO.

ENDFORM. "DISP1

***line double click ****

AT LINE-SELECTION.

CHECK sy-lsind = 1.

WINDOW STARTING AT 5 4

ENDING AT 85 20.

WRITE: / 'THE USER DOUBLE-CLICKED A LINE IN THE REPORT'.

WRITE: / sy-lisel.

WRITE : / 'Sometime ',it_test-name, ' is good '.

WRITE : / 'Sometime ',it_test-name, ' is bad '.

WRITE : / 'Sometime ',it_test-name, ' is rich '.

WRITE : / 'Sometime ',it_test-name, ' is poor '.

WRITE : / 'Who knows, who is ',it_test-name, ' ? '.

WRITE : /, / 'we can also use this in SELECT statement'.

CLEAR : it_test-code, it_test-name.

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ULINE.

SKIP.

SKIP.

WRITE : / 'Below from Get Cursor Field...'.

GET CURSOR FIELD fldname VALUE fldval.

CONDENSE fldname.

CONDENSE fldval.

WRITE : / 'You have clicked ', fldname, ' & its value is ', fldval.

***function key press F6 ****

AT PF06.

PERFORM disp1.

*AT USER-COMMAND.

  • CASE SY-UCOMM.

  • WHEN 'STOP' OR 'CANCEL'.

  • LEAVE TO SCREEN 0.

  • WHEN 'TESTME'.

  • PERFORM DISP1.

  • ENDCASE.

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

<b>or</b>

&----


*& Report ZTESTDEMO_INTERACTIVE_LIST_2

*&

&----


*&

*&

&----


REPORT ZTESTDEMO_INTERACTIVE_LIST_2.

TABLES: MARA,MARC,MARD.

  • internal table itab_mara 3 fields matnr, ernam,mtart

DATA: BEGIN OF ITAB_MARA OCCURS 0,

MATNR LIKE MARA-MATNR, " material number

ERNAM LIKE MARA-ERNAM, " name of person who create

MTART LIKE MARA-MTART, " Material Type

END OF ITAB_MARA.

  • internal table itab_marc 3 fields matnr, werks,lvorm

DATA: BEGIN OF ITAB_MARC OCCURS 0,

MATNR LIKE MARC-MATNR,

WERKS LIKE MARC-WERKS, " Plant

LVORM LIKE MARC-LVORM, " Flag Material for Deletion at Plant Level

END OF ITAB_MARC.

  • internal table itab_mard 2 fields

DATA: BEGIN OF ITAB_MARD OCCURS 0,

MATNR LIKE MARD-MATNR,

LGORT LIKE MARD-LGORT, " Storage Location

END OF ITAB_MARD.

SELECT-OPTIONS: S_MTART FOR MARA-MTART.

INITIALIZATION.

S_MTART-LOW = 'HALB'.

S_MTART-HIGH = 'HAWA'.

S_MTART-OPTION = 'BT'.

APPEND S_MTART.

START-OF-SELECTION.

SELECT MATNR ERNAM MTART FROM MARA INTO TABLE ITAB_MARA WHERE MTART IN

S_MTART.

PERFORM DISPLAY.

TOP-OF-PAGE.

WRITE:/2(15) 'MATERIAL NO',20(20) 'CREATED BY',45(15) 'MATERIAL TYPE'.

FORM DISPLAY.

LOOP AT ITAB_MARA.

WRITE:/ ITAB_MARA-MATNR UNDER 'MATERIAL NO' HOTSPOT ON,ITAB_MARA-ERNAM

UNDER 'CREATED BY',ITAB_MARA-MTART UNDER 'MATERIAL TYPE'.

HIDE: ITAB_MARA-MATNR.

ENDLOOP.

ENDFORM.

AT LINE-SELECTION.

CASE SY-LSIND.

WHEN 1.

SELECT MATNR WERKS LVORM FROM MARC INTO TABLE ITAB_MARC WHERE MATNR =

ITAB_MARA-MATNR.

PERFORM DISPLAY1.

WHEN 2.

SELECT MATNR LGORT FROM MARD INTO TABLE ITAB_MARD WHERE MATNR =

ITAB_MARC-MATNR.

PERFORM DISPLAY2.

when 3.

sy-lsind = 0.

ENDCASE.

FORM DISPLAY1.

LOOP AT ITAB_MARC.

WRITE:/ ITAB_MARC-MATNR HOTSPOT ON, ITAB_MARC-WERKS,ITAB_MARC-LVORM.

HIDE: ITAB_MARC-MATNR.

ENDLOOP.

WRITE:/ SY-LSIND.

ENDFORM.

FORM DISPLAY2.

LOOP AT ITAB_MARD.

WRITE:/ ITAB_MARD-MATNR, ITAB_MARD-LGORT.

ENDLOOP.

WRITE:/ SY-LSIND.

ENDFORM.

<b>REWARD IF USEFULL</b>