‎2007 Aug 19 3:10 PM
hi all ,
While declaring internal table if I wont declare with header line it shows error like that:
"The internal table "IT_VBAK" has no Header line - explicit
specification of an output area with "INTO wa" or "ASSIGNING <fs>" is
required".
Code given below : Pls check let me know correct answer .thnx in advance
REPORT zvik52 .
----
Tables
----
TABLES: vbak.
----
TYPES
----
TYPES:
BEGIN OF ty_vbak,
vbeln TYPE vbeln_va,
erdat TYPE erdat,
kunnr TYPE kunag,
auart TYPE auart,
vbtyp TYPE vbtyp,
netwr TYPE netwr_ak,
END OF ty_vbak.
&----
*& WORK AREAS
&----
DATA:
wa_vbak TYPE ty_vbak.
&----
*& INTERNAL TABLES
&----
DATA: it_vbak TYPE TABLE OF ty_vbak.
SELECT vbeln erdat kunnr auart vbtyp netwr FROM vbak UP TO 5 ROWS INTO
TABLE it_vbak ORDER BY netwr DESCENDING.
LOOP AT it_vbak.
AT FIRST .
WRITE : /20 'DISPLAYING THE HIGHEST NET VALUE RECORDS' COLOR 6.
ULINE.
WRITE:/10 'vbeln' COLOR 1,
25 'erdat' COLOR 1,
45 'kunnr' COLOR 1,
55 'auart' COLOR 1,
65 'vbtyp' COLOR 1,
82 'netwr' COLOR 1.
ULINE.
ENDAT.
FORMAT COLOR 3.
WRITE :/10 it_vbak-vbeln,
25 it_vbak-erdat,
45 it_vbak-kunnr,
55 it_vbak-auart,
65 it_vbak-vbtyp,
82 it_vbak-netwr.
FORMAT COLOR OFF.
AT LAST .
SUM.
ULINE.
WRITE: /55 ' total no of netwr' COLOR 2, it_vbak-netwr COLOR 2.
ENDAT.
Thanks
Vikas
‎2007 Aug 19 3:25 PM
When your table has no header like your loop must be:
LOOP AT it_vbak INTO wa_vbak.You then refer to all fields while in the loop as <b>wa_vbak-fieldname</b>, not <b>it_vbak-...</b>
Andrew
‎2007 Aug 19 3:25 PM
When your table has no header like your loop must be:
LOOP AT it_vbak INTO wa_vbak.You then refer to all fields while in the loop as <b>wa_vbak-fieldname</b>, not <b>it_vbak-...</b>
Andrew
‎2007 Aug 19 3:30 PM
Hi Vikas,
Your Internal table IT_VBAK is not having the header line. You have declared it explicitely with the statement DATA:wa_vbak TYPE ty_vbak.
you are trying to fetch data from workspace to workarea eventhough it is not having workarea(header). try to use command like.
LOOP AT it_vbak into wa_vbak.
<use write statemets if any only for wa_vbak not for it_vbak>
endloop.
‎2007 Aug 19 3:39 PM
Hi,
Here u go: -
REPORT zvik52 .
----
Tables
----
TABLES: vbak.
----
TYPES
----
TYPES:
BEGIN OF ty_vbak,
vbeln TYPE vbeln_va,
erdat TYPE erdat,
kunnr TYPE kunag,
auart TYPE auart,
vbtyp TYPE vbtyp,
netwr TYPE netwr_ak,
END OF ty_vbak.
&----
*& WORK AREAS
&----
DATA:
wa_vbak TYPE ty_vbak.
&----
*& INTERNAL TABLES
&----
DATA: it_vbak TYPE TABLE OF ty_vbak.
SELECT vbeln erdat kunnr auart vbtyp netwr FROM vbak UP TO 5 ROWS INTO
TABLE it_vbak ORDER BY netwr DESCENDING.
LOOP AT it_vbak into wa_vbak.
AT FIRST .
WRITE : /20 'DISPLAYING THE HIGHEST NET VALUE RECORDS' COLOR 6.
ULINE.
WRITE:/10 'vbeln' COLOR 1,
25 'erdat' COLOR 1,
45 'kunnr' COLOR 1,
55 'auart' COLOR 1,
65 'vbtyp' COLOR 1,
82 'netwr' COLOR 1.
ULINE.
ENDAT.
FORMAT COLOR 3.
WRITE :/10 wa_vbak-vbeln,
25 wa_vbak-erdat,
45 wa_vbak-kunnr,
55 wa_vbak-auart,
65 wa_vbak-vbtyp,
82 wa_vbak-netwr.
FORMAT COLOR OFF.
AT LAST .
SUM.
ULINE.
WRITE: /55 ' total no of netwr' COLOR 2, wa_vbak-netwr COLOR 2.
ENDAT.
ENDLOOP.
Regards,
Hari krishna