通过  gs_layout-box_fname  = 'SEL'.设置选择行,不能取到 SEL列的值

找资料:作者:f122300349 
来源:CSDN 
原文:https://blog.csdn.net/f122300349/article/details/5517154 
版权声明:本文为博主原创文章,转载请附上博文链接

带选择列,是个什么概念,就是在ALV的表单主体前面多了一列可供选择的,具体就看下图:

这个就是对应的选择列,通过这个可以实现对ALV数据的选择,在调用函数的ALV和面向对象的ALV实现方法存在差异,下面讲两者的方法:

1)调用函数的ALV。

通过 SLIS_LAYOUT_ALV-BOX_FIELDNAME的字段来设置,这个字段的值对应的是输出内表的一个字段名字(专门用于标记选择哪些列,选中的为‘X’),其实这种实现方法就跟平时我们增加一列复选择框用于选择的方法大致一样的,但是这种方法选择的方式比较快。
2)面向对象的ALV。

通过结构 LVC_S_LAYO-SEL_MODE的了段来设置,这个字段对应的值有以下5个:
     1、sapce,等同于B,默认的设置。

2、A(行与列的选择,无法选择单元格)。

3、B(单选,不可以多选行,不可以多选单元格)。

4、C(多选行、列,不可以多选单元格)。

5、D(多选行、列,还可以多选单元格)。

只有设置的值为‘C’或者‘D’带选择列才可以显示出来,其它值一概不行。如果ALV输出有列是可以编辑,则会覆盖了sel_mode的值,带选择列也会显示出来的哦。

通过与1)种方法比较,很容易发现2)种方法没有通过内表的一个字段值来记录哪些值没选中了,那我们如何知道哪些列被选中了呢???有办法了,通过CL_GUI_ALV_GRID-> GET_SELECTED_ROWS的方法来获取选中列对应的在输出内表中的行ID了,具体就看下面的例子了:

DATA : LT_ROW TYPE  LVC_T_ROID,    "内表          
           LS_ROW TYPE  LVC_S_ROID.    "工作区

ALV_GRID1->GET_SELECTED_ROWS
    IMPORTING
      ET_ROW_NO = LT_ROW.

LOOP  AT  LT_ROW INTO  LS_ROW.
      READ  TABLE  T_OUTPUT INDEX  LS_ROW-ROW_ID.
      IF  SY-SUBRC EQ  0 .
        T_ARG-PASS = 0 .
        APPEND  T_OUTPUT TO  T_PRINT1.
      ENDIF .
      CLEAR  T_OUTPUT.
    ENDLOOP .
---------------------
作者:f122300349
来源:CSDN
原文:https://blog.csdn.net/f122300349/article/details/5517154
版权声明:本文为博主原创文章,转载请附上博文链接!

  DATA: lv_row TYPE i,
lv_col TYPE i.
DATA: ls_row_no TYPE lvc_s_roid,
ls_row_info TYPE lvc_s_row,
ls_col_info TYPE lvc_s_col.
* CALL METHOD grf_grid->check_changed_data.
*
* CALL METHOD grf_grid->get_current_cell
* IMPORTING
* e_row = lv_row
* e_col = lv_col.
* CALL METHOD grf_grid->get_scroll_info_via_id
* IMPORTING
* es_row_no = ls_row_no
* es_row_info = ls_row_info
* es_col_info = ls_col_info. **获取所选的多行
DATA: lt_row TYPE lvc_t_roid, "内表
ls_row TYPE lvc_s_roid. "工作区 CALL METHOD grf_grid->get_selected_rows
IMPORTING
et_row_no = lt_row.
LOOP AT lt_row INTO ls_row.
READ TABLE gt_doc INTO gs_doc INDEX ls_row-row_id.
IF sy-subrc EQ .
gs_doc-sel = 'X'.
MODIFY gt_doc FROM gs_doc INDEX ls_row-row_id.
ENDIF .
ENDLOOP . gv_save_code = gv_ok_code.
CLEAR: gv_ok_code.
CASE gv_save_code. WHEN 'BACK' OR 'EXIT' OR 'CANC'.
LEAVE TO SCREEN . WHEN 'DOC'.
PERFORM frm_call_mb01. "调用过账 ENDCASE. CALL METHOD grf_grid->refresh_table_display. CALL METHOD grf_grid->set_scroll_info_via_id
EXPORTING
is_row_info = ls_row_info
is_col_info = ls_col_info
is_row_no = ls_row_no.

实现可以选择行

面向对象ALV选择列的更多相关文章

  1. 调用函数的ALV、面向对象的ALV设置带选择列

    这个就是通过对应的选择列,实现对ALV数据的选择,在调用函数的ALV和面向对象的ALV实现方法存在差异,下面讲两者的方法:1)调用函数的ALV.   通过 SLIS_LAYOUT_ALV-BOX_FI ...

  2. jqGrid选择列控件向右拖拽超出边界处理

    jqGrid选择列控件向右拖拽超出边界处理 $("#tb_DeviceInfo").jqGrid('navButtonAdd', '#jqGridPager', {         ...

  3. Devexpress GridControl中 repositoryItemCheckEdit作为选择列以及作为显示列的使用方法

    一.在gridcontrol列表控件中使用单选框作为选择列,这里有两种方式. 方式一:选择gridcontrol控件的Run Designer按钮,添加一列,设置该列的ColumnEdit为check ...

  4. scikit-learn预处理实例之一:使用FunctionTransformer选择列

    本例展示怎样在一个管道中使用FunctionTransformer.如果你知道你的数据集的第一主成分与分类任务无关,你可以使用FunctionTransformer选取除PCA转化的数据的第一列之外的 ...

  5. pandas 选择列或者添加列生成新的DataFrame

    选择某些列 import pandas as pd # 从Excel中读取数据,生成DataFrame数据 # 导入Excel路径和sheet name df = pd.read_excel(exce ...

  6. ALV行 列颜色设置

    ALV的颜色设置分为3种:行.列.单元格.   1.列颜色的设置   在 slis_t_fieldcat_alv-emphasize 中,写入需要的颜色代码.   Eg:   DATA: fc TYP ...

  7. mysql选择列建立索引选择

    1. 选择Where子句中筛选性好的列,即列中数据大量不重复 2. 索引名最好 idx_ 开头 3. 包含在 Order by ; Group By; Distinct 中的字段可以添加索引,可以提高 ...

  8. GridControl 选择列、复选框全选(下)

    功能:        删除选中行 前台调用: string str=""; GridDelete(gv, "chk", out str); MessageBox ...

  9. GridControl 选择列、复选框全选(上)

    说明: GirdControl 中添加一列,这一列不是写在数据库中的,而是代码中添加的. 图示: 底层类代码: #region GridControl 全选 /// <summary> / ...

随机推荐

  1. SP116 INTERVAL - Intervals

    题意翻译 区间取数 题目描述 有n个区间,在区间[ai,bi]中至少取任意互不相同的ci个整数.求在满足n个区间的情况下,至少要取多少个正整数. 输入输出格式 输入格式 多组数据. 第一行的一个整数T ...

  2. Nginx中ngx_http_upstream_module模块

    用于将多个服务器器定义成服务器器组,⽽而由 proxy_pass , fastcgi_pass 等指令进⾏行行引⽤用upstream backend {server backend1.example. ...

  3. 甘特图控件如何自定义绘图?DevExpress Winforms帮你忙

    DevExpress Winforms Controls 内置140多个UI控件和库,完美构建流畅.美观且易于使用的应用程序.无论是Office风格的界面,还是分析处理大批量的业务数据,DevExpr ...

  4. gRPC 到 JSON 代理生成器 grpc-gateway

    grpc-gateway是protoc的插件,它读取protobuf服务定义并生成反向代理服务器,该服务将RESTful HTTP API转换为gRPC. 这个服务是根据你的服务定义中的google. ...

  5. day42_Oracle学习笔记_01

    一.Oracle Database 的基本概念 1.1.一个Oracle服务器 详解如下: 一个Oracle服务器是一个关系型数据管理系统(RDBMS),它提供开放的,全面的,近乎完整的信息管理.   ...

  6. MVC、MVP、MVVM概念解析

    详细请看阮一峰网站 1.MVC Model(数据) - View(视图) - Controller(业务逻辑) 通信方式:单向 交互方式两种,如下 应用:(BackBone)不完全和设计模式一致 2. ...

  7. Gradle 如何打包 Spring Boot 可执行 JAR

    如何在 Gradle 中配置一个项目可以打包为 Spring Boot 可执行 Jar? 你首先需要添加到 org.springframework.boot 到插件中: 例如下面的代码: plugin ...

  8. AtCoder Beginner Contest 128 F - Frog Jump

    题意 有一只青蛙,有\(0, 1, \cdots, N - 1\)个荷叶.每个荷叶上有权值\(s_i\). 选定\(A\), \(B\),初始分数为\(0\). 当前位置为\(x\): 对于\(y = ...

  9. mac 安装oh-my-zsh的问题

    安装完,如果想切换回mac原来的bash终端,可以: chsh -s /bin/bash 反之,切换回zsh: chsh -s /bin/zsh

  10. 如何用 Windows Live Writer 和 Word 2013 分别发表博客到Cnblog 和CSDN

    ps CSDN 老是505错误,放弃了 为什么会写这篇 最近写博客在 Cnblog 上面写博客, 发现图片不能复制了直接粘贴上,这对于把博客当随手笔记的人来说无疑非常痛苦.求助于博客园,他们让我用 W ...