ABAP - Function ALV 07 单元格编辑

  • 使用REUSE_ALV_GRID_DISPLAY_LVC显示ALV时,可以将列、行或者具体的某个单元格设置成可编辑能输入状态.
  1. 列可编辑只要将Fieldcat中的字段edit设置成‘X',整列就变成能输入的了,LVC_S_FCAT-EDIT = 'X'.
    GT_FIELDCAT TYPE LVC_S_FCAT.
    gW_FIELDCAT LIKE LINE OF GT_FIELDCAT....
    GW_FIELDCAT-EDIT = 'X'.
    APPEND GW_FIELDCAT-EDIT TO GT_FIELDCAT.
  2.  整个ALV可编辑 ,Layout的字段edit设置成'X'。
    gs_layout type LVC_S_LAYO.gs_layout-edit = 'X'.

     

  3. 单元格不可编辑 。如果要让单元格变成可输入,需要在alv输出内表中多定义一个保存单元格style的字段(类型:lvc_t_styl ),然后填入style属性(可编辑或者是不可编辑),最后还要在layout-stylefname中指定style的字段名。
  • 内表结构中增加一个字段
    TYPES:BEGIN OF ty_data,sel TYPE char1,style TYPE lvc_t_styl,  "将该字段设置为保存编辑状态的字段END OF ty_data.
  •  Fieldcat 赋值(  MC_STYLE_DISABLED:禁止输入、MC_STYLE_ENABLED:可输入。)
    DATA:gw_edit TYPE lvc_s_styl,gt_edit TYPE lvc_t_styl.gw_edit-fieldname = 'SEL'.
    gw_edit-style     = cl_gui_alv_grid=>mc_style_disabled."设置为不可输入
    INSERT gwa_edit INTO TABLE git_edit.INSERT LINES OF gt_edit INTO TABLE gw_data-style.      "给ALV内表结构赋值
    
     
  • Layout赋值 
    DATA gs_layout TYPE lvc_s_layo.gs_layout-stylefname = 'STYLE'. "指定保存编辑状态的字段名

     

  • 显示效果,可以看到已经有些灰色了...点击也是单击不到的

  • 完整代码 
    TYPES:BEGIN OF ty_data,sel    TYPE char1,light  TYPE iconname,name   TYPE char10,score  TYPE p LENGTH 2 DECIMALS 1,remark TYPE c LENGTH 20,style  TYPE lvc_t_styl,END OF ty_data.DATA gt_data TYPE TABLE OF ty_data.
    DATA gw_data TYPE ty_data.DATA:gw_edit TYPE lvc_s_styl,gt_edit TYPE lvc_t_styl.** Layout  变量定义
    DATA gs_layout   TYPE lvc_s_layo.** Fieldcat 变量定义
    DATA:gt_fieldcat TYPE lvc_t_fcat,gs_fieldcat LIKE LINE OF gt_fieldcat.** FieldCat的宏
    DATA gv_pos TYPE i.DEFINE %%add_fieldcat.gv_pos = gv_pos + 1.gs_fieldcat-col_pos = gv_pos.gs_fieldcat-fieldname = &1.gs_fieldcat-scrtext_m = &2.CASE &1.WHEN 'SEL'.gs_fieldcat-checkbox = 'X'. "当做选择框显示gs_fieldcat-edit     = 'X'. "该字段可以编辑ENDCASE.APPEND gs_fieldcat TO gt_fieldcat.CLEAR gs_fieldcat.
    END-OF-DEFINITION.START-OF-SELECTION.PERFORM get_data.PERFORM dis_falv.FORM get_data.gt_data[] = VALUE #(( sel = '' light = '' name = 'TOM'    score = '58')( sel = '' light = '' name = 'JEERY'  score = '98')( sel = '' light = '' name = 'MASTER' score = '68')).LOOP AT gt_data INTO gw_data.IF gw_data-score < 60.gw_data-light =  icon_red_light.gw_data-remark = '不及格'.ELSEIF gw_data-score >= 60 AND  gw_data-score < 85.gw_data-light =  ICON_yellow_LIGHT.gw_data-remark = '良好'.ELSEIF gw_data-score >= 85.gw_data-light =  ICON_green_LIGHT.gw_data-remark = '优秀'.gw_edit-fieldname = 'SEL'.gw_edit-style = cl_gui_alv_grid=>mc_style_disabled."设置为不可输入INSERT gw_edit INTO TABLE gt_edit.INSERT LINES OF gt_edit INTO TABLE gw_data-style.CLEAR gt_edit[].ENDIF.MODIFY gt_data FROM gw_data.ENDLOOP.
    ENDFORM.FORM dis_falv.
    ** Fieldcat字段映射处理%%add_fieldcat:'SEL'      '选择',  "( 前面字段值不可变 后面字段描述可变 每一行都是)'LIGHT'    '状态','REMARK'   '备注','NAME'     '姓名','SCORE'    '分数'.** Layout布局处理gs_layout-cwidth_opt = 'X'.     "自动优化列宽 (可以使用**在一行代码面前注释掉 看看ALV会有什么效果)gs_layout-zebra = 'X'.          "斑马纹输出gs_layout-stylefname = 'STYLE'. "单元格可编辑
    ** 调用FunctionALV需要传入的参数:展示数据,FieldCat,Layout,StatusCALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'EXPORTINGi_callback_program       = sy-repidi_callback_pf_status_set = 'FRM_SET_STATUS'is_layout_lvc            = gs_layoutit_fieldcat_lvc          = gt_fieldcatTABLESt_outtab                 = gt_data[]EXCEPTIONSprogram_error            = 1OTHERS                   = 2.
    ENDFORM.FORM frm_set_status USING p_extab TYPE slis_t_extab.SET PF-STATUS 'STANDARD'.
    ENDFORM.

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/493319.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VUE基础知识九 ElementUI项目

ElementUI官网 一 项目 最终完成的效果&#xff1a; 切换上边的不同按钮&#xff0c;下方显示不同的表格数据 在src/components下新建不同业务组件的文件夹 1.1 搭建项目 使用脚手架搭建项目后&#xff0c;引入ElementUI&#xff08;搭建、引入ElementUI步骤在第七节里已…

【hot100】跟着小王一起刷leetcode -- 49. 字母异位词分组

【【hot100】跟着小王一起刷leetcode -- 49. 字母异位词分组 49. 字母异位词分组题目解读解题思路代码实现 总结 49. 字母异位词分组 题目解读 49. 字母异位词分组 ok&#xff0c;兄弟们&#xff0c;咱们来看看这道题&#xff0c;很明显哈&#xff0c;这里的关键词是字母异位…

【K8s】初识PV和PVC

​ 目录 收起 O、致谢 一、前言 二、Volume 2.1 什么是Volume 2.2 为什么要引入Volume 2.3 Volume类型有哪些 2.4 Volume如何使用 2.4.1 通过emptyDir共享数据 2.4.2 使用HostPath挂载宿主机文件 2.4.3 挂载NFS至容器 三、PV和PVC 3.1 什么是PV和PVC 3.2 为什么要引入PV和PVC 3…

Educational Codeforces Round 160 (Rated for Div. 2) D. Array Collapse(笛卡尔树+DP)

原题链接&#xff1a;D. Array Collapse 题目大意&#xff1a; 给你一个长度为 n n n 的排列 p p p &#xff0c;排列的定义为 [ 1 , 2 , 3 , . . , n ] [1,2,3,..,n] [1,2,3,..,n] 中每个数都出现 恰好 一次。 你可以做 任意多次 这样的操作&#xff1a; 选出一个任意长度…

PROTEL

PROTEL是什么 Protel软件是由Altium公司&#xff08;原为Protel Technology公司&#xff09;开发的一款电子设计自动化&#xff08;EDA&#xff09;软件&#xff0c;主要用于电子电路设计和印制电路板&#xff08;PCB&#xff09;制作。 学习Protel 99 SE的大致过程 原理图文…

芯科科技与Arduino携手推动Matter普及化

双方的合作可助力开发人员在两分钟内将新开发板配置入网 致力于以安全、智能无线连接技术&#xff0c;建立更互联世界的全球领导厂商Silicon Labs&#xff08;亦称“芯科科技”&#xff0c;NASDAQ&#xff1a;SLAB&#xff09;日前宣布&#xff0c;公司与开源硬件和软件领域的…

【MySQL】表的约束 -- 详解

表中一定要有各种约束&#xff0c;通过约束让我们在未来插入数据库表中的数据是符合预期的。约束本质是通过技术手段倒逼程序员插入正确的数据&#xff0c;反过来站在 MySQL 的角度&#xff0c;凡是插入进来的数据都是符合数据约束的。约束的最终目标&#xff1a;保证数据的完整…

【c语言】字符函数和字符串函数(上)

前言 在编程的过程中&#xff0c;我们经常要处理字符和字符串&#xff0c;为了⽅便操作字符和字符串&#xff0c;C语⾔标准库中提供了⼀系列库函数~ 欢迎关注个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗~ 如有错误&#xff0c;欢迎指出~ 目录 前言 1. 字符分…

matlab采用不同数值方法求解微分方程

1、内容简介 略 60-可以交流、咨询、答疑 欧拉方法、改进欧拉、RK4、米尔斯坦方法求解微分方程 2、内容说明 略 lc; close all; clear all; % 参数赋值 global a global b global h a 1; b 2; Ni 1000; % 总步数 h 0.001; % 步长Xt1(1:Ni) 0; Xt2(…

【析】装卸一体化车辆路径问题的自适应并行遗传算法

0 引言 国内外有关 &#xff36;&#xff32;&#xff30;&#xff33;&#xff30;&#xff24;的文献较多&#xff0c;求解目标多以最小化车辆行驶距离为主&#xff0c;但现实中可能存在由租赁费用产生的单次派出成本&#xff0c;需要综合考 虑单次派车成本和配送路径成本。…

数据库系统概论(超详解!!!) 第一节 绪论

1.四个基本概念 1.数据&#xff08;Data&#xff09; 数据&#xff08;Data&#xff09;是数据库中存储的基本对象 数据的定义&#xff1a;描述事物的符号记录 数据的种类&#xff1a;数字、文字、图形、图像、音频、视频、学生的档案记录等 数据的含义称为数据的语义&…

设计模式(六)代理模式

相关文章设计模式系列 1.代理模式简介 代理模式介绍 代理模式也叫委托模式&#xff0c;是结构型设计模式的一种。在现实生活中我们用到类似代理模式的场景有很多&#xff0c;比如代购、代理上网、打官司等。 定义 为其他对象提供一种代理以控制这个对象的访问。 代理模式…