首页 > 其他分享 >【OO ALV行、列和单元格设置颜色和可编辑属性】

【OO ALV行、列和单元格设置颜色和可编辑属性】

时间:2024-12-18 14:29:39浏览次数:7  
标签:OO GW COLOR 单元格 STU 设置 ALV GTY

文章目录

概述

OO ALV,是指通过面向对象(object-Oriented)的方式实现的ALV输出
基本使用原理:

  • 通过界面调用,在界面的Customer Control控件中,输出ALV

CLASS ALV优势:

  • 使用面向对象的编程方式
  • 使用容器,可以在一个界面中指定位置进行ALV的输出

设置fieldcat

  • 定义:
    内表:LVC_T_FCAT
    结构:LVC_S_FCAT
  • 执行ALV输出前,对fieldcat表单进行赋值
  • 调用ALV输出方法时,传值给IT_FIELDCATALOG
    以下是fieldcat字段的作用总结表格:
字段名描述
COL_POS指定列的位置
FIELDNAME定义字段的名称
COLTEXT设置列的文本描述
KEY指定字段是否为关键字段
EDIT指示字段是否可编辑
OUTPUTLEN设置字段的输出长度
F4AVAILABL指定字段是否可用F4帮助
CHECKBOX指示字段是否为复选框
EMPHASIZE设置字段是否需要突出显示(高亮)

设置layout

  • 定义:
    结构:LVC_S_LAYO
  • 执行ALV输出前,对layout结构进行赋值
  • 调用ALV输出方法时,传值给IS_LAYOUT
字段名描述
CWIDTH_OPT最优化宽度SPACE, ‘X’
GRID_TITLE标题,在网格和工具条之间最长70个字符
NO_TOOLBAR隐藏工具条SPACE, ‘X’
NO_VGRIDLN隐藏垂直线SPACE, ‘X’
SEL_MODE选择模式SPACE, ‘A’, ‘B’, ‘C’, ‘D’
CTAB_FNAME带有复杂单元格颜色编码的字段名称最长30个字符
INFO_FNAME带有简单行彩色代码的字段名称最长30个字符
ZEBRA可选行颜色,如果设置了,出现了间隔色带SPACE, ‘X’
STYLEFNAME字段格式-

颜色设置

颜色值

颜色值的设置:C+X(颜色:1~7)X(是否加重:1/0)X(是否反色1/0)

以列为单位

在这里插入图片描述
在FIELDCAT中给EMPHASIZE字段赋值
在这里插入图片描述
效果

在这里插入图片描述

以行为单位

  • 在内表中增加一个字段,类型为CHAR,至少长度为4,例COLOR
* 根据需要修改结构体
TYPES: BEGIN OF GTY_STUDENT.
         INCLUDE STRUCTURE ZSTUDENT_JSM_01.
TYPES:   COLOR TYPE CHAR4,
*         COLOR TYPE LVC_T_SCOL,
       END OF GTY_STUDENT.
  • 给向输出内表获取数据时,给COLOR字段赋值
FORM GRM_GET_DATA .

  SELECT *
    FROM ZSTUDENT_JSM_01
    INTO CORRESPONDING FIELDS OF TABLE GTY_STU
    WHERE ZCODE IN S_ID.

  LOOP AT GTY_STU INTO GW_STU.
* 单元格颜色设置
    IF GW_STU-SEX IS INITIAL.
     GW_STU-COLOR = 'C610'.
    ENDIF.
    MODIFY GTY_STU FROM GW_STU.
  ENDLOOP.

ENDFORM.
  • 设置LAYOUT,给INFO_FNAME字段赋值颜色字段名称,例COLOR
    在这里插入图片描述
    效果
    在这里插入图片描述

以单元格为单位

  • 在内表中增加一个字段,类型为LVC_T_SCOL,例COLOR
* 根据需要修改结构体
TYPES: BEGIN OF GTY_STUDENT.
         INCLUDE STRUCTURE ZSTUDENT_JSM_01.
TYPES:   COLOR TYPE LVC_T_SCOL, 
       END OF GTY_STUDENT.
  • 在向输出内表取数据时,通过结构给COLOR字段内表赋值
FORM GRM_GET_DATA .
  DATA LS_SCOL LIKE LINE OF GW_STU-COLOR.
  SELECT *
    FROM ZSTUDENT_JSM_01
    INTO CORRESPONDING FIELDS OF TABLE GTY_STU
    WHERE ZCODE IN S_ID.

  LOOP AT GTY_STU INTO GW_STU.
* 单元格颜色设置
    IF GW_STU-SEX IS INITIAL.
      LS_SCOL-FNAME = 'SEX'.
      LS_SCOL-COLOR-COL = '3'.
      APPEND LS_SCOL TO GW_STU-COLOR.
    ENDIF.
    MODIFY GTY_STU FROM GW_STU.
  ENDLOOP.

ENDFORM.
  • 设置LAYOUT,给CTAB_FNAME字段赋值颜色字段名称,例COLOR
    在这里插入图片描述
    效果
    在这里插入图片描述

可修改属性设置

以表单为单位

  • 设置LAYOUT-EDIT,为X,表示可修改
    在这里插入图片描述
    效果
    在这里插入图片描述

以列为单位

  • 设置FIELDCAT-EDIT字段,为X,表示列可修改
    在这里插入图片描述
  • 在字段设置中指定了学生姓名字段的编辑状态为可编辑状态
    在这里插入图片描述
    效果
    在这里插入图片描述

以单元格为单位

1.在内表中增加一个字段,类型为LVC_T_STYL,例CELLSTL

* 根据需要修改结构体
TYPES: BEGIN OF GTY_STUDENT.
         INCLUDE STRUCTURE ZSTUDENT_JSM_01.
TYPES:   COLOR TYPE CHAR4,
         CELLSTL TYPE LVC_T_STYL,
       END OF GTY_STUDENT.

2.在需要设置修改属性的位置,通过结构给CELLSTL字段内表赋值

  • FIELDNAME,需要设置属性的字段名
  • STYLE,可修改属性:
    不可修改:CL_GU_ALV_GRID=>MC_STYLE_DISABLED
    可修改:CL_GUI_ALV_GRID=>MC_STYLE_ENABLED
FORM GRM_GET_DATA .
  DATA LS_STYL TYPE LVC_S_STYL.

  SELECT *
    FROM ZSTUDENT_JSM_01
    INTO CORRESPONDING FIELDS OF TABLE GTY_STU
    WHERE ZCODE IN S_ID.

  LOOP AT GTY_STU INTO GW_STU.
* 单元格颜色设置
*    IF GW_STU-SEX IS INITIAL.
*      GW_STU-COLOR = 'C610'.
*    ENDIF.

* 单元格可修改设置
    IF GW_STU-SEX IS INITIAL.
      LS_STYL-FIELDNAME = 'SEX'.
      LS_STYL-STYLE     = CL_GUI_ALV_GRID=>MC_STYLE_ENABLED."ready for input
      APPEND LS_STYL TO GW_STU-CELLSTL .
    ENDIF.

    MODIFY GTY_STU FROM GW_STU.
  ENDLOOP.

ENDFORM.

3.设置LAYOUT,给STYLEFNAME字段赋值修改属性的字段名,例CELLSTL
在这里插入图片描述

以上步骤做完后还需要检查ALV表格初始化后是否有调用set_ready_for_input这个方法:
set_ready_for_input:用于控制ALV网格的输入状态。
i_ready_for_input:
1:表示将ALV设置为可输入状态,用户可以在表格中进行编辑、修改等操作。
0:表示将ALV设置为只读状态,用户无法编辑表格中的数据。

  CALL METHOD G_GRID_ALV->SET_TABLE_FOR_FIRST_DISPLAY
      EXPORTING
        IS_LAYOUT            = GW_LAYOUT_ALV
        IT_TOOLBAR_EXCLUDING = GT_EXCLUDE_ALV
        I_SAVE               = 'A'
        IS_VARIANT           = LW_VARIANT
      CHANGING
        IT_FIELDCATALOG      = GT_FIELDCAT_ALV
        IT_OUTTAB            = GTY_STU[].

    CALL METHOD G_GRID_ALV->SET_READY_FOR_INPUT
      EXPORTING
        I_READY_FOR_INPUT = 1.

效果
在这里插入图片描述

4.特别的,如果将某一列中部分字段设置为可修改状态,一般通过以下方式完成:

  • 在FIELDCAT中,设置该列属性为可修改
  • 在表单赋值时,将不应为可修改状态的字段,设置为不可修改

标签:OO,GW,COLOR,单元格,STU,设置,ALV,GTY
From: https://blog.csdn.net/irisawy/article/details/144497205

相关文章

  • 基于Bootstrap的Markdown编辑器插件
    Bootstrap-Markdown是一款基于Bootstrap的所见即所得的Markdown编辑器。Bootstrap-Markdown使用简单,并提供大量的API来控制Markdown编辑器的行为,非常实用。在线预览   下载  使用方法在页面中引入bootstrap相关文件,jquery,以及bootstrap-markdown.min.css和bootstrap-m......
  • 基于Springboot健身房管理系统【附源码+文档】
    ......
  • Bootstrap popover功能扩展jquery插件
    这是一款Bootstrappopover功能扩展jquery插件。该jquery插件在原生Bootstrappopover功能的基础上,添加了一些新的功能,例如自动定位,支持情景模式等。在线演示 下载  使用方法在页面中引入jquery和bootstrap相关文件,以及bootstrap-popover-x.css和bootstrap-popover-x.js......
  • 欢迎 PaliGemma 2 – 来自 Google 的新视觉语言模型
    我们很高兴迎来Google全新的视觉语言模型PaliGemma2,这是PaliGemma的一个新版本。与其前代产品一样,PaliGemma2使用强大的SigLIP进行视觉处理,但在文本解码部分升级到了最新的Gemma2。模型规模和输入分辨率PaliGemma2提供了新的预训练模型,参数规模包括3B、10B和......
  • 从零基础开始实现一个Spring Boot + Vue 项目的详细步骤指南
    一、准备工作1.开发环境搭建安装JDK(JavaDevelopmentKit):前往Oracle官网(https://www.oracle.com/java/technologies/javase-jdk11-downloads.html,以JDK11为例)下载适合你操作系统的JDK安装包,按照安装向导完成安装。安装完成后,配置系统环境变量,确保在命令行中能通过ja......
  • 对于使用exe4j打包,出现“NoClassDefFoundError: BOOT-INF/classes”的解决方案
    jar使用exe4j打包exe,出现NoClassDefFoundError:BOOT-INF/classes注意选取的jar包是使用build,而不是maven中的install本文介绍解决这个方法的方案点击ProjectStructure按照如图所示选择选择mainclass,选择你要打的main如果遇到/META-INF/MANIFEST.MF’alreadyexist......
  • Mac终端安装Jupyter Notebook
    1.Mac终端安装JupyterNotebookJupyter官方安装网址1.1先更新一下pip,然后安装JupyterNotebookpip3install--upgradepippip3installjupyter1.2配置环境变量安装完Jupyter之后,在终端输入jupyternotebook可能会遇到jupytercommandnotfound的情况。这是因为Jupyte......
  • PbootCMS 如何在全站范围内调用 TAG 标签
    描述:如何在PbootCMS的全站范围内调用所有TAG标签。解决方案:使用 {pboot:tags} 标签调用所有TAG标签。具体步骤:编写模板代码:html <divclass="tags"><h2>所有标签</h2><ul>{pboot:tags}<li>[tags:text]</li>{/pboot:tag......
  • PbootCMS有哪些主要特点?
    PbootCMS作为一款高效、简洁、强悍的企业网站开发建设管理系统,具有许多显著的特点。以下是PbootCMS的主要特点及其优势:高效、简洁、强悍的模板标签:易于上手:PbootCMS的模板标签设计简单,即使不懂编程的用户也能快速上手,轻松开发企业网站。功能强大:尽管标签简单,但功能却非常强......
  • PbootCMS如何配置多层级URL地址模式?
    PbootCMS提供了非常灵活的多层级URL地址模式配置,使得网站的URL结构更加友好和易于管理。以下是详细的配置方法和应用场景:栏目自定义URL在PbootCMS中,可以通过在栏目的URL名称中进行定义来实现多层级URL。具体操作如下:进入PbootCMS后台管理系统。导航到“栏目管理”模块。......