https://www.cnblogs.com/sapSB/p/8532072.html

参考这个,做扩展,有些人喜欢用OO ALV有些喜欢用普通的CALL FUNC ALV。。。我只用LVC。。。

先说明一下,每个报表程序,我都会自定义工具栏,只是为了以防万一。工具栏有个一键填充的功能,可以把ALV常用的按钮都添加到工具栏,所以不需要自己去想加什么按钮。。

双击按钮进入工具栏界面,

入图,选择调整模板

普通的LIST,选择list viewer,下面那个复制程序的工具栏还不如直接从程序复制快。。。然后就可以了。

打印:https://www.cnblogs.com/sapSB/p/7735719.html

编辑:https://www.cnblogs.com/sapSB/p/5168184.html

今天新做的个测试例子:

REPORT YLY001.

DATA:GT_FIELDCAT TYPE LVC_T_FCAT.
DATA GS_FIELDCAT LIKE LINE OF GT_FIELDCAT.
DATA LS_LAYOUT TYPE LVC_S_LAYO.
DATA LT_EVENT TYPE SLIS_T_EVENT.
DATA LS_EVENT LIKE LINE OF LT_EVENT.
DATA LR_GRID TYPE REF TO CL_GUI_ALV_GRID.
DATA:GT_T100 TYPE STANDARD TABLE OF T100,
GS_T100 TYPE T100. DEFINE APPEND_FIELDCAT .
CLEAR GS_FIELDCAT.
GS_FIELDCAT-FIELDNAME = &.
GS_FIELDCAT-SCRTEXT_L = &.
GS_FIELDCAT-OUTPUTLEN = &.
GS_FIELDCAT-NO_ZERO = &.
GS_FIELDCAT-EDIT = &.
APPEND GS_FIELDCAT TO GT_FIELDCAT.
END-OF-DEFINITION. START-OF-SELECTION.
PERFORM PRM_GET_DATA.
* PERFORM PRM_SET_FIELD.
PERFORM PRM_SHOW.
*&---------------------------------------------------------------------*
*& Form PRM_GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM PRM_GET_DATA .
SELECT * INTO TABLE GT_T100 FROM T100 UP TO ROWS WHERE SPRSL = 'E' AND ARBGB = 'ZCRM_MSG'.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form PRM_SHOW
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM PRM_SHOW .
REFRESH GT_FIELDCAT.
LS_LAYOUT-CWIDTH_OPT = 'X'. "优化列宽选项是否设置
LS_LAYOUT-ZEBRA = 'X'.
* ls_layout-box_fname = 'SEL'.
APPEND_FIELDCAT:'SPRSL' '语言' 'X' '',
'ARBGB' '区域' 'X' '',
'MSGNR' '消息号' 'X' 'X',
'TEXT' '消息文本' '' ''. DATA:LV_TITLE TYPE LVC_TITLE. DESCRIBE TABLE GT_T100 LINES LV_TITLE.
CONDENSE LV_TITLE NO-GAPS. CONCATENATE '结果共' LV_TITLE '条目!' INTO LV_TITLE. REFRESH:LT_EVENT.
LS_EVENT-FORM = 'DATA_CHANGED_METHOD'.
LS_EVENT-NAME = 'DATA_CHANGED'.
APPEND LS_EVENT TO LT_EVENT. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_PF_STATUS_SET = 'PRM_SET_STATUS'
I_CALLBACK_USER_COMMAND = 'PRM_USER_COMMAND'
IS_LAYOUT_LVC = LS_LAYOUT
IT_FIELDCAT_LVC = GT_FIELDCAT[]
I_GRID_TITLE = LV_TITLE
IT_EVENTS = LT_EVENT
I_DEFAULT = 'X'
I_SAVE = 'A'
TABLES
T_OUTTAB = GT_T100
EXCEPTIONS
PROGRAM_ERROR =
OTHERS = .
IF SY-SUBRC <> .
ENDIF.
ENDFORM.
FORM PRM_SET_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'ZSTAT'.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
E_GRID = LR_GRID. CALL METHOD LR_GRID->REGISTER_EDIT_EVENT
EXPORTING
I_EVENT_ID = CL_GUI_ALV_GRID=>MC_EVT_MODIFIED.
IF SY-SUBRC <> .
ENDIF.
ENDFORM.
FORM PRM_USER_COMMAND USING P_UCOMM LIKE SY-UCOMM
P_SELFIELD TYPE SLIS_SELFIELD. CHECK P_UCOMM = '&IC1'.
ENDFORM.
FORM DATA_CHANGED_METHOD
USING PA_DATA_CHANGED TYPE REF TO CL_ALV_CHANGED_DATA_PROTOCOL .
DATA:
L_IT_DATA TYPE LVC_T_MODI,
L_WA_DATA LIKE LINE OF L_IT_DATA.
FIELD-SYMBOLS:<LV_FIELD> TYPE ANY. L_IT_DATA = PA_DATA_CHANGED->MT_MOD_CELLS. CHECK L_IT_DATA IS NOT INITIAL. LOOP AT PA_DATA_CHANGED->MT_MOD_CELLS INTO L_WA_DATA.
READ TABLE GT_T100 INTO GS_T100 INDEX L_WA_DATA-ROW_ID.
IF SY-SUBRC = .
ASSIGN COMPONENT L_WA_DATA-FIELDNAME OF STRUCTURE GS_T100 TO <LV_FIELD>.
IF SY-SUBRC = .
<LV_FIELD> = L_WA_DATA-VALUE.
IF L_WA_DATA-FIELDNAME = 'MSGNR'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = GS_T100-MSGNR
IMPORTING
OUTPUT = GS_T100-MSGNR. SELECT SINGLE TEXT INTO GS_T100-TEXT FROM T100 WHERE SPRSL = GS_T100-SPRSL AND ARBGB = GS_T100-ARBGB AND MSGNR = GS_T100-MSGNR.
ENDIF.
MODIFY GT_T100 FROM GS_T100 INDEX L_WA_DATA-ROW_ID.
ENDIF.
ENDIF.
ENDLOOP. CALL METHOD LR_GRID->REFRESH_TABLE_DISPLAY.
ENDFORM. " DATA_CHANGED_METHOD

ALV基础二:ALV的扩展功能的更多相关文章

  1. ABAP基础二:ALV基础之ALV的简单编辑

    前两天有个打印需求变更,需要在ALV显示列表中添加两个字段,可编辑,而我自己用的是函数:REUSE_ALV_GRID_DISPLAY_LVC 因为之前做可编辑基本都是固定套路,定义类,画屏幕.... ...

  2. ABAP基础一:ALV基础之ALV的整体结构

    很久没摸ECC了,最近看到很多新人在捯饬ALV...中国就喜欢量产垃圾...培训,上岗...没有行业道德... 闲话不多说,开始正事: ALV很常见,在SAP非WEB的项目,没有不用的,它包含了报表和 ...

  3. OO方式下,ALV TREE和ALV GRID的不同之处

    作为大部分报表程序的基础,ALV GRID差不多是每个ABAP开发者必须了解和掌握的内容,因此网上也不乏相关资料,而ALV TREE的应用相对较少,中文资料也就比较少见了.实际上,ALV TREE和A ...

  4. Python全栈开发【基础二】

    Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...

  5. Bootstrap <基础二十九>面板(Panels)

    Bootstrap 面板(Panels).面板组件用于把 DOM 组件插入到一个盒子中.创建一个基本的面板,只需要向 <div> 元素添加 class .panel 和 class .pa ...

  6. Bootstrap <基础二十八>列表组

    列表组.列表组件用于以列表形式呈现复杂的和自定义的内容.创建一个基本的列表组的步骤如下: 向元素 <ul> 添加 class .list-group. 向 <li> 添加 cl ...

  7. Bootstrap<基础二十七> 多媒体对象(Media Object)

    Bootstrap 中的多媒体对象(Media Object).这些抽象的对象样式用于创建各种类型的组件(比如:博客评论),我们可以在组件中使用图文混排,图像可以左对齐或者右对齐.媒体对象可以用更少的 ...

  8. Bootstrap <基础二十六>进度条

    Bootstrap 进度条.在本教程中,你将看到如何使用 Bootstrap 创建加载.重定向或动作状态的进度条. Bootstrap 进度条使用 CSS3 过渡和动画来获得该效果.Internet ...

  9. Bootstrap <基础二十五>警告(Alerts)

    警告(Alerts)以及 Bootstrap 所提供的用于警告的 class.警告(Alerts)向用户提供了一种定义消息样式的方式.它们为典型的用户操作提供了上下文信息反馈. 您可以为警告框添加一个 ...

随机推荐

  1. python基础(17)-IO模型&selector模块

    先说一下IO发生时涉及的对象和步骤.对于一个network IO (这里我们以read举例),它会涉及到两个系统对象,一个是调用这个IO的process (or thread),另一个就是系统内核(k ...

  2. Spark mllib多层分类感知器在情感分析中的实际应用

    import org.apache.spark.ml.Pipeline import org.apache.spark.ml.classification.MultilayerPerceptronCl ...

  3. 商务通服务器版LR_Data目录下相关配置文件

    SiteSetting.config 这个文件保存权限角色(超级管理员,管理员等)角色权限.弹窗图片.客服的自动应答等内容. operatorsql8.config SQLite 数据库文件,保存登录 ...

  4. Install rapyuta Robot Cloud Engine on Ubuntu14.04

    # -Rapyuta-installation-in-Ubuntu14.04-LTS-Trusty-This gzip folder is a tested version which can ins ...

  5. python fabric的用法

    1. Fabric的任务运行规则根据Fabric Execution model的说明,fabric默认以串行方式运行tasks,具体而言: 1)在fabfile及其import文件中定义的task对 ...

  6. C# 生成 COM控件

    C#编写COM组件 软件:Microsoft VisualStudio 2010 1.新建一个类库项目 2.将Class1.cs改为我们想要的名字(例如:MyClass.cs) 问是否同时给类改名,确 ...

  7. 运行maven install命令时出现错误(BUILD FAILURE)

    运行run as—>maven install时出现以下错误: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-com ...

  8. the network could not establish the connection

    为了方便建表等操作,我用sql developer 连接linux 底下的数据库,可连接时出现了这个问题the network could not establish the connection. ...

  9. 怎样从外网访问内网Tornado

    外网访问内网Tornado 本地安装了Tornado,只能在局域网内访问,怎样从外网也能访问本地Tornado? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Tornado 默认安装 ...

  10. Linux 查看磁盘读写速度IO使用情况

    # 查看io进程 命令:iotop 注:DISK TEAD:n=磁盘读/每秒              DISK WRITE:n=磁盘写/每秒. 注:标黄的可查看磁盘的读写速率,下面可以看到使用的io ...