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: 

Its Urgent regarding reuse_alv_popup_to_select !!!!!!!!

Former Member
0 Kudos

To generate a secondary window i hav used reuse_alv_popup_to_select ...and also iam getting secondary window ...but in that window iam not able to see the data ...... It is displaying header fields properly but not the data .......WHY???

Is there any thing i need to export in reuse_alv_popup_to_select ?????

1 ACCEPTED SOLUTION

Former Member

Hi,

See this simple ALV code to get some help for <b>reuse_alv_popup_to_select</b>


*&---------------------------------------------------------------------*
*& Report  ZGS_ALV_SAMPLE                                                *
*&                                                                     *
*&---------------------------------------------------------------------*
*& Program for displaying data using function modules :                *
*& REUSE_ALV_LIST_DISPLAY                                              *
*& REUSE_ALV_POPUP_TO_SELECT                                           *
*& REUSE_ALV_GRID_DISPLAY                                              *
*&                                                                     *
*&---------------------------------------------------------------------*

REPORT  ZALV_SAMPLE                            .

TABLES VBAK.

DATA it_vbak LIKE VBAK OCCURS 0 WITH HEADER LINE.

SELECTION-SCREEN uline.


PARAMETERS: ALV1 RADIOBUTTON GROUP ALV,       "REUSE_ALV_LIST_DISPLAY
            ALV2 RADIOBUTTON GROUP ALV,       "REUSE_ALV_POPUP_TO_SELECT
            ALV3 RADIOBUTTON GROUP ALV,       "REUSE_ALV_GRID_DISPLAY
            ALV4 RADIOBUTTON GROUP ALV.       " NORMAL DISPLAY
SELECTION-SCREEN uline.


SELECT * FROM  VBAK
         INTO CORRESPONDING FIELDS OF TABLE it_vbak
         UP TO 10 ROWS.

IF ALV1 = 'X'.
   PERFORM ALV_FUNC1.

ELSEIF ALV2 = 'X'.
   PERFORM ALV_FUNC2.

ELSEIF ALV3 = 'X'.
  PERFORM ALV_FUNC3.

ELSEIF ALV4 = 'X'.
  PERFORM NORM.

ENDIF.



*&---------------------------------------------------------------------*
*&      Form  ALV_FUNC1
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM ALV_FUNC1 .

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
  EXPORTING
    I_STRUCTURE_NAME               = 'VBAK'
  TABLES
    T_OUTTAB                       = it_vbak
   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.                    " ALV_FUNC1



*&---------------------------------------------------------------------*
*&      Form  ALV_FUNC2
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM ALV_FUNC2 .

CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
  EXPORTING
    I_TITLE                       = 'SALES ORDER INFO'
    I_ZEBRA                       = 'X'
    I_TABNAME                     = 1
    I_STRUCTURE_NAME              = 'vbak'
  TABLES
    T_OUTTAB                      = it_vbak
   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.                    " ALV_FUNC2



*&---------------------------------------------------------------------*
*&      Form  ALV_FUNC3
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM ALV_FUNC3 .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  EXPORTING
    I_STRUCTURE_NAME                  = 'vbak'
    I_GRID_TITLE                      = 'SALES ORDER INFO'
  TABLES
    T_OUTTAB                          = it_vbak
   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.                    " ALV_FUNC3




*&---------------------------------------------------------------------*
*&      Form  NORM
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM NORM .
format intensified.
skip 1.
WRITE: /'SALES DOC.',
        '    Created on ',
        '    Time',
        '      Created by',
        '       Valid from ',
        '     Sold-to party'.
format intensified off.
skip 2.

LOOP AT it_vbak.

write: / it_vbak-vbeln,'   ',
         it_vbak-erdat,'   ',
         it_vbak-erzet,'   ',
         it_vbak-ERNAM,'   ',
         it_vbak-ANGDT,'       ',
         it_vbak-KUNNR.

endloop.



ENDFORM.                    " NORM

Reward points if useful,

Aleem.

5 REPLIES 5

Former Member
0 Kudos

Can you please post your code.

Then i can tell you where is the prob.

Regards

Azad.

Former Member
0 Kudos

Hi Vijay,

Check the sample code...

REPORT z_reuse_alv_popup_to_select.

----


  • Example with FM REUSE_ALV_POPUP_TO_SELECT *

----


SELECTION-SCREEN :

SKIP, BEGIN OF LINE,COMMENT 5(27) v_1 FOR FIELD p_max. "#EC NEEDED

PARAMETERS p_max(2) TYPE n DEFAULT '20' OBLIGATORY.

SELECTION-SCREEN END OF LINE.

----


TYPES:

BEGIN OF ty_user_addr,

bname TYPE user_addr-bname, " User name

name_first TYPE user_addr-name_first, " First name

name_last TYPE user_addr-name_last, " Last name

checkbox,

END OF ty_user_addr.

----


DATA:

  • Data displayed

gt_user TYPE TABLE OF ty_user_addr.

----


INITIALIZATION.

v_1 = 'Maximum of records to read'.

----


START-OF-SELECTION.

PERFORM f_read_data.

PERFORM f_display_data.

----


  • Form f_read_data

----


FORM f_read_data.

  • Read Users address data

SELECT bname name_first name_last

UP TO p_max ROWS

INTO CORRESPONDING FIELDS OF TABLE gt_user

FROM user_addr.

ENDFORM. " F_READ_DATA

----


  • Form f_display_data

----


FORM f_display_data.

  • Macro definition

DEFINE m_fieldcat.

add 1 to ls_fieldcat-col_pos.

ls_fieldcat-fieldname = &1.

ls_fieldcat-ref_tabname = &2.

append ls_fieldcat to lt_fieldcat.

END-OF-DEFINITION.

TYPE-POOLS: slis. " ALV Global types

DATA:

l_exit,

ls_private TYPE slis_data_caller_exit,

ls_user TYPE ty_user_addr,

ls_fieldcat TYPE slis_fieldcat_alv,

lt_fieldcat TYPE slis_t_fieldcat_alv.

  • Build the field catalog

m_fieldcat 'BNAME' 'USER_ADDR'.

m_fieldcat 'NAME_FIRST' 'USER_ADDR'.

m_fieldcat 'NAME_LAST' 'USER_ADDR'.

  • Optimize column width

ls_private-columnopt = 'X'.

  • Display data in a POPUP

CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'

EXPORTING

i_selection = 'X'

i_zebra = 'X'

it_fieldcat = lt_fieldcat

i_tabname = 'GT_USER'

i_checkbox_fieldname = 'CHECKBOX'

is_private = ls_private

IMPORTING

e_exit = l_exit

TABLES

t_outtab = gt_user.

CHECK l_exit = space.

  • What has been selected ?

LOOP AT gt_user INTO ls_user WHERE checkbox = 'X'.

MESSAGE i368(00) WITH ls_user-bname 'selected'.

ENDLOOP.

ENDFORM. " F_DISPLAY_DATA

                      • END OF PROGRAM Z_REUSE_ALV_POPUP_TO_SELECT ****************

Reward all helpful answers..

Regards,

Omkar.

Former Member
0 Kudos

hi,

Check my sample code .I have used the same FM and it is working fine.

*-----tables declaration

TABLES:VBAK.

TYPE-POOLS:SLIS.

*-----data declaration

TYPES:BEGIN OF X_VBAK,

VBELN type VBAK-VBELN, "SO Number

ERDAT type VBAK-ERDAT, "Creation date

VBTYP type VBAK-VBTYP, "SD Document Category

AUART type VBAK-AUART, "SD Type

ERNAM type VBAK-ERNAM, "Name

NETWR type VBAK-NETWR, "Net value

END OF X_VBAK,

BEGIN OF X_VBAP,

VBELN type VBAP-VBELN,

POSNR type VBAP-POSNR, "Sales Document Item

MATNR type VBAP-MATNR, "Material Number

ZMENG type VBAP-ZMENG, "Target quantity

END OF X_VBAP.

DATA:IT_VBAK TYPE X_VBAK OCCURS 0 WITH HEADER LINE,

IT_VBAK1 TYPE X_VBAK OCCURS 0 WITH HEADER LINE,

IT_VBAP TYPE X_VBAP OCCURS 0,

IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

IT_FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV,

WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,

WA_FIELDCAT1 TYPE SLIS_FIELDCAT_ALV.

*-----selection-screen

SELECTION-SCREEN BEGIN OF BLOCK B1.

SELECT-OPTIONS:S_VBELN FOR VBAK-VBELN,

S_DATE FOR VBAK-ERDAT.

PARAMETERS:P_COUNT TYPE I.

SELECTION-SCREEN END OF BLOCK B1.

*-----selection-screen validation

AT SELECTION-SCREEN.

*-----retrieving the header information

SELECT VBELN ERDAT VBTYP AUART ERNAM NETWR

FROM VBAK

INTO TABLE IT_VBAK

WHERE VBELN IN S_VBELN

AND ERDAT IN S_DATE.

*-----to display an error if there are no records

IF SY-SUBRC NE 0.

MESSAGE E000.

ENDIF.

*-----Data retrieval

START-OF-SELECTION.

IF P_COUNT = 0.

P_COUNT = SY-DBCNT.

ENDIF.

*-----to restrict the number of records

DO P_COUNT TIMES.

READ TABLE IT_VBAK INTO IT_VBAK1 INDEX SY-INDEX.

APPEND IT_VBAK1.

ENDDO.

*-----Fieldcatalog for the SO header

REFRESH IT_FIELDCAT[].

WA_FIELDCAT-COL_POS = '1'.

WA_FIELDCAT-FIELDNAME = 'VBELN'.

WA_FIELDCAT-TABNAME = 'IT_VBAK1'.

WA_FIELDCAT-HOTSPOT = 'X'.

WA_FIELDCAT-REF_FIELDNAME = 'VBELN'.

WA_FIELDCAT-REF_TABNAME = 'VBAK'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-COL_POS = '2'.

WA_FIELDCAT-FIELDNAME = 'ERDAT'.

WA_FIELDCAT-TABNAME = 'IT_VBAK1'.

WA_FIELDCAT-REF_FIELDNAME = 'ERDAT'.

WA_FIELDCAT-REF_TABNAME = 'VBAK'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-COL_POS = '3'.

WA_FIELDCAT-FIELDNAME = 'VBTYP'.

WA_FIELDCAT-TABNAME = 'IT_VBAK1'.

WA_FIELDCAT-REF_FIELDNAME = 'VBTYP'.

WA_FIELDCAT-REF_TABNAME = 'VBAK'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-COL_POS = '4'.

WA_FIELDCAT-FIELDNAME = 'AUART'.

WA_FIELDCAT-TABNAME = 'IT_VBAK1'.

WA_FIELDCAT-REF_FIELDNAME = 'AUART'.

WA_FIELDCAT-REF_TABNAME = 'VBAK'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-COL_POS = '5'.

WA_FIELDCAT-FIELDNAME = 'ERNAM'.

WA_FIELDCAT-TABNAME = 'IT_VBAK1'.

WA_FIELDCAT-REF_FIELDNAME = 'ERNAM'.

WA_FIELDCAT-REF_TABNAME = 'VBAK'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-COL_POS = '6'.

WA_FIELDCAT-FIELDNAME = 'NETWR'.

WA_FIELDCAT-TABNAME = 'IT_VBAK1'.

WA_FIELDCAT-REF_FIELDNAME = 'NETWR'.

WA_FIELDCAT-REF_TABNAME = 'VBAK'.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

*-----to display the sales order header details

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

IT_FIELDCAT = IT_FIELDCAT

TABLES

T_OUTTAB = IT_VBAK1.

*&----


*& Form USER_COMMAND

*&----


  • text

*----


  • -->UCOMM text

  • -->FIELD1 text

*----


FORM USER_COMMAND USING UCOMM LIKE SY-UCOMM FIELD1 TYPE "#EC CALLED

SLIS_SELFIELD. "#EC *

READ TABLE IT_VBAK1 INDEX FIELD1-TABINDEX.

*-----retrieving data from the item table

SELECT VBELN POSNR MATNR ZMENG

FROM VBAP

INTO TABLE IT_VBAP

WHERE VBELN = IT_VBAK1-VBELN.

*-----to display an error if there are no records

IF SY-SUBRC NE 0.

MESSAGE E003.

ENDIF.

*-----fieldcatalog for SO item details

REFRESH IT_FIELDCAT1[].

WA_FIELDCAT1-COL_POS = '1'.

WA_FIELDCAT1-FIELDNAME = 'VBELN'.

WA_FIELDCAT1-TABNAME = 'IT_VBAP'.

WA_FIELDCAT1-REF_FIELDNAME = 'VBELN'.

WA_FIELDCAT1-REF_TABNAME = 'VBAP'.

APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.

CLEAR WA_FIELDCAT1.

WA_FIELDCAT1-COL_POS = '2'.

WA_FIELDCAT1-FIELDNAME = 'POSNR'.

WA_FIELDCAT1-TABNAME = 'IT_VBAP'.

WA_FIELDCAT1-REF_FIELDNAME = 'POSNR'.

WA_FIELDCAT1-REF_TABNAME = 'VBAP'.

APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.

CLEAR WA_FIELDCAT1.

WA_FIELDCAT1-COL_POS = '3'.

WA_FIELDCAT1-FIELDNAME = 'MATNR'.

WA_FIELDCAT1-TABNAME = 'IT_VBAP'.

WA_FIELDCAT1-REF_FIELDNAME = 'MATNR'.

WA_FIELDCAT1-REF_TABNAME = 'VBAP'.

APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.

CLEAR WA_FIELDCAT1.

WA_FIELDCAT1-COL_POS = '4'.

WA_FIELDCAT1-FIELDNAME = 'ZMENG'.

WA_FIELDCAT1-TABNAME = 'IT_VBAP'.

WA_FIELDCAT1-REF_FIELDNAME = 'ZMENG'.

WA_FIELDCAT1-REF_TABNAME = 'VBAP'.

APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.

CLEAR WA_FIELDCAT1.

*-----to display the item details in a popup

CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'

EXPORTING

I_SELECTION = SPACE

I_TABNAME = 'IT_VBAP'

IT_FIELDCAT = IT_FIELDCAT1

TABLES

T_OUTTAB = IT_VBAP.

ENDFORM. "USER_COMMAND

Former Member

Hi,

See this simple ALV code to get some help for <b>reuse_alv_popup_to_select</b>


*&---------------------------------------------------------------------*
*& Report  ZGS_ALV_SAMPLE                                                *
*&                                                                     *
*&---------------------------------------------------------------------*
*& Program for displaying data using function modules :                *
*& REUSE_ALV_LIST_DISPLAY                                              *
*& REUSE_ALV_POPUP_TO_SELECT                                           *
*& REUSE_ALV_GRID_DISPLAY                                              *
*&                                                                     *
*&---------------------------------------------------------------------*

REPORT  ZALV_SAMPLE                            .

TABLES VBAK.

DATA it_vbak LIKE VBAK OCCURS 0 WITH HEADER LINE.

SELECTION-SCREEN uline.


PARAMETERS: ALV1 RADIOBUTTON GROUP ALV,       "REUSE_ALV_LIST_DISPLAY
            ALV2 RADIOBUTTON GROUP ALV,       "REUSE_ALV_POPUP_TO_SELECT
            ALV3 RADIOBUTTON GROUP ALV,       "REUSE_ALV_GRID_DISPLAY
            ALV4 RADIOBUTTON GROUP ALV.       " NORMAL DISPLAY
SELECTION-SCREEN uline.


SELECT * FROM  VBAK
         INTO CORRESPONDING FIELDS OF TABLE it_vbak
         UP TO 10 ROWS.

IF ALV1 = 'X'.
   PERFORM ALV_FUNC1.

ELSEIF ALV2 = 'X'.
   PERFORM ALV_FUNC2.

ELSEIF ALV3 = 'X'.
  PERFORM ALV_FUNC3.

ELSEIF ALV4 = 'X'.
  PERFORM NORM.

ENDIF.



*&---------------------------------------------------------------------*
*&      Form  ALV_FUNC1
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM ALV_FUNC1 .

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
  EXPORTING
    I_STRUCTURE_NAME               = 'VBAK'
  TABLES
    T_OUTTAB                       = it_vbak
   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.                    " ALV_FUNC1



*&---------------------------------------------------------------------*
*&      Form  ALV_FUNC2
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM ALV_FUNC2 .

CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
  EXPORTING
    I_TITLE                       = 'SALES ORDER INFO'
    I_ZEBRA                       = 'X'
    I_TABNAME                     = 1
    I_STRUCTURE_NAME              = 'vbak'
  TABLES
    T_OUTTAB                      = it_vbak
   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.                    " ALV_FUNC2



*&---------------------------------------------------------------------*
*&      Form  ALV_FUNC3
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM ALV_FUNC3 .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
  EXPORTING
    I_STRUCTURE_NAME                  = 'vbak'
    I_GRID_TITLE                      = 'SALES ORDER INFO'
  TABLES
    T_OUTTAB                          = it_vbak
   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.                    " ALV_FUNC3




*&---------------------------------------------------------------------*
*&      Form  NORM
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM NORM .
format intensified.
skip 1.
WRITE: /'SALES DOC.',
        '    Created on ',
        '    Time',
        '      Created by',
        '       Valid from ',
        '     Sold-to party'.
format intensified off.
skip 2.

LOOP AT it_vbak.

write: / it_vbak-vbeln,'   ',
         it_vbak-erdat,'   ',
         it_vbak-erzet,'   ',
         it_vbak-ERNAM,'   ',
         it_vbak-ANGDT,'       ',
         it_vbak-KUNNR.

endloop.



ENDFORM.                    " NORM

Reward points if useful,

Aleem.

Former Member
0 Kudos

thanks to all .....