前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >function alv (二)

function alv (二)

作者头像
秋白
发布2021-03-20 14:10:18
6460
发布2021-03-20 14:10:18
举报
文章被收录于专栏:java小白java小白

layout

Z_TEST_01TOP
代码语言:javascript
复制
  DATA:gs_layout TYPE slis_layout_alv. 
Z_TEST_01FORM
代码语言:javascript
复制
  FORM build_layout .
  gs_layout-zebra = 'X'. "斑马纹输出
  gs_layout-colwidth_optimize = 'X'."优化列宽
  gs_layout-box_fieldname = 'BOX'. "选择框的字段,需要在内表增加BOX字段

  "详细清单属性
  gs_layout-detail_popup = 'X'. "popup对话框
  gs_layout-detail_initial_lines = 'X'. "是否显示值为空的字段
  gs_layout-detail_titlebar = '详细列表'. "对话框标题

  "表单属性
  gs_layout-window_titlebar = '窗体抬头'.
  gs_layout-confirmation_prompt = 'X'. "退出时弹出确认对话框
  ENDFORM.

Sort

Sort表为一个内表,将需要排序的字段信息增加到sort表中,在ALV输出按照顺序排序

Z_TEST_01TOP
代码语言:javascript
复制
DATA:gt_sort TYPE slis_t_sortinfo_alv,
     gs_sort TYPE slis_sortinfo_alv.
Z_TEST_01FORM
代码语言:javascript
复制
FORM build_sort .
  CLEAR gs_sort.
  gs_sort-fieldname = 'EBELN'.
  gs_sort-spos = '1'. "排序的先后顺序设置
  gs_sort-down = 'X'.
  APPEND gs_sort TO gt_sort.

  CLEAR gs_sort.
  gs_sort-fieldname = 'EBELP'.
  gs_sort-spos = '2'. "排序的先后顺序设置
  gs_sort-up = 'X'.
  APPEND gs_sort TO gt_sort.
ENDFORM.

增加按钮

创建GUI_STATUS
在这里插入图片描述
在这里插入图片描述
参照模板增加按钮
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
增加按钮到工具栏

Z_TEST_01FORM

代码语言:javascript
复制
FORM pf_status_set USING rt_extab TYPE slis_t_extab.
  SET PF-STATUS 'PF_STATUS'.
ENDFORM.

Z_TEST_01TOP

代码语言:javascript
复制
DATA:gt_event TYPE slis_t_event,
     gs_event TYPE slis_alv_event.

Z_TEST_01FORM

代码语言:javascript
复制
FORM build_event .
  CLEAR gs_event.
  gs_event-name = 'PF_STATUS_SET'.
  gs_event-form = 'SET_STATUS'.
  APPEND gs_event TO  gt_event.
ENDFORM.

FORM build_alv .
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program = sy-cprog
      it_sort            = gt_sort
      is_layout          = gs_layout
      it_fieldcat        = gt_fieldcat 
      it_events          = gt_event  
    TABLES
      t_outtab           = gty_ekpo.
ENDFORM.
编写按钮功能

Z_TEST_01FORM p_ucomm:点击事件的功能代码 p_field:点击位置信息光标

代码语言:javascript
复制
FORM user_command USING p_ucomm TYPE sy-ucomm
                         p_field  TYPE slis_selfield.
  CASE p_ucomm.
    WHEN  '&IC1'.
      READ TABLE gty_ekpo INDEX p_field-tabindex.
      PERFORM display_mm_data USING gty_ekpo-ebeln.
    WHEN OTHERS.
  ENDCASE.
ENDFORM.
代码语言:javascript
复制
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program      = sy-cprog
      i_callback_user_command = 'USER_COMMAND' "功能代码处理
      it_sort                 = gt_sort
      is_layout               = gs_layout
      it_fieldcat             = gt_fieldcat
      it_events               = gt_event
    TABLES
      t_outtab                = gty_ekpo.

增加表头

Z_TEST_01FORM

代码语言:javascript
复制
FORM TOP_OF_PAGE.
  DATA:LT_LISTHEADER TYPE SLIS_T_LISTHEADER   .
  DATA:LS_LISTHEADER TYPE SLIS_LISTHEADER .

  LS_LISTHEADER-TYP = 'H'.
  LS_LISTHEADER-INFO = '表头描述文本'.
  APPEND  LS_LISTHEADER TO  LT_LISTHEADER.

  LS_LISTHEADER-TYP = 'S'.
  LS_LISTHEADER-KEY = '字段KEY'.
  LS_LISTHEADER-INFO = '字段VALUE'.
  APPEND  LS_LISTHEADER TO  LT_LISTHEADER.

  LS_LISTHEADER-TYP = 'A'.
  LS_LISTHEADER-INFO = '结尾斜体'.
  APPEND  LS_LISTHEADER TO  LT_LISTHEADER.

  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      IT_LIST_COMMENTARY = LT_LISTHEADER.
ENDFORM.
代码语言:javascript
复制
 CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_CALLBACK_PROGRAM      = SY-CPROG
      I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
      I_CALLBACK_TOP_OF_PAGE  = 'TOP_OF_PAGE' "增加表头
      IT_SORT                 = GT_SORT
      IS_LAYOUT               = GS_LAYOUT
      IT_FIELDCAT             = GT_FIELDCAT
      IT_EVENTS               = GT_EVENT
    TABLES
      T_OUTTAB                = GTY_EKPO.

设置颜色

颜色值的设置:C+X(颜色)X(背景色/文字颜色:1/0)X(是否反色1/0)

设置列颜色

对FIELDCAT-EMPHASIZE赋值颜色

设置行颜色

1、在内表中增加一个字段,CHAR类型,长度为4,例:COLOR字段 2、在获取数据时,对颜色字段进行赋值,例:GTY_EKPO-COLOR = ‘C411’. 3、设置layout,将INFO_FIELDNAME字段,赋值为内表中颜色字段名称

设置单元格颜色

在内表中增加一个字段,LVC_T_SCOL类型内表,例:COLOR字段 在获取数据时,对颜色内表进行赋值, FNAME:字段名;COLOR颜色字段三个数字; NOKEYCOL是否覆盖关键字颜色 设置layout,将COLTAB_FIELDNAME字段,赋值为内表中颜色字段名称

代码语言:javascript
复制
	  CLEAR LS_SCOL.
      LS_SCOL-FNAME = 'EBELP'.
      LS_SCOL-COLOR-COL = 6.
      LS_SCOL-COLOR-INT = 0.
      LS_SCOL-COLOR-INV = 0.
      APPEND LS_SCOL TO GTY_EKPO-COLOR. 
      
      GS_LAYOUT-COLTAB_FIELDNAME = 'COLOR'.
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-02-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • layout
  • Sort
  • 增加按钮
  • 增加表头
  • 设置颜色
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档