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

Transaction

Former Member
0 Likes
710

Hi ,

I am creating a Vendor Detail list , If i double click the particular Vendor number i must get the XK03 screen that displays the particular vendor details , How to acheive this in Reporting ......I think interactive reporting must be used ? Can any one tell the step

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
674

Hi,

You need to use the GET CURSOR statment for this one.

In the AT LINE SELECTION event.

AT LINE-SELECTION.

GET CURSOR FIELD FID OFFSET OFF " FID will have the field name

LINE LIN VALUE VAL LENGTH LEN. " VAL will have he value of that field

SET PARAMETER ID <pid> FIELD <f>. " You need to find the Parameter ID for the field

CALL TRANSACTION 'XK03' AND SKIP FIRST SCREEN.

Regards

Sudheer

5 REPLIES 5
Read only

anversha_s
Active Contributor
0 Likes
674
Read only

Former Member
0 Likes
674

HI,

at line-selection.

SET PARAMETER ID 'KUN' FIELD fs_customer-kunnr.

CALL TRANSACTION 'XD03'.

Regards,

Read only

Former Member
0 Likes
674

Hi,

See the sample code for calling an external Transaction.

First display the report with the data.

Hide that Vendor field(LIFNR) in the output loop.

In the At line-selection event write the like:

&----


*

*& Form LINE_SEL

&----


  • When double clicked on BELNR leave to transaction FB03

----


form line_sel.

data: lv_field(20),

lv_value(10),

lv_date(10),

lv_gjahr like bsad-gjahr.

get cursor field lv_field value lv_value.

if lv_field = 'IT_REPORT-BELNR'.

if not lv_value is initial.

read current line field value it_report-budat into lv_date.

lv_gjahr = lv_date+6(4).

set parameter id 'BUK' field p_bukrs.

set parameter id 'GJR' field lv_gjahr.

set parameter id 'BLN' field lv_value.

call transaction 'FB03' and skip first screen.

endif.

endif.

endform.

reward if useful

regards,

Anji

Read only

Former Member
0 Likes
675

Hi,

You need to use the GET CURSOR statment for this one.

In the AT LINE SELECTION event.

AT LINE-SELECTION.

GET CURSOR FIELD FID OFFSET OFF " FID will have the field name

LINE LIN VALUE VAL LENGTH LEN. " VAL will have he value of that field

SET PARAMETER ID <pid> FIELD <f>. " You need to find the Parameter ID for the field

CALL TRANSACTION 'XK03' AND SKIP FIRST SCREEN.

Regards

Sudheer

Read only

Former Member
0 Likes
674

hi,

check out the folowing code...

&----


*& Report ZWK22671

*&

&----


*&

*&

&----


REPORT zwk22671 LINE-COUNT 40(3)

LINE-SIZE 200

NO STANDARD PAGE HEADING.

*----


*TABLES

*----


TABLES : mkpf , "MATERIAL DOCUMENT

mseg , "DOCUMENT SEGMENT : MATERIAL

t156t , "MOVEMENT TYPE TEXT

makt. "MATERIAL DESCRIPTIONS

*----


**DECLARATION OF STRUCTURE , INTERNAL TABLES , VARIABLES

*----


*STRUCTURE OF INTERNAL TABLES

DATA : BEGIN OF xtab,

mblnr TYPE mkpf-mblnr , "DOCUMENT NUMBER

mjahr TYPE mkpf-mjahr , "YEAR

budat TYPE mkpf-budat , "POST DATE

blart TYPE mkpf-blart , "DOCUMENT TYPE

END OF xtab.

DATA : BEGIN OF ytab,

mblnr TYPE mseg-mblnr , "DOCUMENT NUMBER

mjahr TYPE mseg-mjahr , "YEAR

zeile TYPE mseg-zeile , "ITEM NUMBER

bwart TYPE mseg-bwart , "MOVEMENT TYPE

btext TYPE t156t-btext , "MOVEMENT DESCRIPTION

matnr TYPE mseg-matnr , "MATERIAL NUMBER

maktx TYPE makt-maktx , "MATERIAL DESCRIPTION

meins TYPE mseg-meins , "UNIT OF MEASURE

menge TYPE mseg-menge , "QUANTITY

dmbtr TYPE mseg-dmbtr , "AMOUNT

END OF ytab.

*INTERNAL TABLE DECLARATION

DATA : i_tab1 LIKE STANDARD TABLE OF xtab WITH HEADER LINE. "INTERNAL TABLE 1 : CONTAINS MATERIAL DETAILS

DATA : i_tab2 LIKE STANDARD TABLE OF ytab WITH HEADER LINE. "INTERNAL TABLE 2 : CONTAINS ITEMWISE MATERIAL DETAILS

*VARIABLES

DATA : v_color TYPE sy-tabix , "FOR SETTING COLOR FORMATS DURING GENERATING REPORT

v_field(20) , "FOR STORING THE CLICKED FIELD NAME

v_value(20) , "FOR STORING THE CLICKED FIELD VALUE

v_mblnr TYPE mkpf-mblnr , "FOR VALIDATING DOCUMENT NUMBER

v_mjahr TYPE mkpf-mjahr , "FOR VALIDATING DOCUMENT YEAR

v_bwart TYPE mseg-bwart , "FOR VALIDATING MOVEMENT TYPE

v_matnr TYPE mseg-matnr . "FOR VALIDATING MATERIAL NUMBER

*----


**SELECTION-SCREEN

*----


SELECTION-SCREEN : BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.

SELECT-OPTIONS : s_mblnr FOR mkpf-mblnr , "DOCUMENT NUMBER

s_mjahr FOR mkpf-mjahr OBLIGATORY, "DOCUMENT YEAR

s_bwart FOR mseg-bwart NO INTERVALS NO-EXTENSION, "MOVEMENT TYPE

s_matnr FOR mseg-matnr . "MATERIAL NUMBER

SELECTION-SCREEN : END OF BLOCK blk1.

*----


  • AT SELECTION-SCREEN

*----


AT SELECTION-SCREEN.

PERFORM validation. "PERFORMS VALIDATION OF SELECTION-SCREEN FIELDS

*----


*TOP-OF-PAGE

*----


TOP-OF-PAGE.

PERFORM header. "CREATES HEADER FOR THE BASIC LIST

*----


*END-OF-PAGE

*----


END-OF-PAGE. "CREATES FOOTER FOR THE BASIC AND SECONDARY LIST

PERFORM footer.

*----


*START-OF-SELECTION

*----


START-OF-SELECTION.

PERFORM generation_basic. "GENERATES REPORT FOR BASIC LIST WHICH CONTAINS DOCUMENT NO , DOCUMENT YEAR

"POST DATE , DOCUMENT TYPE.

*----


*END-OF-SELECTION

*----


END-OF-SELECTION.

PERFORM report_basic. "DISPLAY REPORT FOR BASIC LIST

*----


*AT LINE-SELECTION

*----


AT LINE-SELECTION.

PERFORM generation_secondary. "GENERATES REPORT FOR SECONDARY LIST BASED ON THE DOCUMENT NUMBER AND DOCUMENT YEAR

"WHICH CONTAINS DOCUMENT NO , YEAR , ITEM NO , MOVEMENT TYPE , MOVEMENT DESCRIPTION ,

"MATERIAL NUMBER , MATERIAL DESC , UNIT OF MEASURE , QUANTITY AND AMOUNT

*----


*TOP-OF-PAGE DURING LINE-SELECTION

*----


TOP-OF-PAGE DURING LINE-SELECTION.

PERFORM header_secondary. "CREATES HEADER FOR THE SECONDARY LIST

*----


*AT USER-COMMAND

*----


AT USER-COMMAND.

PERFORM user_secondary. "SUBROUTINE FOR HANDLING USER EVENTS

&----


*& Form VALIDATION

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM validation .

*VALIDATING MATERIAL DOCUMENT NUMBER

SELECT SINGLE mblnr

INTO v_mblnr

FROM mkpf

WHERE mblnr IN s_mblnr.

IF sy-subrc NE 0.

MESSAGE 'ENTER CORRECT DOCUMENT NUMBER' TYPE 'E'.

ENDIF.

*VALIDATING MATERIAL DOCUMENT YEAR

SELECT SINGLE mjahr

INTO v_mjahr

FROM mkpf

WHERE mjahr IN s_mjahr.

IF sy-subrc NE 0.

MESSAGE 'ENTER CORRECT MATERIAL DOCUMENT YEAR' TYPE 'E'.

ENDIF.

*VALIDATING MOVEMENT TYPE

SELECT SINGLE bwart

INTO v_bwart

FROM mseg

WHERE bwart IN s_bwart.

IF sy-subrc NE 0.

MESSAGE 'ENTER CORRECT MOVEMENT TYPE' TYPE 'E'.

ENDIF.

*VALIDATING MATERIAL NUMBER

SELECT SINGLE matnr

INTO v_matnr

FROM mseg

WHERE matnr IN s_matnr.

IF sy-subrc NE 0.

MESSAGE 'ENTER CORRECT MATERIAL NUMBER' TYPE 'E'.

ENDIF.

ENDFORM. " VALIDATION

&----


*& Form HEADER

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM header .

WRITE :/30 'MATERIAL DOCUMENTS' COLOR 1. "TITLE OF BASIC LIST

WRITE :/1(89) sy-uline.

FORMAT COLOR 1.

WRITE :/1 sy-vline ,

3 'DOCUMENT NUMBER' ,

23 sy-vline ,

25 'YEAR' ,

45 sy-vline ,

47 'POST DATE' ,

67 sy-vline ,

69 'DOCTYP' ,

89 sy-vline .

FORMAT RESET.

WRITE :/1(89) sy-uline.

ENDFORM. " HEADER

&----


*& Form FOOTER

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM footer .

IF sy-lsind EQ 0. "CHECKS WHICH LIST IS IT BASIC LIST OR SECONDARY (AND NO. OF SECONDARY LIST)

WRITE :/1(89) sy-uline.

ELSEIF sy-lsind EQ 1.

WRITE :/1(192) sy-uline.

ENDIF.

ENDFORM. " FOOTER

&----


*& Form GENERATION_BASIC

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM generation_basic .

SELECT mkpf~mblnr "DOCUMENT NUMBER

mkpf~mjahr "DOCUMENT YEAR

mkpf~budat "POST DATE

mkpf~blart "DOCUMENT TYPE

INTO TABLE i_tab1

FROM mkpf INNER JOIN mseg ON mkpfmjahr EQ msegmjahr AND

mkpfmblnr EQ msegmblnr

WHERE mkpf~mblnr IN s_mblnr

AND mkpf~mjahr IN s_mjahr

AND mseg~bwart IN s_bwart

AND mseg~matnr IN s_matnr.

IF sy-subrc NE 0.

WRITE 😕 'MATERIAL DATA NOT FOUND'.

ENDIF.

DELETE ADJACENT DUPLICATES FROM i_tab1 COMPARING mblnr mjahr.

ENDFORM. " GENERATION_BASIC

&----


*& Form REPORT_BASIC

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM report_basic .

LOOP AT i_tab1.

v_color = sy-tabix MOD 2.

IF v_color EQ 0.

FORMAT COLOR 1 INTENSIFIED OFF.

ELSE.

FORMAT COLOR 2 INTENSIFIED OFF.

ENDIF.

WRITE :/1 sy-vline ,

3 i_tab1-mblnr ,

23 sy-vline ,

25 i_tab1-mjahr ,

45 sy-vline ,

47 i_tab1-budat ,

67 sy-vline ,

69 i_tab1-blart ,

89 sy-vline .

HIDE : i_tab1-mblnr , i_tab1-mjahr. "STORING THE VALUE OF FIELDS CLICKED IN SYSTEM AREA

ENDLOOP.

FORMAT RESET.

WRITE :/1(89) sy-uline.

ENDFORM. " REPORT_BASIC

&----


*& Form GENERATION_SECONDARY

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM generation_secondary .

IF sy-lsind EQ 1.

SET PF-STATUS 'DISPLAY'.

GET CURSOR FIELD v_field VALUE v_value. "GET THE FIELD VALUE AND NAME WHERE THE CURSOR WAS CLICKED

CASE v_field.

WHEN 'I_TAB1-MBLNR'. "DISPLAYS SECONDARY LIST ONLY IF DOCUMENT NUMBER IS CLICKED

SELECT mseg~mblnr "DOCUMENT NUMBER

mseg~mjahr "DOCUMENT YEAR

mseg~zeile "ITEM NUMBER

mseg~bwart "MOVEMENT TYPE

t156t~btext "MOVEMENT DESCRIPTION

mseg~matnr "MATERIAL NUMBER

makt~maktx "MATERIAL DESCRIPTION

mseg~meins "UNIT OF MEASURE

mseg~menge "QUANTITY

mseg~dmbtr "AMOUNT

INTO TABLE i_tab2

FROM ( ( mseg INNER JOIN t156t

ON msegbwart EQ t156tbwart )

INNER JOIN makt

ON msegmatnr EQ maktmatnr )

WHERE mseg~mblnr EQ i_tab1-mblnr

AND mseg~mjahr EQ i_tab1-mjahr

AND t156t~spras EQ sy-langu

AND makt~spras EQ sy-langu.

DELETE ADJACENT DUPLICATES FROM i_tab2 COMPARING mblnr mjahr.

WHEN OTHERS.

MESSAGE 'SELECT DOCUMENT NUMBER' TYPE 'E'.

ENDCASE.

LOOP AT i_tab2.

v_color = sy-tabix MOD 2.

IF v_color EQ 0.

FORMAT COLOR 1 INTENSIFIED OFF.

ELSE.

FORMAT COLOR 2 INTENSIFIED OFF.

ENDIF.

WRITE :/1 sy-vline ,

3 i_tab2-mblnr ,

12 sy-vline ,

14 i_tab2-mjahr ,

19 sy-vline ,

21 i_tab2-zeile ,

30 sy-vline ,

32 i_tab2-bwart ,

40 sy-vline ,

42 i_tab2-btext ,

72 sy-vline ,

74 i_tab2-matnr ,

94 sy-vline ,

96 i_tab2-maktx ,

146 sy-vline ,

148 i_tab2-meins ,

153 sy-vline ,

155 i_tab2-menge ,

170 sy-vline ,

172 i_tab2-dmbtr ,

192 sy-vline .

ENDLOOP.

WRITE :/1(192) sy-uline.

FORMAT RESET.

ELSEIF sy-lsind EQ 2.

GET CURSOR FIELD v_field VALUE v_value. "GET THE FIELD VALUE AND NAME WHERE THE CURSOR WAS CLICKED

CASE v_field.

WHEN 'I_TAB2-MBLNR'. "DISPLAYS SECONDARY LIST ONLY IF DOCUMENT NUMBER IS CLICKED

<b> SET PARAMETER ID : "SETTING PARAMETER ID FOR DOCUMENT NUMBER AND YEAR.

'MBN' FIELD i_tab2-mblnr ,

'MJA' FIELD i_tab2-mjahr.

CALL TRANSACTION 'MB03' AND SKIP FIRST</b> SCREEN. "CALLING TRABSACTION CODE 'MBO3'.

WHEN OTHERS.

MESSAGE 'SELECT DOCUMENT NUMBER' TYPE 'E'.

ENDCASE.

ENDIF.

ENDFORM. " GENERATION_SECONDARY

&----


*& Form HEADER_SECONDARY

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM header_secondary .

WRITE :/50 'ITEMWISE MATERIAL DOCUMENTS' COLOR 1.

WRITE :/1(192) sy-uline.

FORMAT COLOR 1.

WRITE :/1 sy-vline ,

3 'DOCUMENT NO' ,

12 sy-vline ,

14 'YEAR' ,

19 sy-vline ,

21 'ITEM NO.' ,

30 sy-vline ,

32 'MOV TYP' ,

40 sy-vline ,

42 'MOV DESCRIPTION' ,

72 sy-vline ,

74 'MATERIAL NO' ,

94 sy-vline ,

96 'MATERIAL DESCRIPTION' ,

146 sy-vline ,

148 'UOM' ,

153 sy-vline ,

155 'QUANTITY' ,

170 sy-vline ,

172 'AMOUNT' ,

192 sy-vline .

WRITE :/1(192) sy-uline.

FORMAT RESET.

ENDFORM. " HEADER_SECONDARY

&----


*& Form USER_SECONDARY

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM user_secondary .

IF sy-ucomm EQ 'DISPLAY'. "EXECUTES ONLY IF 'DISPLAY DOCUMENTS' ITEM IS CLICKED ON APPLICATION TOOL BAR.

IF sy-lsind EQ 2.

GET CURSOR FIELD v_field VALUE v_value. "GET THE FIELD VALUE AND NAME WHERE THE CURSOR WAS CLICKED

CASE v_field.

WHEN 'I_TAB2-MBLNR'. "DISPLAYS SECONDARY LIST ONLY IF DOCUMENT NUMBER IS CLICKED

SET PARAMETER ID :

'MBN' FIELD i_tab2-mblnr ,

'MJA' FIELD i_tab2-mjahr.

CALL TRANSACTION 'MB03' AND SKIP FIRST SCREEN.

WHEN OTHERS.

MESSAGE 'SELECT DOCUMENT NUMBER' TYPE 'E'.

ENDCASE.

ENDIF.

LEAVE PROGRAM.

ENDIF.

ENDFORM. " USER_SECONDARY

*&----


**& Module USER_COMMAND_0100 INPUT

*&----


    • text

*----


*module USER_COMMAND_0100 input.

*

*if sy-ucomm eq 'SUBMIT'.

*

*submit zwk22671. " and return using selection-set 'MATERIAL VAR'.

*

*ENDIF.

*

*

*

*endmodule. " USER_COMMAND_0100 INPUT

Message was edited by:

Navneeth Bothra