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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 主流的java编译器_程序猿专用十大在线编译器(IDE)整理

    主流的java编译器_程序猿专用十大在线编译器(IDE)整理1.CodeSandbox(基于React的在线代码沙盒平台)我常用的①主流的脚手架都支持,比如在线create-react-app,vue-cli等(在线fork修改),支持github登录(项目导入),也支持cli上传例子,例子可以在线访问和下载,当然也支持内嵌到其他博客等网页中。③图示支持的脚手架(图1-1)2.CodePen(前端代码编辑运行的网站)①C…

    2022年7月9日
    36
  • vue + springboot_SpringBootTest

    vue + springboot_SpringBootTestVue+SpringBoot介绍前言介绍  博主简单的学习完SpringBoot的技术之后,发现好像thymeleaf+SpringBoot的开发方式现在使用的并不多,现在大部分在使用的是前后端分离的开发方式,其中的一种是Vue+SpringBoot的开发方式,所以特地去BiliBili网站上去找了相关的视频,但是相关的视频也不是很多,找了一个4个小时的视频,简单的了解和运用。BiliBil…

    2022年9月22日
    0
  • unity调用animation_unity随机地图

    unity调用animation_unity随机地图Unity小科普老规矩,先介绍一下Unity的科普小知识:Unity是实时3D互动内容创作和运营平台。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助Unity将创意变成现实。Unity平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。也可以简单把Unity理解为一个游戏引擎,可以用来专业制作游戏!Unity踩坑小知识点学习Unity使用Q..

    2022年9月1日
    0
  • kali linux获取qq密码,Kali Linux(64位)安装QQ「建议收藏」

    kali linux获取qq密码,Kali Linux(64位)安装QQ「建议收藏」由于kaliLinux是新发布的系统,很多技术相关的文章都还没发布,一些基本地程序安装都没完善,本人自己找了个KaliLinux安装QQ的文章,测试了一遍确实可行,总结了一些经验写在这里。ps:实在受不了那WebQQ,用起来真不爽!!!!1.由于我使用的是64位的系统,而运行Wine兼容层QQ需要32位的库文件,众所周知,QQ是没有发布64位版本的QQ的,而且那么久的时间没有更新,因此要…

    2022年7月20日
    35
  • linux的nfs端口111,【NFS】NFS设置固定端口,添加防火墙规则[通俗易懂]

    linux的nfs端口111,【NFS】NFS设置固定端口,添加防火墙规则[通俗易懂]NFSserver启动时会随机启动多个端口并向RPC注册,这样如果使用iptables对NFSsever端口进行限制就会有点麻烦,可以更改配置文件固定NFS服务相关端口。以前配置的nfs端口一直是通过rpcinfoxx.xx.xx.xx这个命令查找到需要放行的端口,然后在防火墙中放行这个端口,每次f服务器断电重启之后,都需要重新设置防火墙,我们可以设置固定端口,这样设置固定端口以后即便重…

    2022年6月27日
    24
  • git合并同事代码

    git合并同事代码

    2021年11月10日
    41

发表回复

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

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