2007 Oct 04 8:08 AM
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.
2007 Oct 04 8:16 AM
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
2007 Oct 04 8:10 AM
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.
2007 Oct 04 8:12 AM
Hi Kavitha,
Instead of GET CURSOR FIELD use HIDE statement.
This should solve your problem.
Regards,
Bharat.
Reward points if helpful.
2007 Oct 04 8:16 AM
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
2007 Oct 04 8:32 AM
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
2007 Oct 04 8:34 AM
2007 Oct 04 9:06 AM
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.
2007 Oct 04 10:28 AM
Hi Kavitha,
Is your issue solved?
Rvert back if not yet solved.
Regards,
Naveen
2007 Oct 04 10:59 AM
2007 Oct 04 11:07 AM
Hi Kavitha,
can u tell me why it was repeating ?
Regards,
Naveen
2007 Oct 04 11:11 AM
Actually its not repeating.I misunderstood.There are 2 set of values in spfli table for single connid field.
2007 Oct 04 11:13 AM
2007 Oct 04 8:31 AM
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>
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |