赛跑网

 找回密码
 注册

QQ登录

只需一步,快速开始

快捷登录

查看: 1392|回复: 6

[ABAP问题] alv error

[复制链接]
发表于 2012-12-5 14:33:16 | 显示全部楼层 |阅读模式
1赛跑币
大家好! 小弟附上程序,运行中当掉了,想不出什么问题。请老师指明方向!

REPORT z_alv.
TABLES: ekko,
        ekpo,
        lfa1,
        mepo1211,
        makt.

TYPE-POOLS: SLIS.

TYPES: BEGIN OF T_ITAB,

       BUKRS like EKKO-BUKRS,
       AEDAT like EKKO-AEDAT,
       EBELN like EKKO-ebeln,

       MENGE like EKPO-MENGE,
       MEINS like EKPO-MEINS,
       NETPR like EKPO-NETPR,
       MATNR like EKPO-MATNR,
       EBELP like EKPO-EBELP,

       lifnr like lfa1-lifnr,
       NAME1 like LFA1-NAME1,

       MAKTX like MAKT-MAKTX,

       End of T_ITAB.

DATA: it_itab type standard table of T_ITAB WITH HEADER LINE.

DATA: gw_layout type slis_layout_alv,
      gw_fcat   type slis_fieldcat_alv,
      ge_fcat   type standard table of slis_fieldcat_alv.


perform FRM_FIELDCAT.
perform frm_alv_out.


selection-screen begin of block 10 with frame title text-a10.

select-options: s_bukrs for ekko-bukrs no intervals obligatory no-extension.
selection-screen: skip 1.

select-options: s_aedat for ekko-aedat.

selection-screen:skip 1.
select-options:
                s_ebeln for ekko-ebeln,
                s_matnr for ekpo-matnr,
                s_lifnr for ekko-lifnr.

selection-screen end of block 10.

select  K~BUKRS
        K~AEDAT
        K~ebeln
        P~MENGE
        P~MEINS
        P~NETPR
        P~MATNR
        P~EBELP
        l~lifnr
        L~NAME1
        M~MAKTX

from makt as m

inner join ekpo as p
      on   m~mandt = p~mandt
inner join ekko as k
      on   p~ebeln = k~ebeln
inner join lfa1 as l
      on   k~lifnr = l~lifnr
up to 1
rows
into corresponding fields of table it_itab.



*
*loop at it_itab.
*
*endloop.
**write: it_itab-ebeln,
**it_itab-matnr,
**it_itab-BUKRS,
**it_itab-BUKRS,
**it_itab-MENGE,
**it_itab-MEINS,
**it_itab-NETPR,
**it_itab-NETPR,
**it_itab-EBELP,
**it_itab-lifnr,
**it_itab-NAME1,
**it_itab-MAKTX.



INCLUDE ZALV_FRM_FIELDCATF01.
*&---------------------------------------------------------------------*
*&      Form  FRM_FIELDCAT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FRM_FIELDCAT .
clear gw_fcat.
gw_fcat-key        =''.
gw_fcat-fieldname  ='ebeln'.
gw_fcat-no_zero    ='X'.
gw_fcat-seltext_l  ='ebeln'.
append gw_fcat to ge_fcat.

clear gw_fcat.
gw_fcat-key        =''.
gw_fcat-fieldname  ='matnr'.
gw_fcat-no_zero    ='X'.
gw_fcat-seltext_l  ='matnr'.
append gw_fcat to ge_fcat.

ENDFORM.                    " FRM_FIELDCAT
*&---------------------------------------------------------------------*
*&      Form  FRM_ALV_OUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FRM_ALV_OUT .
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
*     I_INTERFACE_CHECK              = ' '
*     I_BYPASSING_BUFFER             =
*     I_BUFFER_ACTIVE                = ' '
*     I_CALLBACK_PROGRAM             = ' '
*     I_CALLBACK_PF_STATUS_SET       = ' '
*     I_CALLBACK_USER_COMMAND        = ' '
*     I_STRUCTURE_NAME               =
      IS_LAYOUT                      = gw_layout
      IT_FIELDCAT                    = ge_fcat
*     IT_EXCLUDING                   =
*     IT_SPECIAL_GROUPS              =
*     IT_SORT                        =
*     IT_FILTER                      =
*     IS_SEL_HIDE                    =
*     I_DEFAULT                      = 'X'
*     I_SAVE                         = ' '
*     IS_VARIANT                     =
*     IT_EVENTS                      =
*     IT_EVENT_EXIT                  =
*     IS_PRINT                       =
*     IS_REPREP_ID                   =
*     I_SCREEN_START_COLUMN          = 0
*     I_SCREEN_START_LINE            = 0
*     I_SCREEN_END_COLUMN            = 0
*     I_SCREEN_END_LINE              = 0
*     IR_SALV_LIST_ADAPTER           =
*     IT_EXCEPT_QINFO                =
*     I_SUPPRESS_EMPTY_DATA          = ABAP_FALSE
*   IMPORTING
*     E_EXIT_CAUSED_BY_CALLER        =
*     ES_EXIT_CAUSED_BY_USER         =
    TABLES
      T_OUTTAB                       = ge_fcat
   EXCEPTIONS
     PROGRAM_ERROR                  = 1
     OTHERS                         = 2.
  IF SY-SUBRC <> 0.
* Implement suitable error handling here
  ENDIF.


ENDFORM.                 

最佳答案

查看完整内容

首先你必须先搞清楚函数:REUSE_ALV_GRID_DISPLAY各个传入参数的作用,否则没有任何作用。 T_OUTTAB = ge_fcat8 这个必须指定你要展示的内表 gw_fcat-fieldname ='ebeln'.单瞥号里面的必须大写。




上一篇:FS00新建统驭类科目时没有统驭科目的科目类型选项
下一篇:保险公司,咨询公司会用SAP吗
本楼点评(0) 收起
发表于 2012-12-5 14:33:17 | 显示全部楼层
首先你必须先搞清楚函数:REUSE_ALV_GRID_DISPLAY各个传入参数的作用,否则没有任何作用。
T_OUTTAB   = ge_fcat8 这个必须指定你要展示的内表
gw_fcat-fieldname  ='ebeln'.单瞥号里面的必须大写。
本楼点评(0) 收起
回复

使用道具 举报

 楼主| 发表于 2012-12-5 16:18:52 | 显示全部楼层
太谢谢你了 老师!!!
本楼点评(0) 收起
回复

使用道具 举报

发表于 2012-12-5 23:23:04 | 显示全部楼层
单引号''里面的东西 一定要大写!
本楼点评(0) 收起
回复

使用道具 举报

发表于 2013-4-9 21:58:47 | 显示全部楼层
我也遇到一样的问题
运行这个函数时不承认输出内表。

本楼点评(0) 收起
回复

使用道具 举报

发表于 2013-4-9 22:00:57 | 显示全部楼层
代码:tables:  mara,
         marc,
         mard,
         ekko,
         ekpo,
         lfa1.

type-pools:slis.

DATA: ws_fieldcat type slis_t_fieldcat_alV with header line,
      ws_fieldgroups_tab type slis_t_sp_group_alV,
      ws_layout type slis_layout_alV,
      ws_sortfields_tab type slis_t_sortinfo_alV,
      ws_eVents type slis_t_eVent.
data: formname_top_of_page type slis_formname Value 'TOP_OF_PAGE',
      l_i_eVent type slis_alV_eVent.
data: i_list_top_of_page type slis_t_listheader.
data: ls_line type slis_listheader.

data: begin of it_putout occurs 0 ,
      matnr like mara-matnr,
      werks like marc-werks,
      dispo like marc-dispo,
      lgort like mard-lgort,
      ebeln like ekko-ebeln,
      lifnr like ekko-lifnr,
      name1 like lfa1-name1,
      end of it_putout.

data: lV_pgm like sy-repid.
  lV_pgm = sy-repid.
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_CALLBACK_PROGRAM = lV_pgm    "回调的程序名
      IS_LAYOUT          = ws_layout
      it_fieldcat        = ws_fieldcat[]
      it_special_groups  = ws_fieldgroups_tab[]
      it_sort            = ws_sortfields_tab[]
      it_eVents          = ws_eVents[]
      i_saVe             = 'A'
    TABLES
      t_outtab           = it_putout
    EXCEPTIONS
      program_error      = 1
      OTHERS             = 2.


ENDFORM.                    " LIST_DATA
本楼点评(0) 收起
回复

使用道具 举报

发表于 2013-4-9 22:02:06 | 显示全部楼层
运行时函数不认识内表,请教大神帮助。

本楼点评(0) 收起
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|联系我们|赛跑网 ( QQ:108519493QQfsq

GMT+8, 2024-4-28 22:44 , Processed in 0.203482 second(s), 46 queries .

Powered by 91SAP X3.4

© 2001-2023 91sap Team.

快速回复 返回顶部 返回列表