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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

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