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: 

The work area "ITAB" is not long enough

Former Member
0 Kudos

Hi,

When i activate my report, it gives an Syntax Error: - The work area "ITAB" is not long enough.

What is the problem. Please check my code:--

***************************

REPORT ztest.

DATA: BEGIN OF it_t100 OCCURS 0,

checkbox LIKE abgr-kzart,

ebeln LIKE ekbe-ebeln,

ebelp LIKE ekbe-ebelp,

gjahr LIKE ekbe-gjahr,

END OF it_t100.

DATA:program TYPE sy-repid VALUE sy-repid.

TYPE-POOLS slis.

DATA:it_fieldcat TYPE slis_t_fieldcat_alv,

wa_fieldcat LIKE LINE OF it_fieldcat.

DEFINE fieldcatalog.

wa_fieldcat-fieldname = &1.

wa_fieldcat-tabname = 'IT_T100'.

wa_fieldcat-seltext_m = &2.

wa_fieldcat-emphasize = &3. "highlight columns in color

append wa_fieldcat to it_fieldcat.

clear wa_fieldcat.

END-OF-DEFINITION.

START-OF-SELECTION.

SELECT * FROM ekbe INTO TABLE it_t100 UP TO 100 ROWS.

fieldcatalog: 'CHECKBOX' 'CHECKBOX' 'C210',

'EBELN' 'EBELN' 'C310',

'EBELP' 'EBELP' 'C410',

'GJAHR' 'GJAHR' 'C510'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = program

it_fieldcat = it_fieldcat

TABLES

t_outtab = it_t100.

***************************

Regards,

1 ACCEPTED SOLUTION

Mohamed_Mukhtar
Active Contributor
0 Kudos

hi,

Do changes in your select stamement,since der are only three fields in your internal table

and you are trying to fetch all fields from the database table EKBE

SELECT ebeln
         ebelp
         gjahr FROM ekbe INTO CORRESPONDING FIELDS OF TABLE it_t100 UP TO 100 ROWS.

Thanks

10 REPLIES 10

Former Member
0 Kudos

Hi,

You have tried to select all the fields from the database table EKBE. But your internal table can hold only 3 fields from the database table. So there is incompatibility.

Do this



START-OF-SELECTION.
SELECT ebeln ebelp gjahr FROM ekbe INTO CORRESPONDING FIELDS OF  TABLE it_t100 UP TO 10 ROWS.

Or if you want all the fields, then you will have to declare your internal table TYPE STANDARD TABLE of EKBE.

Mohamed_Mukhtar
Active Contributor
0 Kudos

hi,

Do changes in your select stamement,since der are only three fields in your internal table

and you are trying to fetch all fields from the database table EKBE

SELECT ebeln
         ebelp
         gjahr FROM ekbe INTO CORRESPONDING FIELDS OF TABLE it_t100 UP TO 100 ROWS.

Thanks

venkat_o
Active Contributor
0 Kudos

Hi, <li>You need to use SELECT query like below

SELECT * FROM ekbe INTO CORRESPONDING FIELDS OF TABLE it_t100 UP TO 100 ROWS.
<li> When you use SELECT * , It means selecting EKBE all fields to it_t100 which has only 4 fields. Thanks Venkat.O

Former Member
0 Kudos

Hi,

Thanks dear for valuable reply....

Please clear one thing that when i m executing the report, it's output is coming column wise colorful. Is it possible, when i export it to excel, should comes in column wise colorful.

Or any other idea.

Regards...

0 Kudos

Hello,

If you want same format in excel as source I think you need to use OLE objects for such things but in standard procedure provided for downloading records don't support formatting colours column wise.

Please check SAP help on using OLE object.

Thanks,

Augustin.

Former Member
0 Kudos

Hi,

Its because you have not mentioned the INTO CORRESPONDING FIELDS OF TABLE ITAB clause in your select statement.

But its always recommended to specify the fields explicitly than using into corresponding fields of table itab which may affect the perfomance of the select query.

Regards,

Vik

Former Member
0 Kudos

Hi,

correct program is:

REPORT ztest.


Types: BEGIN OF t_t100,
        ebeln type ekbe-ebeln,
        ebelp type ekbe-ebelp,
        gjahr type ekbe-gjahr,
        END OF t_t100.
data : it_t100 TYPE standard TABLE OF t_t100  with header line.


DATA:program TYPE sy-repid VALUE sy-repid.

TYPE-POOLS slis.

DATA:it_fieldcat TYPE slis_t_fieldcat_alv,
wa_fieldcat LIKE LINE OF it_fieldcat.

DEFINE fieldcatalog.
wa_fieldcat-fieldname = &1.
wa_fieldcat-tabname = 'IT_T100'.
wa_fieldcat-seltext_m = &2.
wa_fieldcat-emphasize = &3. "highlight columns in color
append wa_fieldcat to it_fieldcat.
clear wa_fieldcat.
END-OF-DEFINITION.

START-OF-SELECTION.

SELECT * FROM ekbe INTO corresponding fields of TABLE it_t100 UP TO 100 ROWS.

fieldcatalog:
'EBELN' 'EBELN' 'C310',
'EBELP' 'EBELP' 'C410',
'GJAHR' 'GJAHR' 'C510'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = program
it_fieldcat = it_fieldcat
TABLES
t_outtab = it_t100.

Former Member
0 Kudos

Hai

Use like this:

SELECT * FROM ekbe INTO corresponding fields of TABLE it_t100 UP TO 100 ROWS.

former_member1245113
Active Contributor
0 Kudos

HI All,

I also join the rally of INTO CORRESPONDING FIELDS OF ITAB

INTO CORRESPONDING FIELDS OF ITAB

INTO CORRESPONDING FIELDS OF ITAB

INTO CORRESPONDING FIELDS OF ITAB

INTO CORRESPONDING FIELDS OF ITAB

INTO CORRESPONDING FIELDS OF ITAB

|

|

|

|

|

+INTO CORRESPONDING FIELDS OF ITAB

Regards

Ramchander Rao.Krishnamraju

former_member218674
Contributor
0 Kudos

Hello,

Apart from using INTO CORRESPONDING clause in select statement, Also remove OCCURS addition from internal table declaration as it is obsolute. Instead you can create user defined type using TYPES and then use it to create internal table

using TYPE TABLE OF addition.

Thanks,

Augustin.