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 Grid Calling Transaction Code

Former Member
0 Likes
1,675

Hello Everybody

Can anyone help me about my problem in using ALV Grid calling a transaction code...?Here is the sample code below..

IF rs_selfield-fieldname = 'BELNR'.

SET PARAMETER ID 'BLN' FIELD rs_selfield-value.

CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.

ENDIF.

the main problem is how can I set my parameter id for company since

my rs_field-value is for the column BELNR ( document # field only)

it returns error when i set this code since i have no value to pass for rs_selfield for company code

SET PARAMETER ID 'BUK' FIELD

Help

thanks in advance

aVaDuDz

1 ACCEPTED SOLUTION
Read only

kostas_tsioubris
Contributor
0 Likes
1,464

Hi,

if you have the year in your internal table you can read your table as I proposed you in my first answer like this

read table 'your_table' index rs_selfield-tabindex.

SET PARAMETER ID 'BLN' FIELD 'your_table'-belnr.
SET PARAMETER ID 'BUK' FIELD 'your_table'-bukrs.

and jsut add

SET PARAMETER ID 'GJR' FIELD 'your_table'-gjahr.

Kostas

Message was edited by:

Kostas Tsioubris

12 REPLIES 12
Read only

kostas_tsioubris
Contributor
0 Likes
1,464

Hi,

I believe that you have the company code in your internal table right?

If so try this:

read table 'your_table' index rs_selfield-tabindex.

SET PARAMETER ID 'BLN' FIELD 'your_table'-belnr.

SET PARAMETER ID 'BUK' FIELD 'your_table'-bukrs.

Kostas

Read only

0 Likes
1,464

Hi Kosta,

Hello Genius,

What if i have the same document # but with different year

for example

doc # Year

10001 2006

10001 2007

how can I check the value of the year..since my return value is only the document number...please help:-(

aVaDuDz

Read only

0 Likes
1,464

Hi,

Check this :

SET PARAMETER ID 'BLN' FIELD x_belnr..

SET PARAMETER ID 'BUK' FIELD x_bukrs..

SET PARAMETER ID 'GJR' FIELD x_gjahr.

CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.

Regards

L Appana

Read only

Former Member
0 Likes
1,464

for FB03 u have to pass document number , company code and Year .

<b>in that case , read internal table with that BELNR.</b>

SET PARAMETER ID 'BLN' FIELD rs_selfield-value.

CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.

Regards

Prabhu

Read only

Former Member
0 Likes
1,464

Hi,

Check if you have any option in the sel_field str in SLIS.

As u have already BELNR, read your internal table which you displayed in ALV with BELNR and get the value for BUKRS.

Reward if helpful

santhosh

Read only

Former Member
0 Likes
1,464

IF rs_selfield-fieldname = 'BELNR'.

READ TABLE ITAB INDEX RS_SELFIELD-TABINDEX.

IF SY-SUBRC = 0.

SET PARAMETER ID 'BUK' FIELD ITAB-BUKRS.

ENDIF.

SET PARAMETER ID 'BLN' FIELD rs_selfield-value.

CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.

ENDIF.

ITAB IS YOUR DISPLAY TABLE IN ALV

REGARDS

SHIBA DUTTA

Read only

former_member632991
Active Contributor
0 Likes
1,464

Hi,

u must be comany code from some field in ur program in internal table

if that row contains the company code field then use this code

read table t_output index rs_SELFIELD-TABINDEX. for reading the row

then use that filed for setting the paramerter id for that company

SET PARAMETER ID 'Buk' FIELD it_output-bukrs.

hope it helps.

Regards,

Sonika

Read only

Former Member
0 Likes
1,464

Hello Ava,

try this.

IF rs_selfield-fieldname = 'BELNR'.

read your internal table into workarea index rs_selfield-tabindex.

i.e READ TABLE itab INTO wa INDEX rs_selfield-tabindex.

SET PARAMETER ID 'BLN' FIELD wa-belnr..

SET PARAMETER ID 'BUK' FIELD wa-bukrs..

CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.

Regards,

Neelambari.

Read only

Former Member
0 Likes
1,464

Hi,

*"Table declarations...................................................

TABLES:

rbkp, " Document Header Invoice receipt

rseg, " Document Item: Incoming Invoice

eban, " Purchase Requisition

t001w. " Plants/Branches

*"Selection screen elements............................................

PARAMETERS:

p_gjahr LIKE rbkp-gjahr. " Fiscal Year

SELECT-OPTIONS:

s_belnr FOR rbkp-belnr, " Document number of an invoice

s_bldat FOR rbkp-bldat, " Document Date in Document

s_budat FOR rbkp-budat, " Posting Date in the Document

s_werks FOR rseg-werks. " Plant

*" Data declarations...................................................

"----


  • Work variables *

"----


DATA:

w_flag1 TYPE c VALUE '0', " Flag variable 1

w_flag2 TYPE c VALUE '0', " Flag variable 2

w_index1 TYPE sy-tabix. " Index variable

"----


  • Field String to hold Document Header Invoice receipt *

"----


DATA:

BEGIN OF fs_rbkp,

belnr TYPE rbkp-belnr, " Document number of an invoice

gjahr TYPE rbkp-gjahr, " Fiscal Year

bldat TYPE rbkp-bldat, " Posting Date in the Document

budat TYPE rbkp-budat, " Posting Date in the Document

lifnr TYPE rbkp-lifnr, " Different invoicing party

END OF fs_rbkp,

"----


  • Internal table to hold Document Header Invoice receipt *

"----


t_rbkp LIKE STANDARD TABLE OF fs_rbkp.

"----


  • Field String to hold Document Item: Incoming Invoice *

"----


DATA:

BEGIN OF fs_rseg,

belnr TYPE rseg-belnr, " Document number of an invoice

ebeln TYPE rseg-ebeln, " Purchasing Document Number

wrbtr TYPE rseg-wrbtr, " Amount in document currency

END OF fs_rseg,

"----


  • Internal table to hold Document Item: Incoming Invoice *

"----


t_rseg LIKE STANDARD TABLE OF fs_rseg.

"----


  • Field String to hold Purchase Requisition *

"----


DATA:

BEGIN OF fs_eban,

banfn TYPE eban-banfn, " Purchase requisition number

ernam TYPE eban-ernam, " Person who Created the Object

afnam TYPE eban-afnam, " Name of requisitioner/requester

badat TYPE eban-badat, " Requisition (request) date

ebeln TYPE eban-ebeln, " Purchase order number

END OF fs_eban,

"----


  • Internal table to hold Purchase Requisition *

"----


t_eban LIKE STANDARD TABLE OF fs_eban.

"----


  • Field String to hold Desired Data *

"----


DATA:

BEGIN OF fs_final,

ebeln TYPE rseg-ebeln, " Purchasing Document Number

banfn TYPE eban-banfn, " Purchase requisition number

badat TYPE eban-badat, " Requisition (request) date

bldat TYPE rbkp-bldat, " Posting Date in the Document

lifnr TYPE rbkp-lifnr, " Different invoicing party

wrbtr TYPE rseg-wrbtr, " Amount in document currency

afnam TYPE eban-afnam, " Name of requisitioner/requester

ernam TYPE eban-ernam, " Name of Person who Created the

" Object

END OF fs_final,

"----


  • Internal table to hold Desired Data *

"----


t_final LIKE STANDARD TABLE OF fs_final.

"----


  • INITIALIZATION *

"----


INITIALIZATION.

p_gjahr = sy-datum+0(4).

"----


  • AT SELECTION-SCREEN EVENT *

"----


AT SELECTION-SCREEN.

IF s_belnr IS INITIAL OR s_bldat IS INITIAL OR s_budat IS INITIAL.

MESSAGE ' (Invoice) Add Creation Date .' TYPE 'E'.

ENDIF. " IF S_BELNR...

"----


  • AT SELECTION-SCREEN ON FIELD EVENT *

"----


AT SELECTION-SCREEN ON s_werks.

SELECT SINGLE werks " Plant

FROM t001w

INTO t001w

WHERE werks IN s_werks.

IF sy-subrc NE 0.

MESSAGE 'Invalid plant' TYPE 'E'.

ENDIF. " IF SY-SUBRC NE 0.

"----


  • START-OF-SELECTION EVENT *

"----


START-OF-SELECTION.

PERFORM get_purchaserequistion.

LOOP AT t_rseg INTO fs_rseg.

READ TABLE t_rbkp INTO fs_rbkp WITH KEY belnr = fs_rseg-belnr

BINARY SEARCH.

IF sy-subrc EQ 0.

READ TABLE t_eban INTO fs_eban WITH KEY ebeln = fs_rseg-ebeln

BINARY SEARCH.

IF sy-subrc EQ 0.

IF fs_rbkp-bldat LE fs_eban-badat.

DELETE t_rseg INDEX sy-tabix.

ENDIF. " IF FS_RBKP-BLDAT...

ENDIF. " IF SY-SUBRC EQ 0

ENDIF. " IF SY-SUBRC EQ 0

ENDLOOP. " LOOP AT T_RSEG...

LOOP AT t_rbkp INTO fs_rbkp.

WHILE w_flag1 EQ '0'.

READ TABLE t_rseg INTO fs_rseg WITH KEY belnr = fs_rbkp-belnr

BINARY SEARCH.

w_index1 = sy-tabix.

IF sy-subrc EQ 0.

WHILE w_flag2 EQ '0'.

READ TABLE t_eban INTO fs_eban WITH KEY ebeln = fs_rseg-ebeln

BINARY SEARCH.

IF sy-subrc EQ 0.

fs_final-bldat = fs_rbkp-bldat.

fs_final-lifnr = fs_rbkp-lifnr.

fs_final-ebeln = fs_rseg-ebeln.

fs_final-wrbtr = fs_rseg-wrbtr.

fs_final-banfn = fs_eban-banfn.

fs_final-badat = fs_eban-badat.

fs_final-afnam = fs_eban-afnam.

fs_final-ernam = fs_eban-ernam.

APPEND fs_final TO t_final.

CLEAR fs_final.

DELETE t_eban INDEX sy-tabix .

ELSE.

w_flag2 = '1'.

DELETE t_rseg INDEX w_index1.

ENDIF. " IF SY-SUBRC EQ 0

ENDWHILE. " WHILE W_FLAG2...

w_flag2 = '0'.

ELSE.

w_flag1 = '1'.

ENDIF. " IF SY-SUBRC EQ 0

ENDWHILE. " WHILE W_FLAG1...

w_flag1 = '0'.

ENDLOOP. " LOOP AT T_RBKP...

CLASS lcl_event_receiver DEFINITION DEFERRED.

  • Declare reference variables to the ALV grid and the container

DATA :

cust_con TYPE scrfname VALUE 'BCALVC_TOOLBAR_D100_C1',

cont_on_dialog TYPE scrfname VALUE 'BCALVC_TOOLBAR_D101_C1',

ref1 TYPE REF TO cl_gui_custom_container,

ref2 TYPE REF TO cl_gui_alv_grid,

event_receiver TYPE REF TO lcl_event_receiver,

fcat TYPE lvc_t_fcat,

wa TYPE lvc_s_fcat,

wa_layo TYPE lvc_s_layo.

CALL SCREEN 200.

  • class lcl_event_receiver: local class to define and handle own

*functions......................................................

  • Definition:

CLASS lcl_event_receiver DEFINITION.

PUBLIC SECTION.

METHODS:

handle_toolbar

FOR EVENT toolbar OF cl_gui_alv_grid

IMPORTING e_object e_interactive,

handle_user_command

FOR EVENT user_command OF cl_gui_alv_grid

IMPORTING e_ucomm.

PRIVATE SECTION.

ENDCLASS. "lcl_event_receiver DEFINITION

  • class lcl_event_receiver (Implementation)

CLASS lcl_event_receiver IMPLEMENTATION.

METHOD handle_toolbar.

  • In event handler method for event TOOLBAR: Append own functions

  • by using event parameter E_OBJECT.

DATA: ls_toolbar TYPE stb_button.

*....................................................................

  • E_OBJECT of event TOOLBAR is of type REF TO CL_ALV_EVENT_TOOLBAR_SET.

  • append a separator to normal toolbar

CLEAR ls_toolbar.

MOVE 3 TO ls_toolbar-butn_type.

APPEND ls_toolbar TO e_object->mt_toolbar.

  • append an icon to show booking table

CLEAR ls_toolbar.

MOVE 'PORDER' TO ls_toolbar-function.

MOVE icon_employee TO ls_toolbar-icon.

MOVE 'Show Bookings' TO ls_toolbar-quickinfo.

MOVE 'PONUMBER' TO ls_toolbar-text.

MOVE ' ' TO ls_toolbar-disabled.

APPEND ls_toolbar TO e_object->mt_toolbar.

  • append a separator to normal toolbar

CLEAR ls_toolbar.

MOVE 3 TO ls_toolbar-butn_type.

APPEND ls_toolbar TO e_object->mt_toolbar.

  • append an icon to show booking table

CLEAR ls_toolbar.

MOVE 'PREQUISITION' TO ls_toolbar-function.

MOVE icon_employee TO ls_toolbar-icon.

MOVE 'Show Bookings' TO ls_toolbar-quickinfo.

MOVE 'PRNUMBER' TO ls_toolbar-text.

MOVE ' ' TO ls_toolbar-disabled.

APPEND ls_toolbar TO e_object->mt_toolbar.

ENDMETHOD. " handle_toolbar

*----


METHOD handle_user_command.

*Event handler method for event USER_COMMAND:

CASE e_ucomm.

WHEN 'PORDER'.

CALL TRANSACTION 'ME23N'.

WHEN 'PREQUISITION'.

CALL TRANSACTION 'ME53N'.

ENDCASE.

ENDMETHOD. " handle_user_command

*----


ENDCLASS. " lcl_event_receiver

&----


*& Module STATUS_0200 OUTPUT

&----


  • text

----


MODULE status_0200 OUTPUT.

SET PF-STATUS 'GUI'.

SET TITLEBAR 'TITLE'.

IF sy-ucomm = 'BACK'.

LEAVE PROGRAM.

ENDIF.

PERFORM form_fcat.

PERFORM form_layo.

IF ref1 IS INITIAL.

CREATE OBJECT ref1

EXPORTING

  • PARENT = ref1

container_name = 'CUST_CON'

  • STYLE =

  • LIFETIME = lifetime_default

  • REPID =

  • DYNNR =

  • NO_AUTODEF_PROGID_DYNNR =

EXCEPTIONS

cntl_error = 1

cntl_system_error = 2

create_error = 3

lifetime_error = 4

lifetime_dynpro_dynpro_link = 5

OTHERS = 6

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ENDIF.

IF ref2 IS INITIAL.

CREATE OBJECT ref2

EXPORTING

  • I_SHELLSTYLE = 0

  • I_LIFETIME =

i_parent = ref1

  • I_APPL_EVENTS = space

  • I_PARENTDBG =

  • I_APPLOGPARENT =

  • I_GRAPHICSPARENT =

  • I_NAME =

EXCEPTIONS

error_cntl_create = 1

error_cntl_init = 2

error_cntl_link = 3

error_dp_create = 4

OTHERS = 5

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

CALL METHOD ref2->set_table_for_first_display

  • EXPORTING

  • I_BUFFER_ACTIVE =

  • I_BYPASSING_BUFFER =

  • I_CONSISTENCY_CHECK =

  • I_STRUCTURE_NAME =

  • IS_VARIANT =

  • I_SAVE =

  • I_DEFAULT = 'X'

  • is_layout = wa_layo

  • IS_PRINT =

  • IT_SPECIAL_GROUPS =

  • IT_TOOLBAR_EXCLUDING =

  • IT_HYPERLINK =

  • IT_ALV_GRAPHICS =

  • IT_EXCEPT_QINFO =

CHANGING

it_outtab = t_final

it_fieldcatalog = fcat

  • IT_SORT =

  • IT_FILTER =

EXCEPTIONS

invalid_parameter_combination = 1

program_error = 2

too_many_lines = 3

OTHERS = 4

.

IF sy-subrc <> 0.

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

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

ENDIF.

CREATE OBJECT event_receiver.

SET HANDLER event_receiver->handle_user_command FOR ref2.

SET HANDLER event_receiver->handle_toolbar FOR ref2.

*Call method 'set_toolbar_interactive' to raise event TOOLBAR.

CALL METHOD ref2->set_toolbar_interactive.

ENDIF.

ENDMODULE. " STATUS_0200 OUTPUT

----


  • Form FORM_FCAT *

----


  • text *

----


FORM form_fcat.

CLEAR fcat.

CLEAR wa.

wa-fieldname = 'EBELN'.

wa-col_pos = 1.

wa-scrtext_l = ' PURCHASE ORDER NUMBER'.

APPEND wa TO fcat.

CLEAR wa.

wa-fieldname = 'BANFN'.

wa-col_pos = 2.

wa-scrtext_l = 'PURCHASE REQUISITION NUMBER'.

APPEND wa TO fcat.

CLEAR wa.

wa-fieldname = 'BADAT'.

wa-col_pos = 3.

wa-scrtext_l = 'PR CREATION DATE'.

APPEND wa TO fcat.

CLEAR wa.

wa-fieldname = 'BLDAT'.

wa-col_pos = 4.

wa-scrtext_l = 'INVOICE DATE'.

APPEND wa TO fcat.

CLEAR wa.

wa-fieldname = 'LIFNR'.

wa-col_pos = 5.

wa-scrtext_l = 'VENDOR NUMBER'.

APPEND wa TO fcat.

wa-fieldname = 'WRBTR'.

wa-col_pos = 6.

wa-do_sum = 'X'.

wa-scrtext_l = ' PO AMOUNT'.

APPEND wa TO fcat.

wa-fieldname = 'AFNAM'.

wa-col_pos = 7.

wa-scrtext_l = 'REQUISITIONER'.

APPEND wa TO fcat.

wa-fieldname = 'ERNAM'.

wa-col_pos = 8.

wa-scrtext_l = 'PR CREATOR'.

APPEND wa TO fcat.

ENDFORM. " FORM_FCAT

----


  • Module USER_COMMAND_0200 INPUT *

----


  • text *

----


MODULE user_command_0200 INPUT.

CASE sy-ucomm.

WHEN 'BACK' OR 'CANCEL' OR 'EXIT'.

LEAVE PROGRAM.

ENDCASE.

ENDMODULE. " USER_COMMAND_0200 INPUT

----


  • FORM FORM_LAYO *

----


  • There are no interface parameters to be passed to this subroutine.*

----


FORM form_layo.

CLEAR wa_layo.

wa_layo-zebra = 'X'.

wa_layo-grid_title = 'GRID TITLE'.

wa_layo-no_toolbar = 'X'.

ENDFORM. " FORM_LAYO

----


  • FORM GET_PURCHASEREQUISITION *

----


  • This subroutine selects all the Purchase requisitions from table *

  • EBAN for all the selected Invoices based on the Purchase orders. *

----


  • There are no interface parameters to be passed to this subroutine. *

----


FORM get_purchaserequistion.

SELECT belnr " Document number of an invoice

gjahr " Fiscal Year

bldat " Posting Date in the Document

budat " Posting Date in the Document

lifnr " Different invoicing party

FROM rbkp

INTO TABLE t_rbkp

WHERE belnr IN s_belnr

AND gjahr EQ p_gjahr

AND bldat IN s_bldat

AND budat IN s_budat.

IF NOT t_rbkp[] IS INITIAL.

SELECT belnr " Document number of an invoice

ebeln " Purchasing Document Number

wrbtr " Amount in document currency

FROM rseg

INTO TABLE t_rseg

FOR ALL ENTRIES IN t_rbkp

WHERE belnr EQ t_rbkp-belnr

AND werks IN s_werks.

ENDIF. " IF NOT t_rbkp[] IS INITIAL...

IF NOT t_rseg[] IS INITIAL.

SELECT banfn

ernam

afnam

badat

ebeln

FROM eban

INTO CORRESPONDING FIELDS OF TABLE t_eban

FOR ALL ENTRIES IN t_rseg

WHERE ebeln EQ t_rseg-ebeln.

ENDIF. " IF NOT t_rseg[] IS INITIAL...

ENDFORM. " GET_PURCHASEREQUISITION

reward points if helpful.

regards,

kiran kumar k.

Read only

kostas_tsioubris
Contributor
0 Likes
1,465

Hi,

if you have the year in your internal table you can read your table as I proposed you in my first answer like this

read table 'your_table' index rs_selfield-tabindex.

SET PARAMETER ID 'BLN' FIELD 'your_table'-belnr.
SET PARAMETER ID 'BUK' FIELD 'your_table'-bukrs.

and jsut add

SET PARAMETER ID 'GJR' FIELD 'your_table'-gjahr.

Kostas

Message was edited by:

Kostas Tsioubris

Read only

0 Likes
1,464

Hi Kostas,

Hello Genius,

i overview your code..because..i included the with key belnr..

the correct code u instruct only is index <value>

thanks! my mistake..thanks for the reply!!!!you're so kind.

aVaDuDz

Read only

0 Likes
1,464

Hi Kostas

hello genius,

my friend kindly help me about my problem in inverted logo appeared in sapscript report...this incident happen when we tried to change the default printer to a newly purchase printer.Our logo is letter M...but once we tried to connet it to

Model: LaserJet 3050

Driver Version: HP LaserJet Series PCL 6 (60.51.1241.0)

the printed logo is letter W...

kindly help...

we dont know where to fix that...it only happens to that printer..but to the old printers..which is a different model...it prints normally..

Thanks in advance,

aVaDuDz