2007 Apr 15 9:56 AM
I am trying to create a ALV Hierarchial/Sequential report. I developed the code below and getting a error " T_VBAK" is not an internal table....Please let me know the errors and how to correct them.
REPORT Z_ALV_HIERSEQ_REPORT .
TYPE-POOLS: SLIS.
DATA: T_FCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: W_FCAT TYPE SLIS_FIELDCAT_ALV.
DATA: BEGIN OF T_VBAK OCCURS 0,
VBELN TYPE VBAK-VBELN,
ERDAT TYPE VBAK-ERDAT,
NETWR TYPE VBAK-NETWR,
END OF T_VBAK.
DATA: BEGIN OF T_VBAP OCCURS 0,
VBELN TYPE VBAP-VBELN,
POSNR TYPE VBAP-POSNR,
ARKTX TYPE VBAP-ARKTX,
WERKS TYPE VBAP-WERKS,
END OF T_VBAP.
DATA: W_KEYINFO TYPE SLIS_KEYINFO_ALV.
&----
*& FIELD CATALOG *
*& *
&----
W_FCAT-COL_POS = 1.
W_FCAT-FIELDNAME = 'VBELN'.
W_FCAT-TABNAME = 'VBAK'.
W_FCAT-SELTEXT_M = 'ORDER NO'.
APPEND W_FCAT TO T_FCAT.
W_FCAT-COL_POS = 2.
W_FCAT-FIELDNAME = 'ERDAT'.
W_FCAT-TABNAME = 'VBAK'.
W_FCAT-SELTEXT_M = 'ORDER DATE'.
APPEND W_FCAT TO T_FCAT.
W_FCAT-COL_POS = 3.
W_FCAT-FIELDNAME = 'NETWR'.
W_FCAT-TABNAME = 'VBAK'.
W_FCAT-SELTEXT_M = 'ORDER VALUE'.
APPEND W_FCAT TO T_FCAT.
W_FCAT-COL_POS = 1.
W_FCAT-FIELDNAME = 'POSNR'.
W_FCAT-TABNAME = 'VBAP'.
W_FCAT-SELTEXT_M = 'ORDER ITEM'.
APPEND W_FCAT TO T_FCAT.
W_FCAT-COL_POS = 2.
W_FCAT-FIELDNAME = 'ARKTX'.
W_FCAT-TABNAME = 'VBAP'.
W_FCAT-SELTEXT_M = 'ORDER DESCRIPTION'.
APPEND W_FCAT TO T_FCAT.
W_FCAT-COL_POS = 3.
W_FCAT-FIELDNAME = 'WERKS'.
W_FCAT-TABNAME = 'VBAP'.
W_FCAT-SELTEXT_M = 'PLANT'.
APPEND W_FCAT TO T_FCAT.
W_KEYINFO-HEADER01 = 'VBELN'.
W_KEYINFO-ITEM01 = 'VBELN'.
SELECT VBELN ERDAT NETWR FROM VBAK INTO TABLE T_VBAK.
SELECT VBELN POSNR ARKTX WERKS FROM VBAP INTO TABLE T_VBAP FOR ALL
ENTRIES IN T_VBAK WHERE VBELN = T_VBAK-VBELN.
&----
*& FUNCTION MODULE CALL *
*& *
&----
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_CALLBACK_PROGRAM = SY-CPROG
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
IS_LAYOUT =
IT_FIELDCAT = T_FCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
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 = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
I_TABNAME_HEADER = T_VBAK
I_TABNAME_ITEM = T_VBAP
I_STRUCTURE_NAME_HEADER =
I_STRUCTURE_NAME_ITEM =
IS_KEYINFO = W_KEYINFO
IS_PRINT =
IS_REPREP_ID =
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB_HEADER = T_VBAK.
T_OUTTAB_ITEM = T_VBAP.
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.
I am trying to create a ALV Hierarchial/Sequential report. I developed the code below and getting a error " T_VBAK" is not an internal table....Please let me know the errors and how to correct them.
REPORT Z_ALV_HIERSEQ_REPORT .
TYPE-POOLS: SLIS.
DATA: T_FCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: W_FCAT TYPE SLIS_FIELDCAT_ALV.
DATA: BEGIN OF T_VBAK OCCURS 0,
VBELN TYPE VBAK-VBELN,
ERDAT TYPE VBAK-ERDAT,
NETWR TYPE VBAK-NETWR,
END OF T_VBAK.
DATA: BEGIN OF T_VBAP OCCURS 0,
VBELN TYPE VBAP-VBELN,
POSNR TYPE VBAP-POSNR,
ARKTX TYPE VBAP-ARKTX,
WERKS TYPE VBAP-WERKS,
END OF T_VBAP.
DATA: W_KEYINFO TYPE SLIS_KEYINFO_ALV.
&----
*& FIELD CATALOG *
*& *
&----
W_FCAT-COL_POS = 1.
W_FCAT-FIELDNAME = 'VBELN'.
W_FCAT-TABNAME = 'VBAK'.
W_FCAT-SELTEXT_M = 'ORDER NO'.
APPEND W_FCAT TO T_FCAT.
W_FCAT-COL_POS = 2.
W_FCAT-FIELDNAME = 'ERDAT'.
W_FCAT-TABNAME = 'VBAK'.
W_FCAT-SELTEXT_M = 'ORDER DATE'.
APPEND W_FCAT TO T_FCAT.
W_FCAT-COL_POS = 3.
W_FCAT-FIELDNAME = 'NETWR'.
W_FCAT-TABNAME = 'VBAK'.
W_FCAT-SELTEXT_M = 'ORDER VALUE'.
APPEND W_FCAT TO T_FCAT.
W_FCAT-COL_POS = 1.
W_FCAT-FIELDNAME = 'POSNR'.
W_FCAT-TABNAME = 'VBAP'.
W_FCAT-SELTEXT_M = 'ORDER ITEM'.
APPEND W_FCAT TO T_FCAT.
W_FCAT-COL_POS = 2.
W_FCAT-FIELDNAME = 'ARKTX'.
W_FCAT-TABNAME = 'VBAP'.
W_FCAT-SELTEXT_M = 'ORDER DESCRIPTION'.
APPEND W_FCAT TO T_FCAT.
W_FCAT-COL_POS = 3.
W_FCAT-FIELDNAME = 'WERKS'.
W_FCAT-TABNAME = 'VBAP'.
W_FCAT-SELTEXT_M = 'PLANT'.
APPEND W_FCAT TO T_FCAT.
W_KEYINFO-HEADER01 = 'VBELN'.
W_KEYINFO-ITEM01 = 'VBELN'.
SELECT VBELN ERDAT NETWR FROM VBAK INTO TABLE T_VBAK.
SELECT VBELN POSNR ARKTX WERKS FROM VBAP INTO TABLE T_VBAP FOR ALL
ENTRIES IN T_VBAK WHERE VBELN = T_VBAK-VBELN.
&----
*& FUNCTION MODULE CALL *
*& *
&----
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_CALLBACK_PROGRAM = SY-CPROG
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
IS_LAYOUT =
IT_FIELDCAT = T_FCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
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 = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
I_TABNAME_HEADER = T_VBAK
I_TABNAME_ITEM = T_VBAP
I_STRUCTURE_NAME_HEADER =
I_STRUCTURE_NAME_ITEM =
IS_KEYINFO = W_KEYINFO
IS_PRINT =
IS_REPREP_ID =
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB_HEADER = T_VBAK.
T_OUTTAB_ITEM = T_VBAP.
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.
2007 Apr 16 8:38 AM
Hi Venkat,
I went through your code and removed the 'full stops' you have put in the "Resuse_Alv_Hierarchial....." module after the table names "VBAK" and "VBAP". Although there were no suntax errors, stil your report is giving a short dump. This will have to be figured out. Just see after removing the full stops whether the said error of yours is solved. And, whether, you also get a short dump or are getting the output as desired.
Do let me know.
2007 Apr 16 8:43 AM
in th function module give <b>t_vbak[].</b>
it takes the whole internal table...
and remove fullstops also
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_CALLBACK_PROGRAM = SY-CPROG
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
IS_LAYOUT =
IT_FIELDCAT = T_FCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
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 = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
I_TABNAME_HEADER = T_VBAK
I_TABNAME_ITEM = T_VBAP
I_STRUCTURE_NAME_HEADER =
I_STRUCTURE_NAME_ITEM =
IS_KEYINFO = W_KEYINFO
IS_PRINT =
IS_REPREP_ID =
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
<b>T_OUTTAB_HEADER = T_VBAK[]</b>
T_OUTTAB_ITEM = T_VBAP
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.
rewards if it helps
Vijay Pawar
2007 Apr 16 8:44 AM
Hi,
i corrected ur program.check itnow.
REPORT Z_ALV_HIERSEQ_REPORT.
TYPE-POOLS: SLIS.
DATA: T_FCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: W_FCAT TYPE SLIS_FIELDCAT_ALV.
DATA: BEGIN OF T_VBAK OCCURS 0,
VBELN TYPE VBAK-VBELN,
ERDAT TYPE VBAK-ERDAT,
NETWR TYPE VBAK-NETWR,
END OF T_VBAK.
DATA: BEGIN OF T_VBAP OCCURS 0,
VBELN TYPE VBAP-VBELN,
POSNR TYPE VBAP-POSNR,
ARKTX TYPE VBAP-ARKTX,
WERKS TYPE VBAP-WERKS,
END OF T_VBAP.
DATA: W_KEYINFO TYPE SLIS_KEYINFO_ALV.
W_FCAT-COL_POS = 1.
W_FCAT-FIELDNAME = 'VBELN'.
W_FCAT-TABNAME = 'VBAK'.
W_FCAT-SELTEXT_M = 'ORDER NO'.
APPEND W_FCAT TO T_FCAT.
W_FCAT-COL_POS = 2.
W_FCAT-FIELDNAME = 'ERDAT'.
W_FCAT-TABNAME = 'VBAK'.
W_FCAT-SELTEXT_M = 'ORDER DATE'.
APPEND W_FCAT TO T_FCAT.
W_FCAT-COL_POS = 3.
W_FCAT-FIELDNAME = 'NETWR'.
W_FCAT-TABNAME = 'VBAK'.
W_FCAT-SELTEXT_M = 'ORDER VALUE'.
APPEND W_FCAT TO T_FCAT.
W_FCAT-COL_POS = 1.
W_FCAT-FIELDNAME = 'POSNR'.
W_FCAT-TABNAME = 'VBAP'.
W_FCAT-SELTEXT_M = 'ORDER ITEM'.
APPEND W_FCAT TO T_FCAT.
W_FCAT-COL_POS = 2.
W_FCAT-FIELDNAME = 'ARKTX'.
W_FCAT-TABNAME = 'VBAP'.
W_FCAT-SELTEXT_M = 'ORDER DESCRIPTION'.
APPEND W_FCAT TO T_FCAT.
W_FCAT-COL_POS = 3.
W_FCAT-FIELDNAME = 'WERKS'.
W_FCAT-TABNAME = 'VBAP'.
W_FCAT-SELTEXT_M = 'PLANT'.
APPEND W_FCAT TO T_FCAT.
W_KEYINFO-HEADER01 = 'VBELN'.
W_KEYINFO-ITEM01 = 'VBELN'.
SELECT VBELN ERDAT NETWR FROM VBAK INTO TABLE T_VBAK.
SELECT VBELN POSNR ARKTX WERKS FROM VBAP INTO TABLE T_VBAP FOR ALL
ENTRIES IN T_VBAK WHERE VBELN = T_VBAK-VBELN.
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_CALLBACK_PROGRAM = SY-CPROG
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
IS_LAYOUT =
IT_FIELDCAT = T_FCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
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 = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
I_TABNAME_HEADER =<b> 'T_VBAK'</b>
I_TABNAME_ITEM = <b>'T_VBAP'</b>
I_STRUCTURE_NAME_HEADER =
I_STRUCTURE_NAME_ITEM =
IS_KEYINFO = W_KEYINFO
IS_PRINT =
IS_REPREP_ID =
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB_HEADER = <b>T_VBAK[]</b>
T_OUTTAB_ITEM = <b>T_VBAP[].</b>
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.
rgds,
bharat.
2007 Apr 16 8:52 AM
hi
in addition to that, build your field catalog for all columns like this
W_FCAT-COL_POS = 1.
W_FCAT-FIELDNAME = 'VBELN'.
W_FCAT-TABNAME = 'T_VBAK'. ---> should be T_VBAK and not VBAK
W_FCAT-SELTEXT_M = 'ORDER NO'.
APPEND W_FCAT TO T_FCAT.
if helpful, reward
Sathish. R
2007 Apr 16 10:08 AM
Hi,
Did anyone executed the above code and whether you people are also facing a short dump during the execution and if yes, what could be the possible reasons behind it.
Can someone kindly explain?
| User | Count |
|---|---|
| 6 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |