‎2009 Mar 26 1:39 AM
Hi experts,
I have a requirement that once I get my output on a selection screen, suppose it has just 1 row and 4 columns. If I click on each of these 4 columns, a new transaction/report etc. needs to be called. How can I achieve this functionality?
Thanks,
Ajay.
‎2009 Mar 26 3:13 AM
Hi,
try this way
REPORT YTEST NO STANDARD PAGE HEADING.
DATA:
itab TYPE TABLE OF spfli,
fs TYPE spfli,
itab1 TYPE TABLE OF sbook,
fs1 TYPE sbook.
START-OF-SELECTION.
SELECT * FROM spfli INTO TABLE itab.
END-OF-SELECTION.
LOOP AT itab INTO fs.
WRITE:/ fs-carrid,
fs-connid.
HIDE:
fs-carrid,
fs-connid.
ENDLOOP.
AT LINE-SELECTION.
READ LINE sy-lilli FIELD VALUE fs-carrid INTO fs-carrid.
" ---> Reads the selected line in list displayed
SELECT * FROM sbook INTO TABLE itab1 WHERE carrid = fs-carrid.
LOOP AT itab1 INTO fs1.
WRITE:/ fs1-carrid,
fs1-bookid,
fs1-customid.
ENDLOOP.If it's a ALV
Use the Event Double click
Regards
sarves
‎2009 Mar 26 1:50 AM
If you use Statement 'WRITE' to output, try the event 'AT LINE-SELECTION'
Elseif you use ALV to output, try the event 'Doubleclick'
Endif
‎2009 Mar 26 3:05 AM
Hi,
Use 'AT LINE-SELECTION' event and 'SUBMIT ztest AND RETURN'.
Ex:
AT LINE-SELECTION.
GET CURSOR FIELD cus VALUE val.
IF val = 'COLUMN1'. <----
'COLUMN1' is column name
SUBMIT ztest AND RETURN.
ENDIF.
‎2009 Mar 26 3:13 AM
Hi,
try this way
REPORT YTEST NO STANDARD PAGE HEADING.
DATA:
itab TYPE TABLE OF spfli,
fs TYPE spfli,
itab1 TYPE TABLE OF sbook,
fs1 TYPE sbook.
START-OF-SELECTION.
SELECT * FROM spfli INTO TABLE itab.
END-OF-SELECTION.
LOOP AT itab INTO fs.
WRITE:/ fs-carrid,
fs-connid.
HIDE:
fs-carrid,
fs-connid.
ENDLOOP.
AT LINE-SELECTION.
READ LINE sy-lilli FIELD VALUE fs-carrid INTO fs-carrid.
" ---> Reads the selected line in list displayed
SELECT * FROM sbook INTO TABLE itab1 WHERE carrid = fs-carrid.
LOOP AT itab1 INTO fs1.
WRITE:/ fs1-carrid,
fs1-bookid,
fs1-customid.
ENDLOOP.If it's a ALV
Use the Event Double click
Regards
sarves
‎2009 Mar 26 3:18 AM
Hi ajay singh,
In FM CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
pass a value in this parameter as follows
i_callback_user_command = 'DOUBLE_CLICK' then in
Form DOUBLE_CLICK USING p_ucomm LIKE sy-ucomm
p_selfield TYPE slis_selfield.
CASE p_ucomm.
WHEN '&IC1'.
PERFORM call_transction USING rs_selfield. " For calling a T-code
PERFORM call_report. " For calling a Report
ENDCASE.
FORM CALL_TRANSACTION.
CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
ENDFORM.
FORM CALL_REPORT.
submit ZPROGRAM with Parameters in -
with P_PRINT = ' '
and return.
ENDFORM.
Regards,
SG
‎2009 Mar 26 3:22 AM
Hi,
try this for calling transaction through parameter id.
AT USER-COMMAND.
CASE sy-ucomm.
WHEN 'CUSTINFO'. (column name )
READ CURRENT LINE FIELD VALUE fs_customer-kunnr INTO w_kunnr.
" ( move the selected value to w_kunnr )
SET PARAMETER ID 'KUN' FIELD w_kunnr.
CALL TRANSACTION 'XD03'. (TCODE )
endcase.
‎2009 Mar 26 4:02 AM
Hi,
Say you have an internal table with fields as:
VBELN (sales order)
POSNR (sales order line item)
WERKS (plant)
MATNR (matnr)
And you write all these fields on output screen using reporting and when you click on any column field then a particular transaction/report should be called, then follow the below mentioned logic:-
DATA : BEGIN OF it_final OCCURS 0,
vbeln TYPE vbap-vbeln,
posnr TYPE vbap-posnr,
werks TYPE vbap-werks,
matnr TYPE vbap-matnr,
END OF it_final.
DATA : fldname(25) TYPE c,
fldvalue(25) TYPE c.
START-OF-SELECTION.
"select query into it_final internal table
AT LINE-SELECTION.
GET CURSOR FIELD fldname VALUE fldvalue.
CASE fldname.
WHEN 'IT_FINAL-VBELN'.
WRITE : / fldvalue.
"code to call transaction/report
WHEN 'IT_FINAL-POSNR'.
WRITE : / fldvalue.
"code to call transaction/report
WHEN 'IT_FINAL-WERKS'.
WRITE : / fldvalue.
"code to call transaction/report
WHEN 'IT_FINAL-MATNR'.
WRITE : / fldvalue.
"code to call transaction/report
ENDCASE.
END-OF-SELECTION.
ULINE.
FORMAT HOTSPOT.
LOOP AT it_final.
WRITE : /1 it_final-vbeln, 10 it_final-posnr, 20 it_final-werks, 30 it_final-matnr.
HIDE : it_final-vbeln, it_final-posnr, it_final-werks, it_final-matnr.
ENDLOOP.
ULINE.
Now to call a transaction user:-
SET PARAMETER ID '<param_id>' FIELD '<field_value>'.
CALL TRANSACTION '<t_code>' AND SKIP FIRST SCREEN.
To call a report use:-
SUBMIT <report_name> WITH <parameter_name1> = <field_value1>
WITH <parameter_name2> = <field_value2>
"and so on use parameters
AND RETURN.
<paramater_name> refer to the parameter of the called report <report_name>
and <field_value> refer to value for the parameter to be passed.
Hope this helps you.
Regards,
Tarun