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

interactive report using push button on menu bar

Former Member
0 Likes
768

Hi dear,

I have a requirement of interactive report.The basic list of a report will

go to the secondary list by just clicking on a push button on a menubar.(anyone could give me the suggestion with coding would be helpful)

2 REPLIES 2
Read only

Former Member
0 Likes
495

Hi,

Check this program:

Program Name: Z_SLN_INT_REP

-


Change Log *

Date :

Author :

Description :

Transport No:

-


Tables *

-


TABLES: vbak,

vbap.

-


Constants *

-


CONSTANTS: gc_or TYPE vbak-auart VALUE 'OR'.

-


Variables *

-


*Data: xxxx like yyyy.

-


Structures *

-


TYPES : BEGIN OF gt_vbak,

vbeln TYPE vbak-vbeln,

erdat TYPE vbak-erdat,

ernam TYPE vbak-ernam,

auart TYPE vbak-auart,

netwr TYPE vbak-netwr,

waerk TYPE vbak-waerk,

END OF gt_vbak,

BEGIN OF gt_vbap,

vbeln TYPE vbap-vbeln,

posnr TYPE vbap-posnr,

matnr TYPE vbap-matnr,

netwr TYPE vbap-netwr,

END OF gt_vbap,

BEGIN OF gt_fcode,

code(4) TYPE c,

END OF gt_fcode.

-


Internal Tables *

-


DATA : git_vbak TYPE TABLE OF gt_vbak,

git_vbap TYPE TABLE OF gt_vbap,

git_fcode TYPE TABLE OF gt_fcode.

DATA : wa_vbak TYPE gt_vbak,

wa_vbap TYPE gt_vbap,

wa_fcode TYPE gt_fcode.

-


Selection Screen *

-


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

SELECT-OPTIONS: s_vbeln FOR vbak-vbeln OBLIGATORY.

PARAMETERS: p_auart LIKE vbak-auart.

SELECTION-SCREEN END OF BLOCK b1.

-


Initialization *

-


INITIALIZATION.

p_auart = gc_or.

-


At Selection Screen Output *

-


AT SELECTION-SCREEN OUTPUT.

-


At Selection Screen *

-


AT SELECTION-SCREEN.

PERFORM validate_entries.

-


Start Of Selection *

-


START-OF-SELECTION.

SET TITLEBAR 'AAA'.

SET PF-STATUS 'ABC'.

PERFORM get_sales_orders.

PERFORM get_items.

-


End Of Selection *

-


END-OF-SELECTION.

PERFORM display_output.

-


Top Of Page *

-


TOP-OF-PAGE.

PERFORM report_header.

-


Top Of Page DURING LINE SELECTION *

-


TOP-OF-PAGE DURING LINE-SELECTION.

PERFORM secondary_list_header.

-


End Of Page *

-


END-OF-PAGE.

-


At Line Selection *

-


AT LINE-SELECTION.

PERFORM get_items_list.

-


At User Command *

-


AT USER-COMMAND.

PERFORM get_items_user_command.

&----


*& Form validate_entries

&----


Validate Entries on Selection Screen

-


FORM validate_entries .

DATA : lv_vbeln TYPE vbak-vbeln.

SELECT SINGLE vbeln

FROM vbak

INTO lv_vbeln

WHERE vbeln IN s_vbeln.

IF sy-subrc NE 0.

SET CURSOR FIELD 'S_VBAK-VBELN'.

MESSAGE e000 WITH 'Invalid Sales Orders'(002).

ENDIF.

ENDFORM. " validate_entries

&----


*& Form get_sales_orders

&----


List of Sales Orders

-


FORM get_sales_orders .

CLEAR : git_vbak[].

SELECT vbeln

erdat

ernam

auart

netwr

waerk

FROM vbak

INTO TABLE git_vbak

WHERE vbeln IN s_vbeln

AND auart EQ p_auart.

IF sy-subrc EQ 0.

SORT git_vbak BY vbeln.

ENDIF.

ENDFORM. " get_sales_orders

&----


*& Form display_output

&----


Display List of Sales Orders

-


FORM display_output .

LOOP AT git_vbak INTO wa_vbak.

WRITE :/1(10) wa_vbak-vbeln HOTSPOT ON,

(10) wa_vbak-erdat,

(10) wa_vbak-ernam,

(4) wa_vbak-auart,

(20) wa_vbak-netwr,

(5) wa_vbak-waerk.

HIDE wa_vbak-vbeln.

CLEAR wa_vbak.

ENDLOOP.

ENDFORM. " display_output

&----


*& Form report_header

&----


text

-


FORM report_header .

WRITE :/1(10) 'SalesOrder'(003),

(10) 'Crt. Date'(004),

(10) 'SalesOrder'(005),

(4) 'OrdT'(006),

(20) 'Amount'(007),

(5) 'Curr'(008).

ENDFORM. " report_header

&----


*& Form get_items

&----


Get Line items

-


FORM get_items .

IF NOT git_vbak[] IS INITIAL.

CLEAR : git_vbap[].

SELECT vbeln

posnr

matnr

netwr

FROM vbap

INTO TABLE git_vbap

FOR ALL ENTRIES IN git_vbak

WHERE vbeln EQ git_vbak-vbeln.

IF sy-subrc EQ 0.

SORT git_vbap BY vbeln posnr.

ENDIF.

ENDIF.

ENDFORM. " get_items

&----


*& Form secondary_list_header

&----


Secondary List Header

-


FORM secondary_list_header .

WRITE 😕 'This is my secondary list:'(009), sy-lsind.

ENDFORM. " secondary_list_header

&----


*& Form get_items_list

&----


text

-


FORM get_items_list .

DATA: lv_fname(14) TYPE c VALUE 'WA_VBAK-VBELN',

lv_value TYPE vbak-vbeln.

GET CURSOR FIELD lv_fname VALUE lv_value.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

input = lv_value

IMPORTING

output = lv_value.

WRITE 😕 ' I AMIN AT SELECTION-SCREEN'.

LOOP AT git_vbap INTO wa_vbap

WHERE vbeln EQ lv_value.

WRITE :/1(10) wa_vbap-vbeln,

(10) wa_vbap-posnr,

(18) wa_vbap-matnr,

(20) wa_vbap-netwr.

CLEAR : wa_vbap.

ENDLOOP.

ENDFORM. " get_items_list

&----


*& Form get_items_user_command

&----


text

-


FORM get_items_user_command .

WRITE 😕 ' I AMIN USER-COMMAND'.

CASE sy-ucomm.

WHEN 'DISP' OR 'DISM'.

LOOP AT git_vbap INTO wa_vbap

WHERE vbeln EQ wa_vbak-vbeln.

WRITE :/1(10) wa_vbap-vbeln,

(10) wa_vbap-posnr,

(18) wa_vbap-matnr,

(20) wa_vbap-netwr.

ENDLOOP.

CLEAR : git_fcode[],

wa_fcode.

wa_fcode-code = 'DISP'.

APPEND wa_fcode TO git_fcode.

wa_fcode-code = 'DISM'.

APPEND wa_fcode TO git_fcode.

ENDCASE.

SET PF-STATUS 'ABC' EXCLUDING git_fcode.

SET TITLEBAR 'AAA' WITH wa_vbak-vbeln.

ENDFORM. " get_items_user_command

Regards,

Shiva

Read only

Former Member
0 Likes
495

Hi Debasish,

You can easily implement a button in your interactive report using these statements:

INCLUDE <list>.  "ABAP includes, including an appropriate ICON of your choice

SELECTION-SCREEN PUSHBUTTON /1(20) but1 USER-COMMAND docu.

INITIALIZATION.
but1 = icon_display.         "this is your selected ICON from the above INCLUDE
but1+4 = 'Secondary List'. "your text
...
...

AT SELECTION-SCREEN.
  IF SY-UCOMM = 'DOCU'.
    PERFORM display_second_list.
  ENDIF.
....
.....

Good luck,

Heinz