07-19-2007 7:15 AM
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 ?????
07-19-2007 7:21 AM
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.
07-19-2007 7:16 AM
Can you please post your code.
Then i can tell you where is the prob.
Regards
Azad.
07-19-2007 7:18 AM
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.
07-19-2007 7:19 AM
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
07-19-2007 7:21 AM
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.
07-19-2007 7:23 AM