hello,
can someone please tell me what this error means..at first I thought I needed to declare another it_vbap2, but the error still continues. any help is always appreciated. thank you.
Error:
Internal table "IT_VBAP1" has no Header line - specification of one of
the additions "INTO wa", "ASSIGNING", "REFERENCE INTO", "TRANSPORTING
NO FIELDS" is required.
here is my code:
code |
---|
REPORT zdemo_alvgrid.
TABLES: vbak.
TYPE-POOLS: slis. "ALV Declarations *Data Declaration *---------------- TYPES: BEGIN OF t_vbap, vbeln TYPE VBAK-VBELN, audat TYPE VBAK-AUDAT, "order date auart type VBAK-AUART, "sales document type bstnk type VBAK-BSTNK, "customer purchase description kunnr TYPE vbak-kunnr, kpein TYPE vbap-kpein, * meins TYPE vbak-meins, * netpr TYPE vbak-netpr, * peinh TYPE vbak-peinh, line_color(4) TYPE c, "Used to store row color attributes END OF t_vbap.
TYPES: BEGIN OF it_vbap1, posnr TYPE VBAP-POSNR, vbeln TYPE VBAP-VBELN,
END OF it_vbap1.
DATA: it_vbap TYPE STANDARD TABLE OF t_vbap INITIAL SIZE 0, wa_vbap TYPE t_vbap.
DATA: it_vbap1 TYPE STANDARD TABLE OF it_vbap1 INITIAL SIZE 0, wa_vbap1 TYPE it_vbap1.
DATA: it_vbap2 TYPE STANDARD TABLE OF it_vbap2 INITIAL SIZE 0, wa_vbap2 TYPE it_vbap2.
*ALV data declarations DATA: fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE, gd_tab_group TYPE slis_t_sp_group_alv, gd_layout TYPE slis_layout_alv, gd_repid LIKE sy-repid.
************************************************************************
PARAMETERS c_name TYPE vbak-vbeln. *Start-of-selection. START-OF-SELECTION.
DATA: ld_color(1) TYPE c. * TYPE vbap-vbeln.
IF c_name IS INITIAL. MESSAGE 'Enter the customer ID you would like to see' TYPE 'E'. ENDIF.
START-OF-SELECTION. *Query starts here to pull information from sales tables as well as internal table SELECT VBELN AUDAT AUART bstnk bsark kunnr INTO CORRESPONDING FIELDS OF TABLE it_vbap FROM VBAK WHERE kunnr = c_name.
SELECT VBELN POSNR KPEIN INTO CORRESPONDING FIELDS OF TABLE it_vbap1 from vbap FOR ALL ENTRIES IN it_vbap WHERE vbeln = it_vbap-vbeln. LOOP AT it_vbap1. READ TABLE it_vbap1 INTO it_vbap2 WITH KEY vbeln = it_vbak-vbeln. DESCRIBE TABLE it_vbap2.
ENDLOOP.
*Populate field with color attributes LOOP AT it_vbap INTO wa_vbap. * Populate color variable with colour properties * Char 1 = C (This is a color property) * Char 2 = 3 (Color codes: 1 - 7) * Char 3 = Intensified on/off ( 1 or 0 ) * Char 4 = Inverse display on/off ( 1 or 0 ) * i.e. wa_ekko-line_color = 'C410' ld_color = ld_color + 1.
* Only 7 colours so need to reset color value IF ld_color = 8. ld_color = 1. ENDIF. CONCATENATE 'C' ld_color '10' INTO wa_vbap-line_color.
MODIFY it_vbap FROM wa_vbap. ENDLOOP.
PERFORM data_retrieval. PERFORM build_fieldcatalog. PERFORM build_layout. PERFORM display_alv_report.
*&---------------------------------------------------------------------* *& Form BUILD_FIELDCATALOG *&---------------------------------------------------------------------* * Build Fieldcatalog for ALV Report *----------------------------------------------------------------------* FORM build_fieldcatalog.
fieldcatalog-fieldname = 'VBELN'. fieldcatalog-ref_tabname = 'VBAP'. fieldcatalog-seltext_m = 'Purchase Order'. fieldcatalog-col_pos = 0. fieldcatalog-outputlen = 10. fieldcatalog-emphasize = 'X'. fieldcatalog-key = 'X'. * fieldcatalog-do_sum = 'X'. * fieldcatalog-no_zero = 'X'. APPEND fieldcatalog TO fieldcatalog. CLEAR fieldcatalog.
fieldcatalog-fieldname = 'AUDAT'. fieldcatalog-seltext_m = 'Order Date'. fieldcatalog-col_pos = 1. APPEND fieldcatalog TO fieldcatalog. CLEAR fieldcatalog.
fieldcatalog-fieldname = 'AUART'. fieldcatalog-seltext_m = 'Sales Doc Type'. fieldcatalog-col_pos = 2. APPEND fieldcatalog TO fieldcatalog. CLEAR fieldcatalog.
fieldcatalog-fieldname = 'BSTNK'. fieldcatalog-seltext_m = 'Customer Purchase Desc.'. fieldcatalog-col_pos = 3. APPEND fieldcatalog TO fieldcatalog. CLEAR fieldcatalog. * fieldcatalog-fieldname = 'KUNNR'. fieldcatalog-seltext_m = 'Sold-to-party'. fieldcatalog-col_pos = 4. APPEND fieldcatalog TO fieldcatalog. CLEAR fieldcatalog.
fieldcatalog-fieldname = 'KPEIN'. fieldcatalog-seltext_m = 'Line Items'. fieldcatalog-col_pos = 5. APPEND fieldcatalog TO fieldcatalog. CLEAR fieldcatalog.
* fieldcatalog-fieldname = 'MEINS'. * fieldcatalog-seltext_m = 'Order Unit'. * fieldcatalog-col_pos = 6. * APPEND fieldcatalog TO fieldcatalog. * CLEAR fieldcatalog. * * fieldcatalog-fieldname = 'NETPR'. * fieldcatalog-seltext_m = 'Net Price'. * fieldcatalog-col_pos = 7. * fieldcatalog-outputlen = 15. * fieldcatalog-datatype = 'CURR'. * APPEND fieldcatalog TO fieldcatalog. * CLEAR fieldcatalog. * * fieldcatalog-fieldname = 'PEINH'. * fieldcatalog-seltext_m = 'Price Unit'. * fieldcatalog-col_pos = 8. * APPEND fieldcatalog TO fieldcatalog. * CLEAR fieldcatalog. ENDFORM. " BUILD_FIELDCATALOG
*&---------------------------------------------------------------------* *& Form BUILD_LAYOUT *&---------------------------------------------------------------------* * Build layout for ALV grid report *----------------------------------------------------------------------* FORM build_layout. gd_layout-no_input = 'X'. gd_layout-colwidth_optimize = 'X'. gd_layout-totals_text = 'Totals'(201). * Set layout field for row attributes(i.e. color) gd_layout-info_fieldname = 'LINE_COLOR'.
ENDFORM. " BUILD_LAYOUT
*&---------------------------------------------------------------------* *& Form DISPLAY_ALV_REPORT *&---------------------------------------------------------------------* * Display report using ALV grid *----------------------------------------------------------------------* FORM display_alv_report. gd_repid = sy-repid. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = gd_repid * i_callback_top_of_page = 'TOP-OF-PAGE' "see FORM * i_callback_user_command = 'USER_COMMAND' * i_grid_title = outtext is_layout = gd_layout it_fieldcat = fieldcatalog[] * it_special_groups = gd_tabgroup * IT_EVENTS = GT_XEVENTS i_save = 'X' * is_variant = z_template TABLES t_outtab = it_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. ENDFORM. " DISPLAY_ALV_REPORT
*&---------------------------------------------------------------------* *& Form DATA_RETRIEVAL *&---------------------------------------------------------------------* * Retrieve data form vbak table and populate itab it_vbap *----------------------------------------------------------------------* *FORM data_retrieval.
*ENDFORM. " DATA_RETRIEVAL *&---------------------------------------------------------------------* *& Form DATA_RETRIEVAL *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM DATA_RETRIEVAL .
ENDFORM. " DATA_RETRIEVAL |