ALV Checkbox 单行灰显

转载 2012年03月21日 15:04:50
用 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 .
  DATAlv_repid LIKE sy-repid.

  DATAlt_fieldcat TYPE lvc_t_fcat.
  DATAlv_fieldcat TYPE lvc_s_fcat.
  DATAlv_layout TYPE lvc_s_layo.
  DATAlt_events TYPE slis_t_event.
  DATAwa_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 .
  DATAwa_style TYPE lvc_s_styl.

  IF it_out[] IS NOT INITIAL.
    CLEARit_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.
      CLEARwa_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 <wbr>Checkbox <wbr>单行灰显

相关文章推荐

oo alv dropdownlist & checkbox

*&---------------------------------------------------* *& Author : 刘心愿 ...

ALV checkbox实例

PROGRAM BCALV_EDIT_05. CLASS LCL_EVENT_RECEIVER DEFINITION DEFERRED.  "for event handling DATA: O...

Display fields as checkbox, pushbutton, dropdownbox in ALV

REPORT  ztest_6.    **********************************************************************  *Table D...

alv+checkbox+select all

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

关于CheckBox状态保存并回显的例子

上面是一个CheckBox状态保存的实例 大家也可以在谷歌官方文档中去看下! 代码很简单 主要看下注释 这样便于理解 有什么问题请下方留言告知!共同学习进步!

checkbox选择根据后台List数据进行回显

需求:记住用户已经选择的 checkbox 选项,当用户再次对该 checkbox 进行选择操作时,应对该用户已经选择的 checkbox 选项进行选中操作。 示例代码: checkbox,j...

选择指定数量后checkbox不可选(变灰)javascript代码

选择3个后可以看到效果   function disableCheckBox() { var obj=document.getElementsByTagName("input") ...

页面单行自动滚动

  • 2015-02-26 15:21
  • 21KB
  • 下载

android grid 单行 换屏

  • 2014-09-17 21:18
  • 104KB
  • 下载

ALV的双击使用

<!-- span {font-family:"Courier New"; font-size:10pt; color:rgb(0,0,0); background:none rep...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)