ABAP IDOC 相关报表

上代码  干货来了 

*&---------------------------------------------------------------------*
*& REPORT ZRPT_FI_IDOC_R
*&
*&---------------------------------------------------------------------*
*& author ABAP02
*& date 20240103
*& from  
*& Tcode zidoc
*&---------------------------------------------------------------------*
REPORT ZRPT_FI_IDOC_R.

TABLES: EDIDS,EDID4,RBKP,LIKP,EKKO.

SELECTION-SCREEN BEGIN OF BLOCK 001 WITH FRAME TITLE TEXT-001.
  SELECT-OPTIONS S_DOCNUM FOR EDIDS-DOCNUM.          "IDOC号码
  SELECT-OPTIONS S_CREDAT FOR EDIDS-CREDAT.          "创建日期
SELECTION-SCREEN END OF BLOCK 001.

TYPES:
  BEGIN OF TYP_DATA,
    DOCNUM TYPE EDIDS-DOCNUM,          "IDOC号码
    CREDAT TYPE EDIDS-CREDAT,          "创建日期
    STATUS TYPE EDIDS-STATUS,          "状态
    VBELNR TYPE RBKP-BELNR,             "销售发票
    GJAHR  TYPE VBRK-GJAHR,             "销售发票
    NETWR  TYPE VBRK-NETWR,             "不含税金额
    MWSBK  TYPE VBRK-MWSBK,             "税额
    NETWR1 TYPE VBRK-NETWR,             "含税金额
    ERNAME TYPE RBKP-ERNAME,           "创建者
    BELNR  TYPE RBKP-BELNR,            "采购发票
    RMWWR  TYPE RBKP-RMWWR ,            "总金额
    WMWST1 TYPE RBKP-WMWST1,            " 增值税
    WMWST  TYPE RBKP-WMWST1,              "采购不含税金额
    MWSKZ1 TYPE RBKP-MWSKZ1,            "税码
    ERFNAM TYPE RBKP-ERFNAM,           "采购发票创建者
    VBELN  TYPE LIKP-VBELN,             "交货单
    EBELN  TYPE EKKO-EBELN,             "采购订单
    BSART  TYPE EKKO-BSART,             "采购订单类型
  END OF TYP_DATA.

DATA:
  STDATUM     LIKE SY-DATUM,
  STUZEIT     LIKE SY-UZEIT,
  GT_DATA     TYPE TABLE OF TYP_DATA,
  GS_DATA     TYPE TYP_DATA,
  GT_FIELDCAT TYPE LVC_T_FCAT,
  GS_FIELDCAT TYPE LVC_S_FCAT,
  GS_LAYOUT   TYPE LVC_S_LAYO.

INITIALIZATION.
  %_S_DOCNUM_%_APP_%-TEXT = 'IDOC号码'.
  %_S_CREDAT_%_APP_%-TEXT = '创建日期'.

START-OF-SELECTION.
  STDATUM = SY-DATUM.
  STUZEIT = SY-UZEIT.
  PERFORM GET_DATA.
  PERFORM PROCESS_DATA.
  PERFORM WRITERPTRUNRECORD.
  PERFORM DISPLAY_DATA.

*&---------------------------------------------------------------------*
*&      FORM  GET_DATA
*&---------------------------------------------------------------------*
*       获取数据
*----------------------------------------------------------------------*
FORM GET_DATA.
  SELECT
    EDIDS~DOCNUM          "IDOC号码
    EDIDS~CREDAT          "创建日期
    EDIDS~STATUS          "状态
    INTO TABLE GT_DATA
    FROM EDIDS
    WHERE EDIDS~DOCNUM IN S_DOCNUM
      AND EDIDS~CREDAT IN S_CREDAT.
ENDFORM.                    "GET_DATA
*&---------------------------------------------------------------------*
*&      FORM  WRITERPTRUNRECORD
*&---------------------------------------------------------------------*
*       获取数据
*----------------------------------------------------------------------*
FORM WRITERPTRUNRECORD.
  TYPES:BEGIN OF TYP_BW,
          BUKRS LIKE T001-BUKRS,
          WERKS LIKE T001W-WERKS,
        END OF TYP_BW.

  DATA:
    GT_BW TYPE TABLE OF TYP_BW,
    GS_BW TYPE TYP_BW.
  GET TIME.
  CALL FUNCTION 'ZSYS_RPT_RUNRECORD'
    EXPORTING
      TCODE     = SY-TCODE
      PROGRAMM  = SY-CPROG
      DATUMRST  = STDATUM
      UZEITRST  = STUZEIT
      BATCH     = SY-BATCH
      DATUMREND = SY-DATUM
      UZEITREND = SY-UZEIT
      DATUMC    = '20240103'
      RUNNER    = SY-UNAME
      RPTSRC    = 'BC'.

ENDFORM.                    "WRITERPTRUNRECORD
*&---------------------------------------------------------------------*
*&      FORM  PROCESS_DATA
*&---------------------------------------------------------------------*
*       处理数据
*----------------------------------------------------------------------*
FORM PROCESS_DATA.
  LOOP AT GT_DATA INTO GS_DATA.
    "STATUS
    SELECT STATUS INTO GS_DATA-STATUS UP TO 1 ROWS
      FROM EDIDS WHERE DOCNUM = GS_DATA-DOCNUM
      ORDER BY COUNTR DESCENDING.
    ENDSELECT.

    SELECT * INTO TABLE @DATA(LTEDID4)
      FROM EDID4 WHERE DOCNUM = @GS_DATA-DOCNUM
      AND SEGNAM = 'E1EDK02'.
    LOOP AT LTEDID4 INTO DATA(LSEDID4).
      IF LSEDID4-SDATA+0(3) = '009'.
        GS_DATA-VBELNR = LSEDID4-SDATA+3(10)."销售发票
        GS_DATA-GJAHR = LSEDID4-SDATA+44(4)."财年
      ENDIF.
      IF LSEDID4-SDATA+0(3) = '012'.
        GS_DATA-VBELN = LSEDID4-SDATA+3(10)."交货单
      ENDIF.
      IF LSEDID4-SDATA+0(3) = '002'.
        GS_DATA-EBELN = LSEDID4-SDATA+3(10)."采购订单
      ENDIF.
    ENDLOOP.
*采购发票
    SELECT SINGLE BELNR ERFNAM RMWWR WMWST1 MWSKZ1 INTO
      (GS_DATA-BELNR,GS_DATA-ERFNAM,GS_DATA-RMWWR,GS_DATA-WMWST1,GS_DATA-MWSKZ1)
      FROM RBKP  WHERE XBLNR = GS_DATA-VBELNR AND GJAHR = GS_DATA-GJAHR.
    GS_DATA-WMWST = GS_DATA-RMWWR - GS_DATA-WMWST1.
* 销售发票和金额
    SELECT SINGLE ERNAM NETWR MWSBK
      INTO (GS_DATA-ERNAME,GS_DATA-NETWR,GS_DATA-MWSBK) FROM
      VBRK WHERE VBELN = GS_DATA-VBELNR AND GJAHR = GS_DATA-GJAHR.
    GS_DATA-NETWR1 = GS_DATA-NETWR + GS_DATA-MWSBK.

    SELECT SINGLE BSART INTO GS_DATA-BSART FROM EKKO WHERE EBELN = GS_DATA-EBELN.
    MODIFY GT_DATA FROM GS_DATA.
  ENDLOOP.
ENDFORM.                    "PROCESS_DATA
*&---------------------------------------------------------------------*
*&      Form  BUILD_FIELDCAT
*&---------------------------------------------------------------------*
*       TEXT
*----------------------------------------------------------------------*
FORM BUILD_FIELDCAT USING P_FIELDNAME   TYPE FIELDNAME
                          P_QFIELDNAME  TYPE LVC_QFNAME
                          P_CFIELDNAME  TYPE LVC_CFNAME
                          P_REF_TABLE   TYPE LVC_RTNAME
                          P_REF_FIELD   TYPE LVC_RFNAME
                          P_CONVEXIT    TYPE CONVEXIT
                          P_EMPHASIZE   TYPE LVC_EMPHSZ
                          P_SCRTEXT_L   TYPE SCRTEXT_L
                          P_NO_ZERO     TYPE XFLAG.
  GS_FIELDCAT-FIELDNAME     = P_FIELDNAME.
  GS_FIELDCAT-QFIELDNAME    = P_QFIELDNAME.
  GS_FIELDCAT-CFIELDNAME    = P_CFIELDNAME.
  GS_FIELDCAT-REF_TABLE     = P_REF_TABLE.
  GS_FIELDCAT-REF_FIELD     = P_REF_FIELD.
  GS_FIELDCAT-CONVEXIT      = P_CONVEXIT.
  GS_FIELDCAT-EMPHASIZE     = P_EMPHASIZE.
  GS_FIELDCAT-SCRTEXT_L     = P_SCRTEXT_L.
  GS_FIELDCAT-NO_ZERO   = P_NO_ZERO.
  GS_FIELDCAT-COLDDICTXT    = 'L'.
  APPEND GS_FIELDCAT TO GT_FIELDCAT.
  CLEAR: GS_FIELDCAT.
ENDFORM.                    "BUILD_FIELDCAT
*&---------------------------------------------------------------------*
*&      FORM  DISPLAY_DATA
*&---------------------------------------------------------------------*
*       显示数据
*----------------------------------------------------------------------*
FORM DISPLAY_DATA.
  PERFORM BUILD_FIELDCAT USING 'DOCNUM' '' '' '' '' '' '' 'IDOC号码' 'X'.
  PERFORM BUILD_FIELDCAT USING 'CREDAT' '' '' '' '' '' '' '创建日期' ''.
  PERFORM BUILD_FIELDCAT USING 'STATUS' '' '' '' '' '' '' '状态' ''.
  PERFORM BUILD_FIELDCAT USING 'VBELNR' '' '' '' '' '' '' '销售发票' 'X'.
  PERFORM BUILD_FIELDCAT USING 'GJAHR' '' '' '' '' '' '' '财年' 'X'.
  PERFORM BUILD_FIELDCAT USING 'NETWR' '' '' '' '' '' '' '销售发票净额' 'X'.
  PERFORM BUILD_FIELDCAT USING 'MWSBK' '' '' '' '' '' '' '销售发票税额' 'X'.
  PERFORM BUILD_FIELDCAT USING 'NETWR1' '' '' '' '' '' '' '销售发票含税金额' 'X'.
  PERFORM BUILD_FIELDCAT USING 'ERNAME' '' '' '' '' '' '' '销售发票创建人' ''.
  PERFORM BUILD_FIELDCAT USING 'BELNR' '' '' '' '' '' '' '采购发票' 'X'.
  PERFORM BUILD_FIELDCAT USING 'WMWST' '' '' '' '' '' '' '采购发票不含税净额' 'X'.
  PERFORM BUILD_FIELDCAT USING 'WMWST1' '' '' '' '' '' '' '增值税税额' 'X'.
  PERFORM BUILD_FIELDCAT USING 'RMWWR' '' '' '' '' '' '' '采购发票含税金额' 'X'.
  PERFORM BUILD_FIELDCAT USING 'ERFNAM' '' '' '' '' '' '' '采购发票创建人' ''.
  PERFORM BUILD_FIELDCAT USING 'VBELN' '' '' '' '' '' '' '交货单' 'X'.
  PERFORM BUILD_FIELDCAT USING 'EBELN' '' '' '' '' '' '' '采购订单' 'X'.
  PERFORM BUILD_FIELDCAT USING 'BSART' '' '' '' '' '' '' '采购订单类型' ''.

  GS_LAYOUT-CWIDTH_OPT = 'X'.
  GS_LAYOUT-ZEBRA = 'X'.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
    EXPORTING
      I_CALLBACK_PROGRAM      = SY-REPID
"     I_CALLBACK_PF_STATUS_SET = 'PF_STATUS_ALV'
      I_CALLBACK_USER_COMMAND = 'USER_COMMAND_ALV'
      IT_FIELDCAT_LVC         = GT_FIELDCAT
      IS_LAYOUT_LVC           = GS_LAYOUT
      I_DEFAULT               = 'X'
      I_SAVE                  = 'A'
    TABLES
      T_OUTTAB                = GT_DATA
    EXCEPTIONS
      OTHERS                  = 1.
ENDFORM.                    "DISPLAY_DATA
**&---------------------------------------------------------------------*
**&      FORM  PF_STATUS_ALV
**&---------------------------------------------------------------------*
**       TEXT
**----------------------------------------------------------------------*
*FORM PF_STATUS_ALV USING RT_EXTAB TYPE SLIS_T_EXTAB .
*  SET PF-STATUS 'STATUS_ALV' EXCLUDING RT_EXTAB.
*ENDFORM.                    "PF_STATUS_ALV
*&---------------------------------------------------------------------*
*&      FORM  USER_COMMAND_ALV
*&---------------------------------------------------------------------*
*       TEXT
*----------------------------------------------------------------------*
FORM USER_COMMAND_ALV USING R_UCOMM     LIKE SY-UCOMM
                            RS_SELFIELD TYPE SLIS_SELFIELD.
  CASE R_UCOMM.
    WHEN '&IC1'.
      CASE RS_SELFIELD-FIELDNAME.
        WHEN ''.
*          CHECK RS_SELFIELD-VALUE IS NOT INITIAL.
*          SET PARAMETER ID 'MBN' FIELD RS_SELFIELD-VALUE.
*          CALL TRANSACTION 'MB03' AND SKIP FIRST SCREEN.
      ENDCASE.
  ENDCASE.
ENDFORM.                    "USER_COMMAND_ALV

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/333160.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

K8S-YAML

一、Kubernetes对象的描述 kubernetes中资源可以使用YAML描述(如果您对YAML格式不了解,可以参考YAML语法),也可以使用JSON。其内容可以分为如下四个部分: typeMeta:对象类型的元信息,声明对象…

共同学习|Spring Cloud Alibaba一一Nacos介绍

接着上篇我们介绍的Spring Cloud Alibaba,下面来继续学习构建云原生应用的动态服务发现、配置管理和服务管理平台——Nacos介绍。 共同学习|Spring Cloud Alibaba一一简介篇-CSDN博客 3、Nacos介绍 Redirecting to: https://nacos.io/ 什么是nacos? …

高级RAG(八): 自动合并检索(Auto-merging Retrieval)

自动合并检索(Auto-merging Retrieval)是LlamaIndex的另外一种高级RAG技术,它有点类似与我们之间介绍的从小到大的检索,不过自动合并检索要比“从小到大的检索”稍微复杂一些,它首先将文档按一定的层次结构进行切割,然后在检索的时…

Docker 安装 MongoDb4

Docker 安装mongoDb 获取mongodb安装问题汇总参考 获取mongodb 注意: WARNING: MongoDB 5.0 requires a CPU with AVX support, and your current system does not appear to have that! **hub官网(需要梯子):**https://hub.dock…

医生都是越老越吃香,为啥程序员却不是?

知乎上有个问题:明明是工作经验越久越吃香,为什么程序员却不是? 仔细一想,好像确实是这样啊。 你们看,大家去医院挂号的时候,都喜欢挂年纪大一点的医生,因为年纪大的经验更丰富。 我们装修选设…

常见问答解析:人工智能在智能时代的潜力与挑战

在智能时代,人工智能(AI)被视为推动社会和科技进步的关键引擎。让我们通过问答的形式,深入探讨人工智能的潜力与面临的挑战。 问:人工智能在当前社会中扮演什么角色? 答:人工智能已成为现代科技…

Java-NIO篇章(4)——Selector选择器详解

Selector介绍 选择器(Selector)是什么呢?选择器和通道的关系又是什么?这里详细说明,假设不用选择器,那么一个客户端请求数据传输那就需要建立一个连接,为了避免线程阻塞,那么每个客…

一文说明白 MySQL 的 ACID 和 几种日志的关系

1、简介 我们对于MySQL 很熟悉,关于其特性都有一定的了解,但是关于一些具体的实现原理,有的小伙伴可能不太熟悉,而且这部分知识在我们互联网大厂面试中是经常涉及的,因此,本文将带你深入底层,顺…

实验笔记之——基于TUM-RGBD数据集的SplaTAM测试

之前博客对SplaTAM进行了配置,并对其源码进行解读。 学习笔记之——3D Gaussian SLAM,SplaTAM配置(Linux)与源码解读-CSDN博客SplaTAM全称是《SplaTAM: Splat, Track & Map 3D Gaussians for Dense RGB-D SLAM》,…

c JPEG 1D DCT

步骤: 1. 对yuv 88 数据 8行分别1D DCT 2, 用8行 1D DCT 得到的数据生成中间88 块 Zj 3,对Zj 的8列再 1D DCT 后生成8列,用这8列组合成8*8的2D DCT 系数 准备用此1D DCT程序代替以前写的2D DCT,看能减少多少编码时间。 看网上文章,ffmpeg用…

【AI预测】破晓未来教育市场:如何精准定位、精选师资并启动高潜力培训项目

在当前全球化和技术快速迭代的背景下,各行业正面临巨大的人才缺口和新的发展机遇。 全球化浪潮,各行业如同搭乘上了一列高速列车,不断深入探索并广泛应用AI技术以提升产业效率、创新服务模式。在智能制造领域,工业4.0时代犹如给…

【Java 设计模式】结构型之适配器模式

文章目录 1. 定义2. 应用场景3. 代码实现结语 适配器模式(Adapter Pattern)是一种结构型设计模式,用于将一个类的接口转换成客户端期望的另一个接口。这种模式使得原本由于接口不兼容而不能一起工作的类可以一起工作。在本文中,我…

骨传导蓝牙耳机怎么使用?使用骨传导耳机对人体有没有伤害?

骨传导蓝牙耳机的使用方法和传统的入耳式蓝牙耳机使用方法相差无几,都是通过蓝牙来进行连接使用,但骨传导耳机会自带内存,所以在此前提上可以存储音乐独立使用,比传统的入耳式蓝牙耳机使用更方便一些。 那么使用骨传导耳机会不会对…

[一]ffmpeg音视频解码

[一]ffmpeg音视频解码 一.编译ffmpeg1.安装vmware虚拟机2.vmware虚拟机安装linux操作系统3.安装ftp和fshell软件4.在Ubuntu(Linux)中编译Android平台的FFmpeg( arm和x86 )5.解压FFmpeg6.Android编译脚本(1)…

Spring Security工作原理(一)

过滤器 Spring Security的Servlet支持是基于Servlet过滤器的,因此首先了解过滤器的一般作用是很有帮助的。下图显示了单个HTTP请求处理程序的典型分层结构。 处理客户端发送的请求时,容器创建一个FilterChain,其中包含Filter实例和Servlet&a…

Rust-泄漏

在C中,如果引用计数智能指针出现了循环引用,就会导致内存泄漏。而Rust中也一样存在引用计数智能指针Rc,那么Rust中是否可能制造出内存泄漏呢? 内存泄漏 首先,我们设计一个Node类型,它里面包含一个指针,可以指向其他…

C++类与对象【友元】

🌈个人主页:godspeed_lucip 🔥 系列专栏:C从基础到进阶 🎄1 友元🥑1.1 全局函数做友元🥑1.2 类做友元🥑1.3 成员函数做友元 🕮2 总结 🎄1 友元 生活中你的家…

xml裁剪标注目标并外扩

import glob import xml.etree.ElementTree as ET import cv2 from PIL import Image import os def change_xmlfile(path)

HCIA-H12-811题目解析(11)

1、下列哪个属性不能作为衡量COST的参数? 2、RSTP协议使用P/A机制加快了上游端口转到Forwarding状态的速度,但是却没有出现临时环路的原因是什么? 3、网络管理员在三层交换机上创建了VLAN10,并在该VLAN的虚拟接口下配置了IP地址…

EtherNet/IP协议开发2:在ubuntu测试

下载源码: git clone https://github.com/EIPStackGroup/OpENer编译 首先进入目录 /big/opener/OpENer/bin/posix 执行脚本: lkmaoubuntu:/big/opener/OpENer/bin/posix$ ./setup_posix.sh 执行make lkmaoubuntu:/big/opener/OpENer/bin/posix$ mak…