Application Development and Automation 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: 
Read only

ALV- HIERARCHAIL SEQUENTIAL

Former Member
0 Likes
816

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.

5 REPLIES 5
Read only

Former Member
0 Likes
794

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.

Read only

Former Member
0 Likes
794

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

Read only

Former Member
0 Likes
794

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.

Read only

0 Likes
794

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

Read only

Former Member
0 Likes
794

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?