子曰花开2015

导航

简单的ALV示例

在这里也推荐一条链接,很适合初学者:https://blog.csdn.net/Kang_xiong/article/details/64922576

这是一个特别基础的示例,适合没有任何ABAP基础的同学查看,很简单

示例展示:

1.SE38进入ABAP编辑器:

 

2. 选择本地对象后保存,此包内的程序不可传到生产系统中。如需传入生产系统,请选择可传输的包:

3. ALV创建步骤一

定义ALV的列属性表,和行属性工作区

DATA: GT_FCAT TYPE TABLE OF LVC_S_FCAT,列属性表

GS_LAYO TYPE LVC_S_LAYO.   行属性工作区

 

 4. ALV创建步骤二:

为行属性工作区GS_LAYO 赋值。

GS_LAYO-CWIDTH_OPT = ‘X’.

 

 5. ALV创建步骤三:

为列属性表GT_FCAT 赋值。

gs_fcat-fieldname = 'WERKS'.
    gs_fcat-scrtext_l = '工厂'.
    APPEND gs_fcat TO gt_fcat.
    CLEAR gs_fcat.

    gs_fcat-fieldname = 'MATNR'.
    gs_fcat-scrtext_l = '物料编码'.
    APPEND gs_fcat TO gt_fcat.
    CLEAR gs_fcat.

 6. ALV创建步骤四:

调用ALV显示函数

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING

      I_CALLBACK_PROGRAM                = sy-repid
      IS_LAYOUT_LVC                     = gs_layo "行属性
      IT_FIELDCAT_LVC                   = gt_fcat"列属性
     TABLES
       T_OUTTAB                          = gt_data
    EXCEPTIONS
      PROGRAM_ERROR                     1
      OTHERS                            2
    

7.  小示例REPORT ZTEST1.

*======================================================================*
*                   Tables used in the program
*======================================================================*
TABLES: t001w,marc.

*======================================================================*
*                Type declarations in the program
*======================================================================*

TYPESBEGIN OF ty_wmatnr,
        werks TYPE t001w-werks,
        matnr TYPE marc-matnr,
       END OF ty_wmatnr.



*======================================================================*
*                Internal Tables used in the program
*======================================================================*

DATA : gt_fcat TYPE TABLE OF lvc_s_fcat"列属性表
       gs_fcat TYPE lvc_s_fcat,"列属性工作区
       gs_layo TYPE lvc_s_layo"行属性工作区

DATA: gt_data TYPE TABLE OF ty_wmatnr.


*======================================================================*
*                Data declarations in the program
*======================================================================*

*======================================================================*
*                       CONSTANTS
*======================================================================*

*======================================================================*
*                      Input Selection Screen
*======================================================================*

SELECTION-SCREENBEGIN OF BLOCK a1 WITH FRAME TITLE text-001.
  SELECT-OPTIONS: s_werks FOR t001w-werks ,
                  s_matnr FOR marc-matnr.
SELECTION-SCREEN:END OF BLOCK a1.


*======================================================================*
*                          Initialization
*======================================================================*
INITIALIZATION"初始化值


*======================================================================*
*                        At Selection Screen
*======================================================================*
AT SELECTION-SCREEN.  "选择屏幕输出后点击执行时的检查


*======================================================================*
*                       AT SELECTION-SCREEN OUTPUT
*======================================================================*
AT SELECTION-SCREEN OUTPUT "可设定屏幕必输项



*======================================================================*
*                       AT SELECTION-SCREEN ON VALUE-REQUEST
*======================================================================*



*======================================================================*
*                        Start of Selection
*======================================================================*
START-OF-SELECTION.

SELECT werks matnr INTO TABLE gt_data UP TO ROWS FROM marc WHERE werks IN s_werks
                                                              AND matnr IN s_matnr.

  IF sy-subrc NE 0.
    MESSAGE s999(zcrWITH '没有找到数据!'.
    STOP.

    ELSE.
      PERFORM frm_get_data.
      ENDIF.


*======================================================================*
*                         End of Selection
*======================================================================*
END-OF-SELECTION.

FORM frm_get_data.

  gs_layo-cwidth_opt 'X'.

  gs_fcat-fieldname 'WERKS'.
  gs_fcat-scrtext_l '工厂'.
  APPEND gs_fcat TO gt_fcat.
  CLEAR gs_fcat.

  gs_fcat-fieldname 'MATNR'.
  gs_fcat-scrtext_l '物料编码'.
  APPEND gs_fcat TO gt_fcat.
  CLEAR gs_fcat.


   CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING

      I_CALLBACK_PROGRAM                = sy-repid
      IS_LAYOUT_LVC                     = gs_layo "行属性
      IT_FIELDCAT_LVC                   = gt_fcat"列属性
     TABLES
       T_OUTTAB                          = gt_data
    EXCEPTIONS
      PROGRAM_ERROR                     1
      OTHERS                            2.

ENDFORM.

8. 点击转到-->文本元素可设定屏幕字段名称:

 

posted on 2019-01-12 16:40  子曰花开2015  阅读(895)  评论(0编辑  收藏  举报