美文网首页
ABAP选择界面实现Layout选取

ABAP选择界面实现Layout选取

作者: JayDragon | 来源:发表于2019-07-22 15:52 被阅读0次

像下图这样,用户查询ALV数据时根据需要选取符合自己的布局方式(由用户自己设定)

Layout选取.png

选择界面放置Layout选取框:

SELECTION-SCREEN BEGIN OF BLOCK bk1 WITH FRAME TITLE text-t01.
PARAMETER p_vari LIKE disvariant-variant.
SELECTION-SCREEN  END OF BLOCK bk1.

相关变量定义:

DATA: variante        LIKE disvariant,
      def_variante    LIKE disvariant,
      def_variante_f4 LIKE disvariant,
      gv_vari         LIKE disvariant-variant,
      gv_repid        LIKE sy-repid VALUE sy-repid,
      variant_exit(1) TYPE c.

在初始化事件中获取默认Layout:

INITIALIZATION.
  PERFORM get_variant.

FORM get_variant .
  variante-report      = gv_repid.
  def_variante = variante.
  CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
    EXPORTING
      i_save     = 'A'
    CHANGING
      cs_variant = def_variante
    EXCEPTIONS
      not_found  = 2.
  IF sy-subrc = 0.
    gv_vari = def_variante-variant.
  ENDIF.
  p_vari = gv_vari.
ENDFORM.                    " GET_VARIANT

然后设置F4事件:

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
  PERFORM f4_for_variant.

FORM f4_for_variant .
  CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
    EXPORTING
      is_variant    = variante
      i_save        = 'A'
    IMPORTING
      e_exit        = variant_exit
      es_variant    = def_variante_f4
    EXCEPTIONS
      not_found     = 1
      program_error = 2
      OTHERS        = 3.
  IF sy-subrc = 0.
    IF variant_exit = space.
      p_vari = def_variante_f4-variant.
      gv_vari = p_vari.
    ENDIF.
  ENDIF.

ENDFORM.                    " F4_FOR_VARIANT

最后调用函数显示ALV时,加上参数:

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program       = gv_repid
      i_callback_pf_status_set = 'SET_PF_STATUS'
      i_callback_user_command  = 'USER_COMMAND'
      is_layout                = ls_layout
      it_fieldcat              = gt_fieldcat
      i_save                   = 'A'
      is_variant               = def_variante_f4
    TABLES
      t_outtab                 = gt_out
    EXCEPTIONS
      program_error            = 1
      OTHERS                   = 2.

相关文章

  • ABAP选择界面实现Layout选取

    像下图这样,用户查询ALV数据时根据需要选取符合自己的布局方式(由用户自己设定) 选择界面放置Layout选取框:...

  • 10、挂号功能完整代码(学生参考)

    目标 本章节主要练习前台界面开发 挂号界面 挂号逻辑前后台实现 挂号界面 我选择的是layout下的混合布局com...

  • Android中标签的使用及注意事项

    原文链接:    标签可以实现在一个layout中引用另一个layout的布局,这通常适合于界面布局复杂、不同界面...

  • Android中<include>标签的使用及注意事

    前言    标签可以实现在一个layout中引用另一个layout的布局,这通常适合于界面布局复杂、不同界面有共用...

  • ABAP-ALV-GRID

    ALV简单实例 ABAP ALV使用实例---sflight航班表及其效果界面ABAP:ALV List报表最后页...

  • ABAP的Package interface, 安卓的manif

    ABAP 事务码SE21创建ABAP包接口。这是ABAP基于包层面的访问控制实现逻辑。包里可以存储很多ABAP对象...

  • ViewPager--实现多个Fragment中的数据同步

    当前做的项目中,需要实现点击 “通知编辑界面” 中的 ? 跳转到 “附件选择界面”。附件选择界面实现的思路是 Ac...

  • 选择器(2)

    选择器 --> 选择元素进行样式实现. 属性选择器 可快速选取指定元素进行样式应用. 1. 只选取属性名 2. 选...

  • Android线性布局

    1. 什么是Layout? Layout——界面布局,为应用程序提供界面架构。控制Activity中控件的大小、位...

  • ABAP选取数据的坑

    我用下面的条件去表中取数,表里明明有数据,可是就是取不到,经过后面debug分析,发现是aufnr的前导0的问题。...

网友评论

      本文标题:ABAP选择界面实现Layout选取

      本文链接:https://www.haomeiwen.com/subject/aejwlctx.html