APAP INCLUDE「建议收藏」

APAP INCLUDE「建议收藏」*&———————————————————————**&ReportYMWXBINCLUDE*&*&———————————————————————**&…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

*&———————————————————————*
*& Report  YMWXBINCLUDE
*&
*&———————————————————————*
*&
*&
*&———————————————————————*

REPORT  YMWXBINCLUDE.

INCLUDE YMWXBINCLUDE_TOP.

PERFORM GET_DATA_FORM.
PERFORM LAYOUT_FORM.
PERFORM FIELD_CAT_FORM.
PERFORM EVENT_WXB_FORM.
PERFORM DISPLAY_FORM.

* form 的声明 ,还是要放在后面, 否则,激活时候,就很容易出错,说变量没声明,或者无法访问等问题。
INCLUDE YMWXBINCLUDE_FORM.

 

*&———————————————————————*
*&  包含                YMWXBINCLUDE_TOP
*&———————————————————————*

*
*
*开发ALV的基本流程:
*第1步:声明变量定义ALV所要用到的类型池:TYPE-POOLS: SLIS 针对ALV的控制信息数据(Layout & Fieldcat)

*第2步:定义内表存放自定义数据文件的数据,以及在ALV中显示

*第3步:读取数据读取数据存放至Internal TABLE
*第4步:ALV格式控制建立ALV显示样式(layout)和显示字段清单(FIELD Catalogs)
*第5步:定义事件建立事件清单(EVENT Catalogs)
*  事件一共分为  17 种 (比如:设置标题栏的显示和隐藏,用户操作的响应等)
*第6步:显示ALV调用ALV FUNCTION MODULE
*  可以 到 se37  中  查看 REUSE_ALV_EVENTS_GET (这个和数据表一样,名称要记住了),
*  点击进去就可以看到所欲的事件声明了 ,如果要实现具体的 功能就需要写 子例程来实现
*第7步:用户事件定义User按键处理事件
*   属于 第五步中的 事件的一种

* 例如到 VA03 中查看  输入订单编号   10000147 就可以查看 订单明细

* 在配置  ALV显示的时候,点击模式按钮
* 调用函数时候选择 :REUSE_ALV_GRID_DISPLAY 会自动生产函数的配置 ,配置上相应的选项之后,就可以金新股显示了。

* 第一步定义 ALV 相关变量

TYPE-POOLS:SLIS .

* 注意在下面的事件变量的定义中如果 不知道 参考什么 类型 ,
*双击 函数  REUSE_ALV_GRID_DISPLAY ,找到 入参 ,可然后找到要定义的类型 如: IT_EVENTS ,就可以看到 需要参考的类型了
* 直接定义为一样的就可以了 。
DATA:lt_fieldcat TYPE slis_t_fieldcat_alv ,” 存储fieldcat的内表
      ls_fieldcat TYPE slis_fieldcat_alv,
      ls_layout TYPE slis_layout_alv ” ALV 格式控制的结构体 :layout
      lt_event TYPE slis_t_event ” 定义内表 ,参考声明了结构类型的types 类类型
      ls_event TYPE slis_alv_event ” 定义工作区 直接参考了结构体
DATA lv_colpos TYPE int2 .
DATA lt_sort TYPE slis_t_sortinfo_alv.
DATA wa_sort TYPE slis_sortinfo_alv.
DATA ls_setting TYPE LVC_S_GLAY.

*第二部定义内表

TYPES:BEGIN OF ty_alvshow ,
  vbeln TYPE vbak-vbeln ,
  erdat TYPE vbak-erdat,
  ernam TYPE vbak-ernam,
  kunnr TYPE vbak-kunnr,

  posnr TYPE vbap-posnr,
  matnr TYPE vbap-matnr,
  matkl TYPE vbap-matkl,
  zmeng TYPE vbap-zmeng,
  zieme TYPE vbap-zieme,
  werks TYPE vbap-werks,
  lgort TYPE vbap-lgort,
END OF ty_alvshow.

DATA:lt_alvshow TYPE TABLE OF ty_alvshow,” 定义内表哦
      wa_alvshow TYPE ty_alvshow .” 定义工作区

 

*&———————————————————————*
*&  包含                YMWXBINCLUDE_FORM
*&———————————————————————*

*******************form 定义 ****************************************

FORM WXB_FORM_USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
      RS_SELFIELD TYPE SLIS_SELFIELD.
  DATA lt_vbap TYPE TABLE OF VBAP” 定义数据库内表
  DATA wa_vbap TYPE  VBAP.” 定义 数据库工作区

  CASE  R_UCOMM.
  WHEN ‘ZWXB’.
    MESSAGE ‘点击了自定义的按钮’ TYPE ‘I’.
  WHEN ‘ZSAVE’.
    SELECT * FROM vbap INTO  TABLE lt_vbap FOR ALL ENTRIES IN lt_alvshow WHERE vbeln = lt_alvshow-vbeln  AND posnr = lt_alvshow-posnr .

    LOOP  AT lt_vbap INTO wa_vbap .
      ” 要注意的是 vbeln 要放在 条件的第一个 位置, 等于 后面 追加 工作区里面的信息
      READ TABLE lt_alvshow INTO wa_alvshow WITH KEY vbeln = wa_vbap-vbeln  posnr = wa_vbap-posnr .
      IF sy-SUBRC .
        wa_vbap-ZMENG = wa_alvshow-ZMENG.
        MODIFY lt_vbap FROM wa_vbap .
      ENDIF.
      CLEAR wa_alvshow .
      CLEAR wa_vbap.
    ENDLOOP.

    UPDATE vbap FROM TABLE lt_vbap .
    IF  sy-SUBRC .
      COMMIT WORK .
      MESSAGE ‘更新成功’ TYPE ‘I’.
    ELSE.
      ROLLBACK WORK.
      MESSAGE ‘更新失败’ TYPE ‘I’.
    ENDIF.
    WHEN OTHERS.
  ENDCASE.
*IF R_UCOMM = ‘ZWXB’.
*  MESSAGE ‘点击了自定义的按钮’ TYPE ‘I’.
*ELSEIF R_UCOMM = ‘ZSAVE’.
*  MESSAGE ‘确定要保存吗?’ TYPE ‘I’.
*ENDIF.

ENDFORM.

FORM WXB_STATUS  USING RT_EXTAB TYPE SLIS_T_EXTAB.
*  set PF-STATUS ‘WXB_STATUS’. ” 这里是自定义的工具栏的名称,一个alv启动时候,就会直接调用自定义的工具栏
  SET PF-STATUS ‘WXB_STATUS’.
ENDFORM .

* 下面是工具栏的自定义设置
FORM WXB_FORM_TOP_OF_PAGE.
  DATA LT_COMMENTARY TYPE SLIS_T_LISTHEADER.
  DATA WA_COMMENTARY TYPE slis_listheader 

转载于:https://www.cnblogs.com/safely-pointer/p/7683220.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/190628.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 大约SQL现场“这包括”与“包括在”字符串的写法

    大约SQL现场“这包括”与“包括在”字符串的写法

    2022年1月3日
    58
  • nginx配置url重定向_Nginx 跳转到www二级域名,域名重定向配置方法。[通俗易懂]

    nginx配置url重定向_Nginx 跳转到www二级域名,域名重定向配置方法。[通俗易懂]阿里(万网)支持显性URL配置,也就是:将域名指向一个http(s)协议地址,访问域名时,自动跳转至目标地址(例如:将sojson.com显性转发到www.sojson.com后,访问sojson.com时,地址栏显示的地址为:www.sojson.com)。其实就是重定向,我以前觉得阿里的挺好用的,今天阿里给我说服务器给攻击了,不提供服务。下面是我和阿里的客服对话,我对阿里的服务表示有点失望。我…

    2022年5月21日
    120
  • delphi xe5 激活成功教程

    delphi xe5 激活成功教程通过测试可用,RADStudioXE5激活成功教程补丁及方法第一步,将下载下来的“delphicbuilder_xe5_win.iso”解压到任意盘,任意目录。http://altd.embarcadero.com/download/radstudio/xe5/delphicbuilder_xe5_win.iso第二步,将“免序列号安装授权文件”文件夹中的“RADS

    2022年7月18日
    26
  • JVM性能调优

    JVM性能调优1、JVM调优目标:使用较小的内存占用来获得较高的吞吐量或者较低的延迟。程序在上线前的测试或运行中有时会出现一些大大小小的JVM问题,比如cpuload过高、请求延迟、tps降低等,甚至出现内存泄漏(每次垃圾收集使用的时间越来越长,垃圾收集频率越来越高,每次垃圾收集清理掉的垃圾数据越来越少)、内存溢出导致系统崩溃,因此需要对JVM进行调优,使得程序在正常运行的前提下,获得更高的用户体验和运行…

    2022年6月11日
    35
  • Git安装与配置(mac版本)

    Git安装与配置(mac版本)教程目录 0x00 教程内容 0x01Git 的下载与安装 1 下载 2 安装 0x02Git 的配置 1 配置用户名和用户邮箱 0x03 校验 Git0xFF 总结 0x00 教程内容说明 我安装的 Git 版本是 2 16 2 教程参考 MAC 端 Git 安装以及环境搭建 0x01Git 的下载与安装 1 下载 a 方式一之官网下载 保险期间还是用这种方式好点咯 https www git

    2025年10月20日
    4
  • rapidxml学习

    rapidxml学习参考:官网http://rapidxml.sourceforge.net/https://blog.csdn.net/wqvbjhc/article/details/7662931http://blog.sina.com.cn/s/blog_9b0604b40101o6fm.htmlrapidxml_print.hpp修改代码:#ifndefRAPIDXML_PRINT_HP…

    2022年7月17日
    16

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号