HI EXPERTS,
heres is my code, i have created one zvbak_structure1(header data) and and item data ,assigned that structures to field catalog table . but its gives an error as not defined. how to over come this problem. pls hepl me out .
rewadar points will be there
*&----
*
*& Report Z50818_ALV_HIERARCHIAL_FINAL
*&
*&----
*
*&
*&
*&----
*
REPORT Z50818_ALV_HIERARCHIAL_FINAL MESSAGE-ID ZFAR.
ALV
TYPE-POOLS: SLIS.
*DB tables
TABLES: VBAP,VBAK.
DATA:GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
DATA: GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
GS_KEYINFO TYPE SLIS_KEYINFO_ALV,
GT_EVENTS TYPE SLIS_T_EVENT.
DATA: BEGIN OF GT_VBAK OCCURS 0.
INCLUDE STRUCTURE ZVBAK_STRUCTURE1.
DATA: BOX,
*WERT(4) TYPE P,
LIGHTS,
END OF GT_VBAK.
DATA: BEGIN OF GT_VBAP OCCURS 0.
INCLUDE STRUCTURE ZVBAP_STRUCTURE.
DATA: BOX,
LIGHTS,
END OF GT_VBAP.
*LIST HAEADER
DATA: GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
SELECT-OPTIONS S_VBELN FOR ZVBAK_STRUCTURE1-VBELN.
SELECTION-SCREEN SKIP 1.
Parameters
PARAMETERS: P_MAXROW TYPE I DEFAULT 50.
SELECTION-SCREEN SKIP 1.
Variante
SELECTION-SCREEN BEGIN OF BLOCK 0 WITH FRAME TITLE TEXT-001.
PARAMETERS: P_VARI LIKE DISVARIANT-VARIANT.
SELECTION-SCREEN END OF BLOCK 0.
Layout
SELECTION-SCREEN BEGIN OF BLOCK A WITH FRAME TITLE TEXT-002.
PARAMETERS:
P_ZEBRA AS CHECKBOX DEFAULT ' ',
P_NOCOLH AS CHECKBOX DEFAULT ' ',
P_COLOPT AS CHECKBOX DEFAULT ' ',
P_KEYHOT AS CHECKBOX DEFAULT ' ',
P_NOINPT AS CHECKBOX DEFAULT ' '.
SELECTION-SCREEN END OF BLOCK A.
*LIGHTS OF RADIO BUTTONS
SELECTION-SCREEN BEGIN OF BLOCK B WITH FRAME TITLE TEXT-003.
PARAMETERS:
P_LIGHTN RADIOBUTTON GROUP LIG ,
P_LIGHTH RADIOBUTTON GROUP LIG ,
P_LIGHTI RADIOBUTTON GROUP LIG ,
P_LIGHTC AS CHECKBOX DEFAULT ' '.
SELECTION-SCREEN END OF BLOCK B.
*TOTALS
SELECTION-SCREEN BEGIN OF BLOCK C WITH FRAME TITLE TEXT-004.
PARAMETERS:
P_TOTONL AS CHECKBOX DEFAULT ' ',
P_TOTEXT(60),
P_STTEXT(60).
SELECTION-SCREEN END OF BLOCK C.
*CHECK BOXES
SELECTION-SCREEN BEGIN OF BLOCK D WITH FRAME TITLE TEXT-005.
PARAMETERS:
CHCKBOXN RADIOBUTTON GROUP BOX ,
CHCKBOXH RADIOBUTTON GROUP BOX ,
CHCKBOXI RADIOBUTTON GROUP BOX ,
P_GROUPB AS CHECKBOX DEFAULT ' ',
P_DETPOP AS CHECKBOX DEFAULT 'X',
P_GROUPS AS CHECKBOX DEFAULT ' '.
SELECTION-SCREEN END OF BLOCK D.
DATA: G_BOXNAM TYPE SLIS_FIELDNAME VALUE 'BOX',
P_LIGNAM TYPE SLIS_FIELDNAME VALUE 'LIGHTS',
G_SAVE(1) TYPE C,
G_TABNAME_HEADER TYPE SLIS_TABNAME,
G_TABNAME_ITEM TYPE SLIS_TABNAME,
G_DEFAULT(1) TYPE C,
G_EXIT(1) TYPE C,
GX_VARIANT LIKE DISVARIANT,
G_VARIANT LIKE DISVARIANT.
DATA: LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
INITIALIZATION.
G_TABNAME_HEADER = 'GT_SCARR'.
G_TABNAME_ITEM = 'GT_SPFLI'.
define keyinfo
CLEAR GS_KEYINFO.
GS_KEYINFO-HEADER01 = 'VBELN'.
GS_KEYINFO-ITEM01 = 'VBELN'.
GS_KEYINFO-HEADER02 = SPACE.
GS_KEYINFO-ITEM02 = 'CONNID'.
PERFORM FIELDCAT_INIT USING GT_FIELDCAT[].
PERFORM EVENTTAB_BUILD USING GT_EVENTS[].
PERFORM COMMENT_BUILD USING GT_LIST_TOP_OF_PAGE[].
G_SAVE = 'A'.
PERFORM VARIANT_INIT.
Get default variant
GX_VARIANT = G_VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
I_SAVE = G_SAVE
CHANGING
CS_VARIANT = GX_VARIANT
EXCEPTIONS
NOT_FOUND = 2.
IF SY-SUBRC = 0.
P_VARI = GX_VARIANT-VARIANT.
ENDIF.
Process on value request
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI.
PERFORM F4_FOR_VARIANT.
PAI
AT SELECTION-SCREEN.
PERFORM PAI_OF_SELECTION_SCREEN.
START-OF-SELECTION.
PERFORM SELECTION.
END-OF-SELECTION.
PERFORM LAYOUT_BUILD USING GS_LAYOUT. "wg. Parameters
Call ABAP/4 List Viewer
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
IS_LAYOUT = GS_LAYOUT
IT_FIELDCAT = GT_FIELDCAT[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS = GT_SP_GROUP[]
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
i_default = g_default
I_SAVE = G_SAVE
IS_VARIANT = G_VARIANT
IT_EVENTS = GT_EVENTS[]
IT_EVENT_EXIT =
I_TABNAME_HEADER = G_TABNAME_HEADER
I_TABNAME_ITEM = G_TABNAME_ITEM
IS_KEYINFO = GS_KEYINFO
IS_PRINT =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
TABLES
T_OUTTAB_HEADER = GT_VBAK
T_OUTTAB_ITEM = GT_VBAP.
*&----
*
*& Form FIELDCAT_INIT
*&----
*
FORM FIELDCAT_INIT USING P_GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
*
CLEAR LS_FIELDCAT.
LS_FIELDCAT-COL_POS = 1.
LS_FIELDCAT-FIELDNAME = 'SALES DOCUMENT'.
LS_FIELDCAT-TABNAME = G_TABNAME_ITEM.
LS_FIELDCAT-OUTPUTLEN = 10.
LS_FIELDCAT-NO_OUT = 'X'.
LS_FIELDCAT-NO_SUM = 'X'.
LS_FIELDCAT-SP_GROUP = 'A'.
APPEND LS_FIELDCAT TO GT_FIELDCAT.
*
CLEAR LS_FIELDCAT.
LS_FIELDCAT-COL_POS = 2.
LS_FIELDCAT-FIELDNAME = 'SALES DOCUMENT ITEM'.
LS_FIELDCAT-TABNAME = G_TABNAME_ITEM.
LS_FIELDCAT-OUTPUTLEN = 6.
LS_FIELDCAT-NO_OUT = 'X'.
LS_FIELDCAT-NO_SUM = 'X'.
LS_FIELDCAT-SP_GROUP = 'A'.
APPEND LS_FIELDCAT TO GT_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-COL_POS = 3.
LS_FIELDCAT-FIELDNAME = 'MATERIAL NUMBER'.
LS_FIELDCAT-TABNAME = G_TABNAME_ITEM.
LS_FIELDCAT-OUTPUTLEN = 18
LS_FIELDCAT-NO_OUT = 'X'.
APPEND LS_FIELDCAT TO GT_FIELDCAT.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = SY-REPID
I_INTERNAL_TABNAME = G_TABNAME_HEADER
I_STRUCTURE_NAME = 'ZVBAK_STRUCTURE1'
I_CLIENT_NEVER_DISPLAY = 'X'
CHANGING
CT_FIELDCAT = GT_FIELDCAT.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = SY-REPID
I_INTERNAL_TABNAME = G_TABNAME_ITEM
I_STRUCTURE_NAME = 'ZVBAP_STRUCTURE'
I_CLIENT_NEVER_DISPLAY = 'X'
CHANGING
CT_FIELDCAT = GT_FIELDCAT.
ENDFORM. " FIELDCAT_INIT
*&----
*
*& Form EVENTTAB_BUILD
*&----
*
FORM EVENTTAB_BUILD USING P_GT_EVENTS TYPE SLIS_T_EVENT.
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
*
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = P_GT_EVENTS.
READ TABLE GT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO P_GT_EVENTS.
ENDIF.
.
ENDFORM. " EVENTTAB_BUILD
*&----
*
*& Form COMMENT_BUILD
*&----
*
FORM COMMENT_BUILD USING P_GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
DATA: LS_LINE TYPE SLIS_LISTHEADER.
*
Listenüberschrift: Typ H
CLEAR LS_LINE.
LS_LINE-TYP = 'H'.
LS_LINE-KEY: not used for this type
LS_LINE-INFO = TEXT-006.
APPEND LS_LINE TO GT_LIST_TOP_OF_PAGE.
Kopfinfo: Typ S
CLEAR LS_LINE.
LS_LINE-TYP = 'S'.
LS_LINE-KEY = TEXT-007.
LS_LINE-INFO = TEXT-008.
APPEND LS_LINE TO GT_LIST_TOP_OF_PAGE.
LS_LINE-KEY = TEXT-051.
APPEND LS_LINE TO GT_LIST_TOP_OF_PAGE.
Aktionsinfo: Typ A
CLEAR LS_LINE.
LS_LINE-TYP = 'A'.
LS_LINE-KEY: not used for this type
LS_LINE-INFO = TEXT-009.
APPEND LS_LINE TO GT_LIST_TOP_OF_PAGE.
.
ENDFORM. " COMMENT_BUILD
*&----
*
*& Form TOP_OF_PAGE
*&----
*
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
ENDFORM.
*&----
*
*& Form F4_FOR_VARIANT
*&----
*
FORM F4_FOR_VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
IS_VARIANT = G_VARIANT
I_SAVE = G_SAVE
I_TABNAME_HEADER = G_TABNAME_HEADER
I_TABNAME_ITEM = G_TABNAME_ITEM
it_default_fieldcat =
IMPORTING
E_EXIT = G_EXIT
ES_VARIANT = GX_VARIANT
EXCEPTIONS
NOT_FOUND = 2.
IF SY-SUBRC = 2.
MESSAGE ID SY-MSGID TYPE 'S' NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
IF G_EXIT = SPACE.
P_VARI = GX_VARIANT-VARIANT.
ENDIF.
ENDIF.
ENDFORM. " F4_FOR_VARIANT
*&----
*
*& Form PAI_OF_SELECTION_SCREEN
*&----
*
FORM PAI_OF_SELECTION_SCREEN.
IF NOT P_VARI IS INITIAL.
MOVE G_VARIANT TO GX_VARIANT.
MOVE P_VARI TO GX_VARIANT-VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
I_SAVE = G_SAVE
CHANGING
CS_VARIANT = GX_VARIANT.
G_VARIANT = GX_VARIANT.
ELSE.
PERFORM VARIANT_INIT.
ENDIF.
ENDFORM. " PAI_OF_SELECTION_SCREEN
*&----
*
*& Form VARIANT_INIT
*&----
*
FORM VARIANT_INIT.
CLEAR G_VARIANT.
G_VARIANT-REPORT = SY-REPID.
ENDFORM. " VARIANT_INIT
*&----
*
*& Form SELECTION
*&----
*
FORM SELECTION.
SELECT * FROM VBAK INTO CORRESPONDING FIELDS OF TABLE ZVBAK_STRUCTURE1
WHERE VBELN IN S_VBELN.
SELECT * FROM VBAP INTO CORRESPONDING FIELDS OF TABLE ZVBAP_STRUCTURE
WHERE VBELN IN S_VBELN.
LOOP AT ZVBAK_STRUCTURE1
READ TABLE ZVBAP_STRUCTURE WITH
KEY CARRID = ZVBAK_STRUCTURE1-VBELN.
IF SY-SUBRC NE 0.
DELETE ZVBAK_STRUCTURE1.
ENDIF.
ENDLOOP.
ENDFORM. " SELECTION
*&----
*
*& Form LAYOUT_BUILD
*&----
*
FORM LAYOUT_BUILD USING GS_LAYOUT TYPE SLIS_LAYOUT_ALV.
IF P_LIGHTI = 'X'.
GS_LAYOUT-LIGHTS_FIELDNAME = P_LIGNAM.
GS_LAYOUT-LIGHTS_TABNAME = G_TABNAME_ITEM.
GS_LAYOUT-LIGHTS_CONDENSE = P_LIGHTC.
ENDIF.
IF P_LIGHTH = 'X'.
GS_LAYOUT-LIGHTS_FIELDNAME = P_LIGNAM.
GS_LAYOUT-LIGHTS_TABNAME = G_TABNAME_HEADER.
GS_LAYOUT-LIGHTS_CONDENSE = P_LIGHTC.
*IF P_LIGHTN = 'X'.
*GS_LAYOUT-LIGHTS_FIELDNAME.
*GS_LAYOUT-LIGHTS_TABNAME.
*GS_LAYOUT-LIGHTS_CONDENSE.
*ENDIF.
IF CHCKBOXN = 'X'.
GS_LAYOUT-BOX_FIELDNAME = SPACE.
GS_LAYOUT-BOX_TABNAME = SPACE.
ENDIF.
IF CHCKBOXH = 'X'.
GS_LAYOUT-BOX_FIELDNAME = G_BOXNAM.
GS_LAYOUT-BOX_TABNAME = G_TABNAME_HEADER.
ENDIF.
IF CHCKBOXI = 'X'.
GS_LAYOUT-BOX_FIELDNAME = G_BOXNAM.
GS_LAYOUT-BOX_TABNAME = G_TABNAME_ITEM.
ENDIF.
GS_LAYOUT-HEADER_TEXT = TEXT-011.
GS_LAYOUT-ITEM_TEXT = TEXT-012.
GS_LAYOUT-DEFAULT_ITEM = 'X'.
P_GS_LAYOUT-F2CODE = P_F2CODE.
GS_LAYOUT-ZEBRA = P_ZEBRA.
GS_LAYOUT-COLWIDTH_OPTIMIZE = P_COLOPT.
GS_LAYOUT-NO_INPUT = P_NOINPT.
GS_LAYOUT-NO_COLHEAD = P_NOCOLH.
GS_LAYOUT-TOTALS_TEXT = P_TOTEXT.
GS_LAYOUT-SUBTOTALS_TEXT = P_STTEXT.
GS_LAYOUT-TOTALS_ONLY = P_TOTONL.
GS_LAYOUT-KEY_HOTSPOT = P_KEYHOT.
GS_LAYOUT-DETAIL_POPUP = P_DETPOP.
GS_LAYOUT-GROUP_CHANGE_EDIT = P_GROUPS.
E05_LS_LAYOUT-GROUP_BUTTONS = P_GROUPB.
GS_LAYOUT-GROUP_BUTTONS = SPACE.
ENDIF.
ENDFORM. " LAYOUT_BUILD