Application Development 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: 

use of click event show next alv based on doc.no

Former Member
0 Kudos

hi all experts ,

                    I am fresher in sap abap , i create a sale register report based on  g/l account  so that i have a one issue that is :

                                          WHEN USER CLICK ON DOC.NO (VBELN)  THEN ONLY THAT DOC.NO DETAIL WILL BE SHOWN ON NEXT ALV

 

                   I CAN SHOW THE NEXT ALV BUT CAN'T SHOW SINGLE DOCNO BASED  RECORD ..

                                                   

                                                                                            please help me ................

THANS & REGARD

FAHEEM KHAN ....

1 ACCEPTED SOLUTION

former_member212002
Active Contributor
0 Kudos

Post your code on how you are navigating to the next ALV?

What events are you using?

Thanks

Abhinab

15 REPLIES 15

Former Member
0 Kudos

Hi,

Please check the below code. which TCODE you want to go. you can change it.

* Local declarations

 
DATA: lwa_outtab TYPE ty_post.


* Click any cell will drop down TCODE FBV0

 
READ TABLE gt_post INTO lwa_outtab INDEX us_row.



 
IF lwa_outtab-belnr IS NOT INITIAL.



   
SET PARAMETER ID 'BUK' FIELD lwa_outtab-bukrs.

   
SET PARAMETER ID 'BLP' FIELD lwa_outtab-belnr.

   
SET PARAMETER ID 'GJR' FIELD lwa_outtab-gjahr.



   
CALL TRANSACTION 'FBV0' AND SKIP FIRST SCREEN.



 
ENDIF.


Regards.

Yawa

former_member212002
Active Contributor
0 Kudos

Post your code on how you are navigating to the next ALV?

What events are you using?

Thanks

Abhinab

0 Kudos

FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield
TYPE slis_selfield.



CASE r_ucomm.

WHEN '&IC1'.

READ TABLE it_main INTO wa_main INDEX
rs_selfield-tabindex.

PERFORM GET_ITEM_DATA.
PERFORM ITEM_ALV_DATA.

        PERFORM DISPLAY_ITEM_DATA.

ENDCASE.


ENDFORM .


FORM GET_ITEM_DATA .

DATA : BEGIN OF WA_VBRP ,

VBELN
TYPE VBRP-VBELN,
VKGRP
TYPE VBRP-VKGRP,
VKBUR
TYPE VBRP-VKBUR,
WERKS
TYPE VBRP-WERKS,
MATKL
TYPE VBRP-MATKL , " RELATION ...
MATNR
TYPE VBRP-MATNR , " RELATION ...
FKIMG
TYPE VBRP-FKIMG ,
VRKME
TYPE VBRP-VRKME ,
BRGEW
TYPE VBRP-BRGEW ,
NTGEW
TYPE VBRP-NTGEW ,
GEWEI
TYPE VBRP-GEWEI ,
NETWR
TYPE VBRP-NETWR ,
POSNR
TYPE VBRP-POSNR ,

END OF WA_VBRP ,

IT_VBRP
LIKE STANDARD TABLE OF WA_VBRP .

DATA : BEGIN OF WA_T023T ,

MATKL
TYPE T023T-MATKL, " RELATION ...
WGBEZ
TYPE T023T-WGBEZ,

END OF WA_T023T ,

IT_T023T
LIKE STANDARD TABLE OF T023T .

" 10TH TABLE ...
DATA : BEGIN OF WA_MAKT ,

MAKTX
TYPE MAKT-MAKTX,
MATNR
TYPE MAKT-MATNR, " RELATION ...

END OF WA_MAKT ,

IT_MAKT
LIKE STANDARD TABLE OF MAKT .

" ITEM DATA SELECTION ....

SELECT VBELN VKGRP VKBUR WERKS MATKL MATNR FKIMG VRKME BRGEW
NTGEW GEWEI NETWR POSNR
FROM VBRP INTO TABLE IT_VBRP
FOR ALL ENTRIES IN IT_MAIN WHERE VBELN = IT_MAIN-VBELN .


SELECT MAKTX MATNR FROM MAKT INTO TABLE IT_MAKT
FOR ALL ENTRIES IN IT_VBRP
WHERE MATNR = IT_VBRP-MATNR.

SELECT  MATKL WGBEZ FROM t023t INTO TABLE IT_T023T
FOR ALL ENTRIES IN IT_VBRP
WHERE MATKL = IT_VBRP-MATKL .

IF it_vbrp IS NOT INITIAL . " IF FOR IT_VBRP ...

LOOP AT it_vbrp INTO wa_vbrp . "LOOP FOR IT_VBRK_VBRP ...

MOVE-CORRESPONDING wa_vbrp TO wa_ITEM.

IF SY-SUBRC = 0. " IF FOR CHECKING ...


READ TABLE it_T023T INTO wa_T023T WITH KEY
MATKL = WA_ITEM-MATKL .

IF sy-subrc = 0.

MOVE : WA_T023T-WGBEZ TO WA_ITEM-WGBEZ .

ENDIF.


READ TABLE it_MAKT INTO wa_MAKT WITH KEY
MATNR = WA_ITEM-MATNR .

IF sy-subrc = 0.

MOVE : WA_MAKT-MAKTX TO WA_ITEM-MAKTX .

ENDIF.

ENDIF.
" IF FOR CHECKING ...

APPEND WA_ITEM TO IT_ITEM.
CLEAR WA_ITEM .

ENDLOOP.
"LOOP FOR IT_VBRK_VBRP ...

ENDIF. 
" IF FOR IT_VBRP ...

ENDFORM.

FORM ITEM_ALV_DATA.

wft1-fieldname =
'VBELN'"1
wft1-seltext_m =
'BILL.DOC.NO'.
APPEND wft1 TO ftab1.
CLEAR wft1.

wft1-fieldname =
'VKBUR'"2
wft1-seltext_m =
'SALE.OFF'.
APPEND wft1 TO ftab1.
CLEAR WFT1.

wft1-fieldname =
'VKGRP'"3
wft1-seltext_m =
'SALES.GRP'.
APPEND wft1 TO ftab1.
CLEAR WFT1.

wft1-fieldname =
'FKIMG'. "4
wft1-seltext_m =
'QUANTITY'.
APPEND wft1 TO ftab1.
CLEAR WFT1.

wft1-fieldname =
'VRKME'. "5
wft1-seltext_m =
'UNIT.GROS'.
APPEND wft1 TO ftab1.
CLEAR WFT1.

wft1-fieldname =
'BRGEW'. "6
wft1-seltext_m =
'GRS.WEIGHT'.
APPEND wft1 TO ftab1.
CLEAR WFT1.

wft1-fieldname =
'NTGEW'. "7
wft1-seltext_m =
'NET.WEIGHT'.
APPEND wft1 TO ftab1.
CLEAR WFT1.

wft1-fieldname =
'GEWEI'. "8
wft1-seltext_m =
'UNIT'.
APPEND wft1 TO ftab1.
CLEAR WFT1.

wft1-fieldname =
'NETWR'. "9
wft1-seltext_m =
'VALUE'.
APPEND wft1 TO ftab1.
CLEAR WFT1.

wft1-fieldname =
'MATNR'. "10
wft1-seltext_m =
'MATERIAL'.
APPEND wft1 TO ftab1.
CLEAR WFT1.

wft1-fieldname =
'MATKL'. "11
wft1-seltext_m =
'MATR.GRP'.
APPEND wft1 TO ftab1.
CLEAR WFT1.

wft1-fieldname =
'WGBEZ'. "12
wft1-seltext_m =
'MATR.GRP.DISC'.
APPEND wft1 TO ftab1.
CLEAR WFT1.

wft1-fieldname =
'MAKTX'. "13
wft1-seltext_m =
'MATR.DISC'.
APPEND wft1 TO ftab1.
CLEAR WFT1.

layout1-zebra =
'X'.


ENDFORM.

FORM DISLPLAY_ITEM_DATA .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING
*              I_INTERFACE_CHECK                 = ' '
*              I_BYPASSING_BUFFER                = ' '
*              I_BUFFER_ACTIVE                   = ' '
*              I_CALLBACK_PROGRAM                = 'user_command'
*              I_CALLBACK_PF_STATUS_SET          = ' '
*              I_CALLBACK_USER_COMMAND           = ' '
*              I_CALLBACK_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                         = layout
IT_FIELDCAT                       = ftab
*              IT_EXCLUDING                      = it_exc
*              IT_SPECIAL_GROUPS                 =
*              IT_SORT                           =
*              IT_FILTER                         =
*              IS_SEL_HIDE                       =
*              I_DEFAULT                         = 'X'
*              I_SAVE                            = 'X'
*              IS_VARIANT                        =
*              IT_EVENTS                         =
*              IT_EVENT_EXIT                     =
*              IS_PRINT                          =
*              IS_REPREP_ID                      =
*              I_SCREEN_START_COLUMN             = 0
*              I_SCREEN_START_LINE               = 0
*              I_SCREEN_END_COLUMN               = 0
*              I_SCREEN_END_LINE                 = 0
*              I_HTML_HEIGHT_TOP                 = 0
*              I_HTML_HEIGHT_END                 = 0
*              IT_ALV_GRAPHICS                   =
*              IT_HYPERLINK                      =
*              IT_ADD_FIELDCAT                   =
*              IT_EXCEPT_QINFO                   =
*              IR_SALV_FULLSCREEN_ADAPTER        =
*            IMPORTING
*              E_EXIT_CAUSED_BY_CALLER           =
*              ES_EXIT_CAUSED_BY_USER            =
TABLES
t_outtab                          = IT_ITEM
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.

  1. ENDFORM.

0 Kudos

Change your code like this - This will ensure the data is retrieved only for the record selected .



CASE r_ucomm.

WHEN '&IC1'.

READ TABLE it_main INTO wa_main INDEX
rs_selfield-tabindex.

PERFORM GET_ITEM_DATA.
PERFORM ITEM_ALV_DATA.

PERFORM DISPLAY_ITEM_DATA.

ENDCASE.


ENDFORM .


FORM GET_ITEM_DATA .

DATA : BEGIN OF WA_VBRP ,

VBELN
TYPE VBRP-VBELN,
VKGRP
TYPE VBRP-VKGRP,
VKBUR
TYPE VBRP-VKBUR,
WERKS
TYPE VBRP-WERKS,
MATKL
TYPE VBRP-MATKL , " RELATION ...
MATNR
TYPE VBRP-MATNR , " RELATION ...
FKIMG
TYPE VBRP-FKIMG ,
VRKME
TYPE VBRP-VRKME ,
BRGEW
TYPE VBRP-BRGEW ,
NTGEW
TYPE VBRP-NTGEW ,
GEWEI
TYPE VBRP-GEWEI ,
NETWR
TYPE VBRP-NETWR ,
POSNR
TYPE VBRP-POSNR ,

END OF WA_VBRP ,

IT_VBRP
LIKE STANDARD TABLE OF WA_VBRP .

DATA : BEGIN OF WA_T023T ,

MATKL
TYPE T023T-MATKL, " RELATION ...
WGBEZ
TYPE T023T-WGBEZ,

END OF WA_T023T ,

IT_T023T
LIKE STANDARD TABLE OF T023T .

" 10TH TABLE ...
DATA : BEGIN OF WA_MAKT ,

MAKTX
TYPE MAKT-MAKTX,
MATNR
TYPE MAKT-MATNR, " RELATION ...

END OF WA_MAKT ,

IT_MAKT
LIKE STANDARD TABLE OF MAKT .

" ITEM DATA SELECTION ....

SELECT VBELN VKGRP VKBUR WERKS MATKL MATNR FKIMG VRKME BRGEW
NTGEW GEWEI NETWR POSNR
FROM VBRP INTO TABLE IT_VBRP
WHERE
VBELN = WA_MAIN-VBELN .

Let me know if you need further help

Thanks

Abhinab

0 Kudos

This message was moderated.

0 Kudos

This message was moderated.

GirieshM
Active Contributor
0 Kudos

Hi Faheem,

Please use AT-Line Selection event and Hide statements in ABAP. Based on the Hide field you can fetch the details by FM or by using Query. Revert Back in case of information needed.

With Regards,

Giriesh M

Former Member
0 Kudos

hi giriesh sir ,

                       thanks but i already do that ........

Former Member
0 Kudos

hi Faheem

you are fresh, i think you are using call funtion to show ALV, right?

you need get the current selected row(DOC.NO) and pass this value to next ALV.

in your code you need 'I_CALLBACK_USER_COMMAND', like blow

   call function 'REUSE_ALV_GRID_DISPLAY'
     exporting

       ...
       i_callback_user_command           = 'USER_COMMAND'

       ...

FORM USER_COMMAND USING r_ucomm LIKE sy-ucomm

                  rs_selfield TYPE slis_selfield.

       READ TABLE it_day INDEX rs_selfield-tabindex. ---> this will give the selected row

ENDFORM.

regards,

Archer

0 Kudos

hi zhang sir ,

               i already used that send ur mail id i will send u a complete code on your mail id you sould mark & implement that place where i wrong on to that

Former Member
0 Kudos

Hi you could check out below code

* define your hot spot click

class lcl_event_receiver definition.

  public section.

    methods:

    handle_hotspot_click

        for event hotspot_click of cl_gui_alv_grid

            importing e_row_id

                      e_column_id

                      es_row_no.

  private section.

endclass.                    "lcl_event_receiver DEFINITION

** here is implementation

class lcl_event_receiver implementation.

  method handle_hotspot_click.

  

    case e_column_id.

      when 'VBELN'.

        read table gt_out into gs_out index es_row_no-row_id."gt_out is my internal table which is shown in alv grid you have to write down your owns

        check gs_out-vbeln  is not initial.

        set parameter id 'VF'         field gs_out-vbeln.

        call transaction 'VF03' and skip first screen .

     

  endmethod.                       "handle_hotspot_click

endclass.                    "lcl_event_receiver IMPLEMENTATION

* you need to set handler for alv grid

set handler event_receiver->handle_hotspot_click

                                for  alv_grid_pr.

I sent user VF03 screen for demonstration . You could call another screen and display another alv or maybe a pop_up screen .

Have nice day.

VijayaKrishnaG
Active Contributor
0 Kudos

Hi Faheem,

As a document can have multiple items, you need to select single record using 'SELECT SINGLE' and to get specified record you should mention other where conditions along with VBELN.

Thanks & Regards,

- Vijay

arivazhagan_sivasamy
Active Contributor
0 Kudos

Hi Faheem khan,

You should not use like

SELECT VBELN VKGRP VKBUR WERKS MATKL MATNR FKIMG VRKME BRGEW
NTGEW GEWEI NETWR POSNR
FROM VBRP INTO TABLE IT_VBRP
FOR ALL ENTRIES IN IT_MAIN WHERE
VBELN = IT_MAIN-VBELN .


Instead of


SELECT VBELN VKGRP VKBUR WERKS MATKL MATNR FKIMG VRKME BRGEW
NTGEW GEWEI NETWR POSNR
FROM VBRP INTO TABLE IT_VBRP
WHERE
VBELN = wa_MAIN-VBELN .


Arivazhagan S

0 Kudos

TAHNKS TO RESPECTED SIR FINALLY I CAN SOLVE MY PROBLEM ..

                                                                        THANK YOU SO MUCH ....

Former Member
0 Kudos

THANKS ALL EXPERTES  FOR THEIR ADVICE &  I  REALLY TAHNKFULL TO Arivazhagan Sivasamy

SIR THE PERSON GIVE ME WRITE QUERY TO SLOVE THE PROBLEM AGAIN I AM VERY THANKFULL TO ALL ...

REGARDS

FAHEEM KHAN ....