用 Function Module REUSE_ALV_GRID_DISPLAY 处理 ALV Checkbox 时,只能整列灰显Checkbox。
而用 Function Module REUSE_ALV_GRID_DISPLAY_LVC 以及 OO 的方法才能实现特定行的灰显Checkbox。
OO 方法实现可参考程序: BCALV_EDIT_05。

用 Function Module REUSE_ALV_GRID_DISPLAY_LVC 的示例如下:

FORM frm_output_data .
  DATA: lv_repid LIKE sy-repid.

DATA: lt_fieldcat TYPE lvc_t_fcat.
  DATA: lv_fieldcat TYPE lvc_s_fcat.
  DATA: lv_layout TYPE lvc_s_layo.
  DATA: lt_events TYPE slis_t_event.
  DATA: wa_grid_set TYPE lvc_s_glay.

DEFINE p1f.
    if lt_fieldcat[] is initial.
      lv_fieldcat-col_pos = 1.
    else.
      add 1 to lv_fieldcat-col_pos.
    endif.

lv_fieldcat-fieldname =  &1.
    lv_fieldcat-tabname = 'IT_OUT'.
    lv_fieldcat-scrtext_l = &2.
    lv_fieldcat-outputlen = &3 .

if lv_fieldcat-fieldname = 'BOX'.
      lv_fieldcat-edit          = 'X'.
      lv_fieldcat-checkbox      = 'X'.
    else.
      clear lv_fieldcat-checkbox.
      clear lv_fieldcat-edit.
    endif.
    lv_fieldcat-fix_column = ''.
    append lv_fieldcat to lt_fieldcat.
  END-OF-DEFINITION.

"mark items that already exist in the table as pink,
  "and grey out the checkbox of items that already exist in the table or quantity equal zero.
  PERFORM display_color.

lv_repid = sy-repid.
  lv_layout-info_fname = 'COLOR'.     " identify the field of color setting
  lv_layout-stylefname = 'IT_STYLE'.  " identify the sub internal table of style setting.

REFRESH lt_fieldcat.
*Populate structure of ALV field category

p1f 'BOX' '' 2.
  p1f 'MATNR' 'Material No.'     18.
  p1f 'MAKTX' 'Material Description'    40.
  p1f 'WERKS' 'Plant'   4.
  p1f 'LGORT' 'Storage Location'   4.
  p1f 'SERNR' 'Serial No.'   18.
  p1f 'SOBKZ' 'Special Stock'     1.
  p1f 'VBELN' 'Sales Order'   10.
  p1f 'POSNR' 'Item No.'   6.
  p1f 'KALAB' 'Quantity'   13.
  p1f 'MEINS' 'Unit'   3.

wa_grid_set-edt_cll_cb = 'X'.

*Call 'Reuse function module' to display list as ALV format, this function module can be used to grey out specified field.
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      i_callback_program          = lv_repid
      i_save                      = 'X'
      i_callback_pf_status_set    = 'SET_PF_STATUS'
      i_callback_user_command     = 'USER_COMMAND'
      is_layout_lvc               = lv_layout
      it_fieldcat_lvc             = lt_fieldcat
      i_callback_html_end_of_list = 'FRM_END_OF_LIST'
*      it_events                   = lt_events
      I_GRID_SETTINGS             = wa_grid_set
    TABLES
      t_outtab                    = it_out
    EXCEPTIONS
      program_error               = 1
      OTHERS                      = 2.
  IF sy-subrc <> 0.

ENDIF.

ENDFORM.                    " FRM_OUTPUT_DATA

FORM display_color .
  DATA: wa_style TYPE lvc_s_styl.

IF it_out[] IS NOT INITIAL.
    CLEAR: it_zrtnstc, it_zrtnstc[].
    SELECT *
      INTO TABLE it_zrtnstc
      FROM zrtnstc
      FOR ALL ENTRIES IN it_out
      WHERE matnr = it_out-matnr
        AND sernr = it_out-sernr.
    SORT it_zrtnstc BY matnr sernr.
  ENDIF.

LOOP AT it_out.
    READ TABLE it_zrtnstc WITH KEY matnr = it_out-matnr sernr = it_out-sernr BINARY SEARCH.
    IF sy-subrc = 0.
      IF it_zrtnstc-flag = 'X'. " material by which the po was created don't need to be stored again.
        DELETE it_out.
        CONTINUE.
      ELSE.
        it_out-color = 'C600'. " mark the items which are already in the table ZRTNSTC as pink.
        MODIFY it_out TRANSPORTING color.
      ENDIF.
    ENDIF.

" if quantity equals zero or already exist in the table, then grey out the check box.
    IF it_out-kalab = 0 OR it_out-color IS NOT INITIAL.
      CLEAR: wa_style, it_out-it_style.
      wa_style-fieldname = 'BOX'.
      wa_style-style = cl_gui_alv_grid=>mc_style_disabled.
      APPEND wa_style TO it_out-it_style.
      MODIFY it_out TRANSPORTING it_style.
    ENDIF.
  ENDLOOP.
ENDFORM.                    " display_color

显示效果如下:

ALV Checkbox 单行灰显相关推荐

  1. 使用自定义材质球,实现NGUI屏幕溶解和灰显

    UITexture实现的溶解: 重设UITeture的材质球实现上述效果,把当前屏幕渲染的Texture2D丢给UITexture,即可实现UI屏幕特效,背景模糊等都可以. 难点主要是实时刷新问题 解 ...

  2. android sdk是灰的,Android Studio 2.3 sdk管理器标签灰显

    Android Studio 2.3 - >配置 - > SDK管理器. 这些选项卡呈灰色显示: SDK工具,SDK更新站点.此外,"Show Package Details&q ...

  3. UGUI 图片灰显裁剪

    今天项目出现一个问题,我们灰显的图片无法被viewport进行裁剪,因为灰显的图片使用了我们自定义的shader,然而里面却没有裁剪的功能. 所以网上搜了一下, 大概解决办法就是,用原生的UGUI的s ...

  4. Android WebView 视频播放,全屏按钮不显示或灰显解决方案

    Android WebView 视频播放,全屏按钮不显示或灰显解决方案 背景 问题定位 背景 在Android开发中,遇到了如下问题:Activity内嵌WebView,加载有视频的页面时,视频无法全 ...

  5. SystemUI添加第三方快捷开关时灰显问题分析

    作者:neek.chen Android7.0上不仅有默认的快捷快关(QSTile),也允许客户自行添加第三方快捷开关(CustomTile).本文只介绍在绑定第三方CustomTile时遇到的间歇性 ...

  6. elementUI checkbox选中回显操作注意事项

    具体的详情介绍请看,elementUI checkbox. checkbox的回显操作是基于 el-checkbox-group 标签v-module绑定的数组来实现回显,这个数组可以是一维数组,也可 ...

  7. vue中的el-input设置灰显不可编辑

    代码如下 <el-input disabled = "true"/> 上面的代码能实现输入框灰显,但是控制台会报错,具体报错如下: invalid prop: type ...

  8. .py默认打开方式修改为cmd之后无法改回,始终默认打开方式灰显的解决方案(其他文件类型方法同)

    问题背景: 初学Python,使用 认用cmd.exe打开.py文件,导致默认打开方式灰显无法改回. 摸索查找解决方案不易,耗费时间,特此总结经验分享给大家,望有帮助! 疑问请留言,转载请注出处,谢谢 ...

  9. alv+checkbox+select all

    标准程序  bcalv_edit_05  提供了alv使用checkbox和各种操作.  下面程序将bcalv_edit_05  简化了..要运行程序,需要自己创建 screen和GUI-status ...

最新文章

  1. 单链表倒数第K个节点的查找和显示
  2. tensorflow-计算图
  3. c 用mysql导出xls文件怎么打开_mysql——xls表格的导出和导入(重点)
  4. vs2013链接Mysql时出现 (由于找不到libmysql.dll,无法继续执行代码。重新安装程序可能会解决此问题)
  5. 推荐Linux内核书籍
  6. hql 查询条件 set集合_Redis从入门到深入-Sorted_set的value
  7. php 建议查询DNS解析状态工具
  8. Airflow 中文文档:项目
  9. STM8单片机串口发送引脚和接收引脚分开使用
  10. html5中可用的颜色,jquery – 如何知道HTML5输入类型颜色是否可用作颜色选择器?...
  11. 第三章 SQL知识点总结
  12. bat执行cmd命令_kettle定时任务pan.bat和kitchen.bat
  13. HTML+CSS+JS在线客服对话框迷你版
  14. STC89C52单片机学习笔记(一)
  15. 【业务安全06】接口参数账号修改漏洞——基于metinfov4.0平台
  16. 消息中间件-Activemq之Master-Slaver
  17. 作为IT面试官,我如何考核计算机专业毕业生?作为培训班老师,我又如何提升他们?
  18. 【追剧达人JAVA修复版】苹果CMS10原生APP修改版 影视APP源码附安装教程
  19. python中config(state=disabled)_解决python flask中config配置管理的问题
  20. java需要学哪些知识习

热门文章

  1. ffmpeg 和 SDL 教程2:输出到屏幕
  2. C#泛型-泛型集合DictionaryK,V
  3. Linux socket关闭连接shutdown与close
  4. 高中物理公式、规律汇编表
  5. 【Mac】安装 tesserocr 遇到的一些坑(‘cinttypes' file not found)
  6. 微软发布Azure Cosmos DB产品以及新的物联网解决方案
  7. webpack-dev-server 和webpack-hot-middleware
  8. 职场升职加薪不二法则,德到领袖偷偷告诉你
  9. 如何将PPT转换成手机APP
  10. 深入学习Java8 Lambda (default method, lambda, function reference, java.util.function 包)