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

ALV

Former Member
0 Likes
585

hi,

I am having a ALV report with columns like ,

PO# SO Message Type Message Code IDOC#

25588156 30012584 Ack/ASN IC 9112245778

I need to have following functionalities as below,

1.Go directly to the display PO screen (ME23N) when the PO# is double clicked.

2.Go directly to the display IDOC screen (WE02?) when the IDOC# is double clicked

Can anyone help me please, Thanks in advance

hi,

I am having a ALV report with columns like ,

PO# SO Message Type Message Code IDOC#

25588156 30012584 Ack/ASN IC 9112245778

I need to have following functionalities as below,

1.Go directly to the display PO screen (ME23N) when the PO# is double clicked.

2.Go directly to the display IDOC screen (WE02?) when the IDOC# is double clicked

Can anyone help me please, Thanks in advance

4 REPLIES 4
Read only

Former Member
0 Likes
556

Hi,

Try to make the PO numbers HOT SPOT and like the tcodes to the same. See the example below:

WA_FIELDCAT-FIELDNAME = 'VBELN'.

WA_FIELDCAT-SELTEXT_L = 'BILLING DOC'.

WA_FIELDCAT-TABNAME = 'IT_VBRP'.

WA_FIELDCAT-COL_POS = 1.

WA_FIELDCAT-HOTSPOT = 'X'.

APPEND WA_FIELDCAT TO IT_FIELDCAT1.

CLEAR WA_FIELDCAT.

Or u can use the user_command event and then call the tcode using the case statement in it.

Regards,

Himanshu

Read only

Former Member
0 Likes
556

Hi Prakash,

Handle the user command when the PO field is clicked.

CASE 'sy-ucomm':

WHEN 'EBELN':

SET PARAMETER ID 'BES' FIELD wa_itab-ebeln.

CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.

Same way handle when the user clicks on idoc number.

Reward points for helpful answers.

Read only

Former Member
0 Likes
556

Hi prakash,

1. We have to write some special code

a) to detect double click in alv

b) detect the row on which it is clicked

2. just copy paste for sample program

(important code is in bold)

3.

REPORT abc.

TYPE-POOLS : slis.

*----


Data

DATA : BEGIN OF itab OCCURS 0.

INCLUDE STRUCTURE t001.

DATA : flag tyPE c,

END OF itab.

DATA : alvfc TYPE slis_t_fieldcat_alv.

DATA : alvly TYPE slis_layout_alv.

*----


Select Data

SELECT * FROM t001 INTO TABLE itab.

*------- Field Catalogue

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = sy-repid

i_internal_tabname = 'ITAB'

i_inclname = sy-repid

CHANGING

ct_fieldcat = alvfc

EXCEPTIONS

inconsistent_interface = 1

program_error = 2

OTHERS = 3.

*----


Display

alvly-box_fieldname = 'FLAG'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

it_fieldcat = alvfc

<b> i_callback_program = sy-repid "<-------Important

i_callback_user_command = 'ITAB_USER_COMMAND' "<------ Important</b>

is_layout = alvly

TABLES

t_outtab = itab

EXCEPTIONS

program_error = 1

OTHERS = 2.

<b>*----


  • CALL BACK FORM

*----


FORM itab_user_command USING whatcomm TYPE sy-ucomm whatrow TYPE

slis_selfield.

*----


IMPORTANT.

data : m(100) type c.

m = whatrow-tabindex.

condense m.

concatenate 'Row Number is ' m into m separated by space.

concatenate m ' : Field Clicked is ' whatrow-fieldname into m separated

by space.

message m type 'I'.

ENDFORM. "ITAB_user_command</b>

regards,

amit m.

Read only

Former Member
0 Likes
556

Tri this.

TYPE-POOLS: SLIS.

DATA: V_REPID LIKE SY-REPID.

  • DECLARATION FOR FIELDCATALOG

DATA: IFIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

DATA: T_LISTHEADER TYPE SLIS_T_LISTHEADER.

  • DECLARATION FOR EVENT TABLE WHERE USER COMMAND OR PF STATUS WILL DEFINE

DATA: V_EVENT TYPE SLIS_T_EVENT,

WA_EVENT TYPE SLIS_ALV_EVENT.

*DECLARATION FOR LAYOUT

DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.

*DECLARATION FOR VARIANT(TYPE OF DISPLAY WE WANT)

DATA: IVARIANT TYPE DISVARIANT,

IVARIANT1 TYPE DISVARIANT,

ISAVE(1) TYPE C.

  • TITLE REPORT TITLE

DATA: REP_TITLE TYPE LVC_TITLE VALUE 'Purchase Display Data'.

INITIALIZATION.

V_REPID = SY-REPID.

PERFORM BULD_FIELDCATLOG.

PERFORM EVENT_CALL.

PERFORM POPULATE_EVENT.

START-OF-SELECTION.

PERFORM GET_DATA.

PERFORM BULD_LISTHEADER USING T_LISTHEADER.

PERFORM DISPLAY_ALV_REPORT.

FORM BULD_FIELDCATLOG .

WA_FIELDCAT-COL_POS = '1' .

WA_FIELDCAT-TABNAME = IT_FINAL .

WA_FIELDCAT-FIELDNAME = 'MBLNR' .

WA_FIELDCAT-OUTPUTLEN = '10' .

WA_FIELDCAT-SELTEXT_M = 'GR No.' .

  • WA_FIELDCAT-FIX_COLUMN = 'X' .

WA_FIELDCAT-KEY = 'X' .

WA_FIELDCAT-FIX_COLUMN = 'X' .

APPEND WA_FIELDCAT TO IFIELDCAT .

CLEAR WA_FIELDCAT.

WA_FIELDCAT-COL_POS = '2' .

WA_FIELDCAT-TABNAME = IT_FINAL .

WA_FIELDCAT-FIELDNAME = 'CPUDT' .

WA_FIELDCAT-OUTPUTLEN = '14' .

WA_FIELDCAT-SELTEXT_M = 'GR Entry Date' .

WA_FIELDCAT-FIX_COLUMN = 'X' .

WA_FIELDCAT-KEY = 'X' .

APPEND WA_FIELDCAT TO IFIELDCAT .

CLEAR WA_FIELDCAT.

ENDFORM.

FORM EVENT_CALL .

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = V_EVENT

  • EXCEPTIONS

  • LIST_TYPE_WRONG = 1

  • OTHERS = 2

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

ENDFORM.

FORM POPULATE_EVENT .

READ TABLE V_EVENT INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.

IF SY-SUBRC EQ 0.

WA_EVENT-FORM = 'TOP_OF_PAGE'.

MODIFY V_EVENT FROM WA_EVENT TRANSPORTING FORM

WHERE NAME = WA_EVENT-FORM.

ENDIF.

READ TABLE V_EVENT INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.

IF SY-SUBRC EQ 0.

WA_EVENT-FORM = 'USER_COMMAND'.

MODIFY V_EVENT FROM WA_EVENT TRANSPORTING FORM

WHERE NAME = WA_EVENT-FORM.

ENDIF.

ENDFORM.

FORM GET_DATA .

get ur data here.

ENDFORM.

FORM BULD_LISTHEADER USING P_T_LISTHEADER TYPE SLIS_T_LISTHEADER.

DATA HLINE TYPE SLIS_LISTHEADER.

HLINE-INFO = 'Purchase Display Data'.

HLINE-TYP = 'H'.

APPEND HLINE TO T_LISTHEADER.

ENDFORM.

FORM DISPLAY_ALV_REPORT .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = V_REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

IT_FIELDCAT = IFIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

I_SAVE = 'A'

  • IS_VARIANT =

IT_EVENTS = V_EVENT

  • IT_EVENT_EXIT =

TABLES

T_OUTTAB = IT_FINAL

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

ENDFORM.

FORM TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = T_LISTHEADER

i_logo = 'WIN'

  • I_END_OF_LIST_GRID =

.

ENDFORM. "TOP_OF_PAGE

&----


*& Form USER_COMMAND

&----


  • text

----


  • -->R_UCOMM text

  • -->, text

  • -->RS_SLEFIELDtext

----


FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

CASE R_UCOMM.

WHEN '&IC1'.

READ TABLE IT_FINAL INTO WA_FINAL INDEX RS_SELFIELD-TABINDEX.

PERFORM CALL_TCODE USING WA_FINAL RS_SELFIELD-FIELDNAME.

ENDCASE.

ENDFORM.

FORM CALL_TCODE USING WA_SEL LIKE IT_FINAL

SEL_FIELD TYPE SLIS_SELFIELD-FIELDNAME.

IF SEL_FIELD EQ 'MBLNR' AND WA_SEL-MBLNR IS NOT INITIAL .

SET PARAMETER ID 'MBN' FIELD WA_SEL-MBLNR .

SET PARAMETER ID 'MJA' FIELD WA_SEL-GJAHR .

CALL TRANSACTION 'MIGO' AND SKIP FIRST SCREEN.

ELSEIF ( SEL_FIELD EQ 'LIFNR' OR SEL_FIELD EQ 'NAME1' ) AND WA_SEL-LIFNR IS NOT INITIAL .

SET PARAMETER ID 'LIF' FIELD WA_SEL-LIFNR .

SET PARAMETER ID 'EKO' FIELD '1000' .

CALL TRANSACTION 'XK03' AND SKIP FIRST SCREEN.

ELSE .

MESSAGE 'Incorrect Cursor Position' TYPE 'S' .

ENDIF.

ENDFORM.

Reward if its helpful

Jitendra