alv报表的两种“框架”模式,模式一:

该代码段展示了在SAPABAP环境中如何定义一个包含复选框的屏幕组件,并设置了字段属性如编辑权限。在`frm_build_fieldcat`中配置了字段,包括SEL字段作为复选框,并定义了其他字段如numb,name,NJ,BJ,term,KM,CJ的属性。然后在`frm_build_layout`中设置了布局选项,最后通过`frm_display_alv`显示ALV表格。
摘要由CSDN通过智能技术生成

在定义屏幕组件时,单选需要设定必填项OBLIGATORY

 FORM frm_show_data .
*ALV字段属性设置
  PERFORM frm_build_fieldcat .
*ALV布局设置
  PERFORM frm_build_layout.
*显示ALV
  PERFORM frm_display_alv.
ENDFORM.

FORM frm_build_fieldcat.


   DATA: ls_fcat TYPE lvc_s_fcat.
  CLEAR ls_fcat.
  ls_fcat-fieldname = 'SEL'.
  ls_fcat-reptext = '复选框'.
  ls_fcat-fix_column    = ''.
  ls_fcat-no_out     = ''.
  ls_fcat-convexit = ''.
  ls_fcat-edit     = 'X'.
  ls_fcat-checkbox = 'X'.
  APPEND ls_fcat TO gt_fcat."赋值ALV显示的字段

  CLEAR ls_fcat.
  ls_fcat-fieldname = 'numb'.
  ls_fcat-reptext = '学号'.
  ls_fcat-fix_column    = ''.
  ls_fcat-no_out     = ''.
  ls_fcat-convexit = ''.
  "ls_fcat-edit     = 'X'.
  ls_fcat-checkbox = ''.
  APPEND ls_fcat TO gt_fcat."赋值ALV显示的字段


  CLEAR ls_fcat.
  ls_fcat-fieldname = 'name'.
  ls_fcat-reptext = '姓名'.
  ls_fcat-fix_column    = ''.
  ls_fcat-no_out     = ''.
  ls_fcat-convexit = ''.
  "ls_fcat-edit     = 'X'.
  ls_fcat-checkbox = ''.
  APPEND ls_fcat TO gt_fcat."赋值ALV显示的字段




  CLEAR ls_fcat.
  ls_fcat-fieldname = 'NJ'.
  ls_fcat-reptext = '年级'.
  ls_fcat-fix_column    = ''.
  ls_fcat-no_out     = ''.
  ls_fcat-convexit = ''.
  "ls_fcat-edit     = ''.
  ls_fcat-checkbox = ''.
  APPEND ls_fcat TO gt_fcat."赋值ALV显示的字段


  CLEAR ls_fcat.
  ls_fcat-fieldname = 'BJ'.
  ls_fcat-reptext = '班级'.
  ls_fcat-fix_column    = ''.
  ls_fcat-no_out     = ''.
  ls_fcat-convexit = ''.
  "ls_fcat-edit     = ''.
  ls_fcat-checkbox = ''.
  ls_fcat-emphasize = ''.
  APPEND ls_fcat TO gt_fcat."赋值ALV显示的字段

  CLEAR ls_fcat.
  ls_fcat-fieldname = 'term'.
  ls_fcat-reptext = '学期'.
  ls_fcat-fix_column    = ''.
  ls_fcat-no_out     = ''.
  ls_fcat-convexit = ''.
  "ls_fcat-edit     = ''.
  ls_fcat-checkbox = ''.
  APPEND ls_fcat TO gt_fcat."赋值ALV显示的字段

  CLEAR ls_fcat.
  ls_fcat-fieldname = 'KM'.
  ls_fcat-reptext = '科目'.
  ls_fcat-fix_column    = ''.
  ls_fcat-no_out     = ''.
  ls_fcat-convexit = ''.
  "ls_fcat-edit     = ''.
  ls_fcat-checkbox = ''.
  APPEND ls_fcat TO gt_fcat."赋值ALV显示的字段

  CLEAR ls_fcat.
  ls_fcat-fieldname = 'CJ'.
  ls_fcat-reptext = '成绩'.
  ls_fcat-fix_column    = ''.
  ls_fcat-no_out     = ''.
  ls_fcat-convexit = ''.
  "ls_fcat-edit     = ''.
  ls_fcat-checkbox = ''.
  "ls_fcat-emphasize = 'C610'.
  APPEND ls_fcat TO gt_fcat."赋值ALV显示的字段
ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_build_layout
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_build_layout .
  CLEAR: gs_layout.
  gs_layout-zebra = 'X'.
  gs_layout-cwidth_opt = 'X'.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form frm_display_alv
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_display_alv .

gs_layout-zebra = 'X'.
  gs_layout-cwidth_opt = 'X'.
  gs_layout-info_fname = 'CLR'.
  "gs_layout-ctab_fname = 'CHAR'.
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      "i_callback_user_command = 'USER_COMMAND' "调用屏幕点击事件
      i_callback_program = sy-repid
      "i_callback_pf_status_set = 'FRM_PF_STATUS' "设置gui 状态 添加打印按钮
      "i_callback_user_command  = 'FRM_USER_COMMAND'  "设置屏幕上保存按键
      is_layout_lvc      = gs_layout "设置ALV样式
      it_fieldcat_lvc    = gt_fcat "赋值ALV显示的字段
      i_save             = 'A'               " 是否保存布局
    TABLES
      t_outtab           = gt_into[] "放赋值的内表
    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.
*&---------------------------------------------------------------------*
*& Form frm_add_fieldcat
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*&      --> GT_FCAT
*&      --> P_
*&      --> P_
*&      --> P_
*&      --> P_
*&      --> P_
*&---------------------------------------------------------------------*
FORM frm_add_fieldcat  TABLES pt_fieldcat
                        USING pu_fieldname TYPE lvc_fname
                                pu_scrtext   TYPE any
                                pu_fixcol     TYPE lvc_fixcol
                                pu_no_out     TYPE lvc_noout
                                pu_convexit   TYPE convexit
                                pu_edit       TYPE lvc_edit
                                pu_checkbox   TYPE lvc_checkb.


  DATA: ls_fcat TYPE lvc_s_fcat.
  ls_fcat-fieldname = pu_fieldname.
  ls_fcat-scrtext_s =
  ls_fcat-scrtext_m =
  ls_fcat-scrtext_l =
  ls_fcat-coltext =
  ls_fcat-reptext = pu_scrtext.
  ls_fcat-fix_column     = pu_fixcol.
  ls_fcat-no_out     = pu_no_out.
  ls_fcat-convexit = pu_convexit.
  ls_fcat-edit = pu_edit.
  ls_fcat-checkbox = pu_checkbox.
  APPEND ls_fcat TO pt_fieldcat.
  CLEAR ls_fcat.
ENDFORM.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值