SAP 配额修改 + 修改记录写入实现

前一周 写了文章 思考了SAP 修改记录写入的思考-CSDN博客

紧接着 小家伙 感染了支原体  反反复复 ,代码没有落地,今天终于落地了,下面把代码贴出来。

FUNCTION ZRFC_MM_QUOTA_BAPI.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  TABLES
*"      XEQUK STRUCTURE  EQUKU OPTIONAL
*"      XEQUP STRUCTURE  UEQUP OPTIONAL
*"      YEQUK STRUCTURE  EQUKU OPTIONAL
*"      YEQUP STRUCTURE  UEQUP OPTIONAL
*"----------------------------------------------------------------------
*--------------------------------------------------------------------*
*function:
*changer:
*note:要考虑如下几种情形
* 1、原有数据20230101~20231231,新增 20220101-20221231 / 20240101-20241231 不相干不处理
* 2、原有数据20230101~20231231,新增 20220101-20231231 / 20231201-20241231 一半相干
* 3、原有数据20230101~20231231,新增 20230301-20230531 / 20221201-20241231 全相干
*--------------------------------------------------------------------*

  DATA:LDATE TYPE SY-DATUM.
  DATA:LQUNUM LIKE EQUK-QUNUM.
  DATA:LSEQUKN LIKE EQUK.
  DATA:LSEQUPN LIKE EQUP.
  DATA:TIMESTAMP LIKE EQUK-CHANGEDON.
  DATA:LOBJID LIKE CDHDR-OBJECTID.

  GET TIME STAMP FIELD TIMESTAMP.
  LOOP AT XEQUK INTO DATA(LSEQUK).
*    原有数据20230101~20231231 新增 20220101-20231031
    LOBJID(18) = LSEQUK-MATNR.
    LOBJID+40(4) = LSEQUK-WERKS.
    IF LSEQUK-CHANGEDON IS INITIAL.
      LSEQUK-CHANGEDON = TIMESTAMP.
      MODIFY XEQUK  FROM LSEQUK.
    ENDIF.
    SELECT * FROM EQUK INTO TABLE @DATA(LTEQUK)
WHERE EQUK~MATNR = @LSEQUK-MATNR AND EQUK~WERKS = @LSEQUK-WERKS
      AND EQUK~BDATU > @LSEQUK-BDATU AND
      EQUK~VDATU < @LSEQUK-BDATU AND
      EQUK~VDATU > @LSEQUK-VDATU.
    LOOP AT LTEQUK INTO DATA(LSEQUKO).
      CLEAR LDATE.
      PERFORM GETSPECIFICDATE(ZABAP_COMMON_PROGRAM) USING LSEQUK-BDATU 1 0 0 '+' CHANGING LDATE.
      UPDATE EQUK SET VDATU = LDATE
      WHERE EQUK~MATNR = LSEQUKO-MATNR AND EQUK~WERKS = LSEQUKO-WERKS AND BDATU = LSEQUKO-BDATU.

      LSEQUKN = LSEQUKO.
      LSEQUKN-VDATU = LDATE.
      PERFORM ZQUOTE_WRITE_DOCUMENT USING LSEQUKO LSEQUKN 'U'.
    ENDLOOP.

*    原有数据20230101~20231231 新增 20231001-20241231
    SELECT * FROM EQUK INTO TABLE @LTEQUK
          WHERE EQUK~MATNR = @LSEQUK-MATNR AND EQUK~WERKS = @LSEQUK-WERKS
          AND EQUK~BDATU < @LSEQUK-BDATU AND EQUK~VDATU < @LSEQUK-VDATU
          AND EQUK~BDATU > @LSEQUK-VDATU.
    LOOP AT LTEQUK INTO LSEQUKO.
      CLEAR LDATE.
      PERFORM GETSPECIFICDATE(ZABAP_COMMON_PROGRAM) USING LSEQUKO-BDATU 1 0 0 '-' CHANGING LDATE.

      PERFORM GET_SNRO_NO(ZABAP_COMMON_PROGRAM) USING 'QUOTIERUNG' '01' CHANGING LQUNUM.
      SELECT * FROM EQUP WHERE EQUP~QUNUM = @LSEQUKO-QUNUM INTO TABLE  @DATA(LTEQUPOSUB).
      APPEND LSEQUKO TO YEQUK.
      LSEQUKN = LSEQUKO.
      LSEQUKN-BDATU = LDATE.
      LSEQUKN-QUNUM = LQUNUM.
      APPEND LSEQUKN TO XEQUK.

      LOOP AT LTEQUPOSUB INTO LSEQUPN.
        APPEND LSEQUPN TO YEQUP.
        LSEQUPN-QUNUM = LQUNUM.
        APPEND LSEQUPN TO XEQUP.
      ENDLOOP.

*      UPDATE EQUK SET BDATU = LDATE
*      WHERE EQUK~MATNR = LSEQUKO-MATNR AND EQUK~WERKS = LSEQUKO-WERKS AND BDATU = LSEQUKO-BDATU.
    ENDLOOP.
* 3、原有数据20230101~20231231,新增 20230301-20230531 / 20221201-20241231 全相干
    SELECT * FROM EQUK INTO TABLE @LTEQUK
      WHERE EQUK~MATNR = @LSEQUK-MATNR AND EQUK~WERKS = @LSEQUK-WERKS
      AND EQUK~BDATU >= @LSEQUK-BDATU AND EQUK~VDATU <= @LSEQUK-VDATU.
*      分段处理
    LOOP AT LTEQUK INTO LSEQUKO.
      CLEAR LDATE.
      IF LSEQUKO-BDATU > LSEQUK-BDATU.
*        后半段
        PERFORM GETSPECIFICDATE(ZABAP_COMMON_PROGRAM) USING LSEQUK-BDATU 1 0 0 '+' CHANGING LDATE.
        UPDATE EQUK SET VDATU = LDATE
        WHERE EQUK~MATNR = LSEQUKO-MATNR AND EQUK~WERKS = LSEQUKO-WERKS
      AND QUNUM = LSEQUKO-QUNUM AND BDATU = LSEQUKO-BDATU.

        LSEQUKN = LSEQUKO.
        LSEQUKN-VDATU = LDATE.
        PERFORM ZQUOTE_WRITE_DOCUMENT USING LSEQUKO LSEQUKN 'U'.
      ENDIF.
*        前半段
      IF LSEQUKO-BDATU > LSEQUK-BDATU.
        IF LSEQUKO-VDATU < LSEQUK-VDATU.
*          新增一个记录
          SELECT * FROM EQUP WHERE QUNUM = @LSEQUKO-QUNUM INTO TABLE @DATA(LTEQUPO).
          PERFORM GET_SNRO_NO(ZABAP_COMMON_PROGRAM) USING 'QUOTIERUNG' '01' CHANGING LQUNUM.
          MOVE-CORRESPONDING LSEQUKO TO XEQUK.
          XEQUK-QUNUM = LQUNUM.
          PERFORM GETSPECIFICDATE(ZABAP_COMMON_PROGRAM) USING LSEQUK-VDATU 1 0 0 '-' CHANGING LDATE.
          XEQUK-BDATU = LDATE.
          XEQUK-KZ = 'I'.
          LOOP AT LTEQUPO INTO DATA(LSEQUPO).
            MOVE-CORRESPONDING LSEQUPO TO XEQUP.
            XEQUP-QUNUM = LQUNUM.
            XEQUP-KZ = 'I'.
            APPEND XEQUP.
          ENDLOOP.
          APPEND XEQUK.
        ELSEIF LSEQUKO-VDATU = LSEQUK-VDATU.
          PERFORM GETSPECIFICDATE(ZABAP_COMMON_PROGRAM) USING LSEQUK-BDATU 1 0 0 '+' CHANGING LDATE.
          UPDATE EQUK SET VDATU = LDATE
          WHERE EQUK~MATNR = LSEQUKO-MATNR AND EQUK~WERKS = LSEQUKO-WERKS AND BDATU = LSEQUKO-BDATU.
          LSEQUKN = LSEQUKO.
          LSEQUKN-VDATU = LDATE.
          PERFORM ZQUOTE_WRITE_DOCUMENT USING LSEQUKO LSEQUKN 'U'.
        ENDIF.
      ENDIF.
    ENDLOOP.

    SELECT * FROM EQUK INTO TABLE @LTEQUK
    WHERE EQUK~MATNR = @LSEQUK-MATNR AND EQUK~WERKS = @LSEQUK-WERKS
    AND EQUK~BDATU <= @LSEQUK-BDATU AND EQUK~VDATU >= @LSEQUK-VDATU.
*      替换 删除老的
    LOOP AT LTEQUK INTO LSEQUKO .
      SELECT * INTO TABLE @DATA(LTEQUPD)
        FROM EQUP WHERE EQUP~QUNUM = @LSEQUKO-QUNUM.

      LOOP AT LTEQUPD INTO DATA(LSEQUPD).
        MOVE-CORRESPONDING LSEQUPD TO YEQUP.
        APPEND YEQUP .
      ENDLOOP.
      MOVE-CORRESPONDING LSEQUKO TO YEQUK.
      APPEND YEQUK.
    ENDLOOP.

  ENDLOOP.

  CALL FUNCTION 'ME_UPDATE_QUOTA'
    TABLES
      XEQUK = XEQUK
      XEQUP = XEQUP
      YEQUK = YEQUK
      YEQUP = YEQUP.



  PERFORM ZQUOTE_WRITE_DOCU_EQUK TABLES XEQUK YEQUK USING LOBJID.

  PERFORM ZQUOTE_WRITE_DOCU_EQUP TABLES XEQUP YEQUP USING LOBJID.

ENDFUNCTION.

FORM ZQUOTE_WRITE_DOCU_EQUP TABLES XTEQUP TYPE STANDARD TABLE YTEQUP TYPE STANDARD TABLE
  USING LOBJID TYPE CDHDR-OBJECTID.
  CALL FUNCTION 'CHANGEDOCUMENT_OPEN'
    EXPORTING
      OBJECTCLASS      = 'QUOTEN2'
      OBJECTID         = LOBJID
*     PLANNED_CHANGE_NUMBER   = PLANNED_CHANGE_NUMBER
*     PLANNED_OR_REAL_CHANGES = PLANNED_OR_REAL_CHANGES
    EXCEPTIONS
      SEQUENCE_INVALID = 1
      OTHERS           = 2.

  CASE SY-SUBRC.
    WHEN 1.
      MESSAGE A001(F2) WITH 'SEQUENCE INVALID'.
    WHEN 2.
      MESSAGE A001(F2) WITH 'OPEN ERROR'.
  ENDCASE.

  CALL FUNCTION 'CHANGEDOCUMENT_MULTIPLE_CASE'
    EXPORTING
      TABLENAME              = 'EQUP                          '
      CHANGE_INDICATOR       = 'U'
      DOCU_DELETE            = 'X'
    TABLES
      TABLE_OLD              = YTEQUP
      TABLE_NEW              = XTEQUP
    EXCEPTIONS
      NAMETAB_ERROR          = 1
      OPEN_MISSING           = 2
      POSITION_INSERT_FAILED = 3
      OTHERS                 = 4.
  CASE SY-SUBRC.
    WHEN 1.
      MESSAGE A001(F2) WITH 'NAMETAB-ERROR'.
    WHEN 2.
      MESSAGE A001(F2) WITH 'OPEN MISSING'.
    WHEN 3.
      MESSAGE A001(F2) WITH 'INSERT ERROR'.
    WHEN 4.
      MESSAGE A001(F2) WITH 'SINGLE ERROR'.
  ENDCASE.

  CALL FUNCTION 'CHANGEDOCUMENT_CLOSE'
    EXPORTING
      OBJECTCLASS             = 'QUOTEN2'
      OBJECTID                = LOBJID
      DATE_OF_CHANGE          = SY-DATUM
      TIME_OF_CHANGE          = SY-UZEIT
      TCODE                   = 'ZRFC_MM_QUOTA_BAPI' "TCODE'
      USERNAME                = SY-UNAME
      OBJECT_CHANGE_INDICATOR = 'U' "OBJECT_CHANGE_INDICATOR'
*     NO_CHANGE_POINTERS      = NO_CHANGE_POINTERS
    EXCEPTIONS
      HEADER_INSERT_FAILED    = 1
      OBJECT_INVALID          = 2
      OPEN_MISSING            = 3
      NO_POSITION_INSERTED    = 4
      OTHERS                  = 5.

  CASE SY-SUBRC.
    WHEN 1.
      MESSAGE A001(F2) WITH 'INSERT HEADER FAILED'.
    WHEN 2.
      MESSAGE A001(F2) WITH 'OBJECT INVALID'.
    WHEN 3.
      MESSAGE A001(F2) WITH 'OPEN MISSING'.
    WHEN 5.
      MESSAGE A001(F2) WITH 'CLOSE ERROR'.
  ENDCASE.
ENDFORM.


FORM ZQUOTE_WRITE_DOCU_EQUK TABLES XTEQUK TYPE STANDARD TABLE YTEQUK TYPE STANDARD TABLE
  USING LOBJID TYPE CDHDR-OBJECTID.

  CALL FUNCTION 'CHANGEDOCUMENT_OPEN'
    EXPORTING
      OBJECTCLASS      = 'QUOTEN2'
      OBJECTID         = LOBJID
*     PLANNED_CHANGE_NUMBER   = PLANNED_CHANGE_NUMBER
*     PLANNED_OR_REAL_CHANGES = PLANNED_OR_REAL_CHANGES
    EXCEPTIONS
      SEQUENCE_INVALID = 1
      OTHERS           = 2.

  CASE SY-SUBRC.
    WHEN 1.
      MESSAGE A001(F2) WITH 'SEQUENCE INVALID'.
    WHEN 2.
      MESSAGE A001(F2) WITH 'OPEN ERROR'.
  ENDCASE.

  CALL FUNCTION 'CHANGEDOCUMENT_MULTIPLE_CASE'
    EXPORTING
      TABLENAME              = 'EQUK                          '
      CHANGE_INDICATOR       = 'U'
      DOCU_DELETE            = 'X'
    TABLES
      TABLE_OLD              = YTEQUK
      TABLE_NEW              = XTEQUK
    EXCEPTIONS
      NAMETAB_ERROR          = 1
      OPEN_MISSING           = 2
      POSITION_INSERT_FAILED = 3
      OTHERS                 = 4.
  CASE SY-SUBRC.
    WHEN 1.
      MESSAGE A001(F2) WITH 'NAMETAB-ERROR'.
    WHEN 2.
      MESSAGE A001(F2) WITH 'OPEN MISSING'.
    WHEN 3.
      MESSAGE A001(F2) WITH 'INSERT ERROR'.
    WHEN 4.
      MESSAGE A001(F2) WITH 'SINGLE ERROR'.
  ENDCASE.

  CALL FUNCTION 'CHANGEDOCUMENT_CLOSE'
    EXPORTING
      OBJECTCLASS             = 'QUOTEN2'
      OBJECTID                = LOBJID
      DATE_OF_CHANGE          = SY-DATUM
      TIME_OF_CHANGE          = SY-UZEIT
      TCODE                   = 'ZRFC_MM_QUOTA_BAPI' "TCODE'
      USERNAME                = SY-UNAME
      OBJECT_CHANGE_INDICATOR = 'U' "OBJECT_CHANGE_INDICATOR'
*     NO_CHANGE_POINTERS      = NO_CHANGE_POINTERS
    EXCEPTIONS
      HEADER_INSERT_FAILED    = 1
      OBJECT_INVALID          = 2
      OPEN_MISSING            = 3
      NO_POSITION_INSERTED    = 4
      OTHERS                  = 5.

  CASE SY-SUBRC.
    WHEN 1.
      MESSAGE A001(F2) WITH 'INSERT HEADER FAILED'.
    WHEN 2.
      MESSAGE A001(F2) WITH 'OBJECT INVALID'.
    WHEN 3.
      MESSAGE A001(F2) WITH 'OPEN MISSING'.
    WHEN 5.
      MESSAGE A001(F2) WITH 'CLOSE ERROR'.
  ENDCASE.
ENDFORM.


FORM ZQUOTE_WRITE_DOCUMENT USING LSEQUKO LIKE EQUK LSEQUKN LIKE EQUK PUDI TYPE C.

  DATA:LOBJID LIKE CDHDR-OBJECTID.
  LOBJID(18) = LSEQUKO-MATNR.
  LOBJID+40(4) = LSEQUKO-WERKS.

  CALL FUNCTION 'CHANGEDOCUMENT_OPEN'
    EXPORTING
      OBJECTCLASS      = 'QUOTEN2'
      OBJECTID         = LOBJID
*     PLANNED_CHANGE_NUMBER   = PLANNED_CHANGE_NUMBER
*     PLANNED_OR_REAL_CHANGES = PLANNED_OR_REAL_CHANGES
    EXCEPTIONS
      SEQUENCE_INVALID = 1
      OTHERS           = 2.

  CASE SY-SUBRC.
    WHEN 1.
      MESSAGE A001(F2) WITH 'SEQUENCE INVALID'.
    WHEN 2.
      MESSAGE A001(F2) WITH 'OPEN ERROR'.
  ENDCASE.

  CALL FUNCTION 'CHANGEDOCUMENT_SINGLE_CASE'
    EXPORTING
      TABLENAME              = 'EQUK                          '
      WORKAREA_OLD           = LSEQUKO
      WORKAREA_NEW           = LSEQUKN
      CHANGE_INDICATOR       = 'U'
      DOCU_DELETE            = 'X'
    EXCEPTIONS
      NAMETAB_ERROR          = 1
      OPEN_MISSING           = 2
      POSITION_INSERT_FAILED = 3
      OTHERS                 = 4.
  CASE SY-SUBRC.
    WHEN 1.
      MESSAGE A001(F2) WITH 'NAMETAB-ERROR'.
    WHEN 2.
      MESSAGE A001(F2) WITH 'OPEN MISSING'.
    WHEN 3.
      MESSAGE A001(F2) WITH 'INSERT ERROR'.
    WHEN 4.
      MESSAGE A001(F2) WITH 'SINGLE ERROR'.
  ENDCASE.

  CALL FUNCTION 'CHANGEDOCUMENT_CLOSE'
    EXPORTING
      OBJECTCLASS             = 'QUOTEN2'
      OBJECTID                = LOBJID
      DATE_OF_CHANGE          = SY-DATUM
      TIME_OF_CHANGE          = SY-UZEIT
      TCODE                   = 'ZRFC_MM_QUOTA_BAPI' "TCODE'
      USERNAME                = SY-UNAME
      OBJECT_CHANGE_INDICATOR = 'U' "OBJECT_CHANGE_INDICATOR'
*     NO_CHANGE_POINTERS      = NO_CHANGE_POINTERS
    EXCEPTIONS
      HEADER_INSERT_FAILED    = 1
      OBJECT_INVALID          = 2
      OPEN_MISSING            = 3
      NO_POSITION_INSERTED    = 4
      OTHERS                  = 5.

  CASE SY-SUBRC.
    WHEN 1.
      MESSAGE A001(F2) WITH 'INSERT HEADER FAILED'.
    WHEN 2.
      MESSAGE A001(F2) WITH 'OBJECT INVALID'.
    WHEN 3.
      MESSAGE A001(F2) WITH 'OPEN MISSING'.
    WHEN 5.
      MESSAGE A001(F2) WITH 'CLOSE ERROR'.
  ENDCASE.
ENDFORM.

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

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

相关文章

STM32 CubeMX使用介绍(含FreeRTOS生成)

文章目录 前言1. 简介1.1 什么是STM32CubeMX1.2 为什么会有STM32CubeMX的出现1.3 STM32CubeMX常用功能有哪些&#xff1f;1.4 官方资料下载地址 2. 下载和安装STM32CubeMX2.1 下载软件2.2 软件安装 3. 使用方式3.1 说明3.2 不同选择器介绍3.3 构建新的项目3.1 选择单片机的型号…

【spring】@DependsOn注注解学习

DependsOn介绍 DependsOn 是 Spring 框架中的一个注解&#xff0c;用于指定一个 bean 的依赖关系。当 Spring 容器初始化 bean 时&#xff0c;它会按照一定的顺序进行初始化。如果一个 bean 依赖于其他 bean&#xff0c;那么这个 bean 的初始化应该在依赖的 bean 之后进行。 …

SPSS k-均值聚类的 anova分析表解读

from&#xff1a;SPSS K均值聚类&#xff08;k-means&#xff09;和可视化方法 - CollinsLi - 博客园 (cnblogs.com) F值&#xff1a;变量对聚类的贡献 显著性水平&#xff1a;<0.05 则因子显著

SpringBoot + Vue项目(显示+删除+回显家居)

文章目录 1.显示家居信息1.com/sun/furn/controller/FurnController.java 添加方法2.postman测试3.src/views/HomeView.vue 修改el-table 并清空数据池tableData4.src/views/HomeView.vue 发送请求并取出数据1.方法池2.created阶段调用list方法3.结果展示 5.src/utils/request.…

蓝桥杯练习题——日期问题

1.日期差值 思路 分别计算从第一年到两个日期过了多少天&#xff0c;然后相减 #include<iostream> #include<cmath> using namespace std; int a[] {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int x1, x2;int f(int year, int month, int day){int res…

【爬虫】专栏文章索引

为了方便 快速定位 和 便于文章间的相互引用等 作为一个快速准确的导航工具 爬虫 目录&#xff1a; &#xff08;一&#xff09;web自动化和接口自动化 &#xff08;二&#xff09;实战-爬取Boss直聘信息数据

HTML静态网页成品作业(HTML+CSS)——非遗徽州木雕网页(6个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有6个页面。 二、作品演示 三、代…

python利用openpyxl库操作Excel来读取、修改、写入测试数据

一、openpyxl模块介绍 1、openpyxl是读写Excel的python库&#xff0c;是一个比较综合的工具&#xff0c;能够同时读取和修改Excel文档 2、openpyxl中有三个不同层次的类,每一个类都有各自的属性和方法&#xff1a; Workbook是一个excel工作表 Worksheet是工作表中的表…

Android Studio实现内容丰富的安卓医院医生招聘平台

获取源码请点击文章末尾QQ名片联系&#xff0c;源码不免费&#xff0c;尊重创作&#xff0c;尊重劳动 项目编号120 1.开发环境android stuido jdk1.8 eclipse mysql tomcat 2.功能介绍 安卓端&#xff1a; 1.注册登录 2.查看公告 3.查看职位列表 4.收藏功能&#xff0c; 5.投递…

Java基础学习笔记二

Java的加载与执行 Java既是编译型语言又是解释型语言 question&#xff1a;为什么JVM可以跨平台执行 answer &#xff1a; Java虚拟机&#xff08;JVM&#xff09;之所以能够跨平台执行&#xff0c;是因为它在不同操作系统上提供了一个统一的运行环境&#xff0c;实现了Java程…

web前端之不一样的下拉菜单、不选中第一个元素的样式效果、伪类排除第一个元素、符号选择器、hover、not、first、child

MENU 效果图htmlcssJShtmlcss 效果图 htmlcssJS html <nav><ul><li class"navli"><h4>HTML5</h4><ul class"ulson"><li class"lison">HTML5</li></ul></li><li class"na…

Vue+Element-UI Table表格实现复选框单选效果(隐藏表头上的全选Checkbox)

实现效果 完整代码 <div class"box-pos"><el-table ref"table" :header-cell-style"{ color: #FFF, background: #333 }":cell-style"{ color: #FFF, background: #333 }" :data"grListData" style"width: 1…

Hack The Box-Devvortex

目录 信息收集 nmap whatweb WEB web信息收集 wfuzz 漏洞探索 漏洞发现 反弹shell 提权 get user hashcat get root 信息收集 nmap 端口信息收集┌──(root?ru)-[~/kali/hackthebox] └─# nmap -p- 10.10.11.242 --min-rate 10000 Starting Nmap 7…

基于华为ensp的企业网络规划(新版)

第一章 项目概述 1.1 项目总体描述 假设某大型公司总部在北京、在重庆设置分部&#xff0c;总部和分部均有研发部、市场部、财务部等部门&#xff0c;现在要求进行网络规划与设计&#xff0c;实现分部和总部能够进行网络连通。为了保证数据安全&#xff0c;在总部和分部之间可…

全国各省市县统计年鉴/中国环境统计年鉴/中国工业企业数据库/中国专利数据库/污染排放数据库

统计年鉴是指以统计图表和分析说明为主&#xff0c;通过高度密集的统计数据来全面、系统、连续地记录年度经济、社会等各方面发展情况的大型工具书来获取统计数据资料。 统计年鉴是进行各项经济、社会研究的必要前提。而借助于统计年鉴&#xff0c;则是研究者常用的途径。目前国…

第二证券策略:股指预计维持震荡格局 关注消费、农牧饲渔等板块

第二证券指出&#xff0c;在前期高股息盈利板块和科技立异主题接连获得较好体现后&#xff0c;商场出现必定程度的“高切低”现象&#xff0c;首要体现是切换为轻视值和价值方向&#xff0c;中长期高股息盈利和科技立异主题仍是商场主线&#xff0c;3月份后半程关注医药生物、电…

Visual Studio 2013 - 高亮设置突出显示的引用

Visual Studio 2013 - 高亮设置突出显示的引用 1. 高亮设置 突出显示的引用References 1. 高亮设置 突出显示的引用 工具 -> 选项… -> 环境 -> 字体和颜色 References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

红外相机和RGB相机标定:实现两种模态数据融合

1. 前期准备 RGB相机&#xff1a;森云智能SG2-IMX390&#xff0c;1个红外相机&#xff1a;艾睿光电IR-Pilot 640X-32G&#xff0c;1个红外标定板&#xff1a;https://item.taobao.com/item.htm?_ujp3fdd12b99&id644506141871&spma1z09.2.0.0.5f822e8dKrxxYI 2.操作步…

NSS [SWPUCTF 2022 新生赛]ez_ez_unserialize

NSS [SWPUCTF 2022 新生赛]ez_ez_unserialize 开题&#xff0c;直接给了题目源码。 简单看了一下&#xff0c;题目告诉我们flag在哪&#xff0c;而且类中有高亮文件方法。怎么拿flag已经很明显了。关键点在于__weakup()魔术方法固定死了我们高亮的文件。所以这题只需要绕过__w…

基于51单片机的PWM波发生器两路互补调频脉宽

地址&#xff1a;https://pan.baidu.com/s/1VMr7X_aCmaMd8DeR7Q6OBw 提取码&#xff1a;1234 仿真图&#xff1a; 功能简介&#xff1a; 1、要求占空比和频率可调 2、占空比调节范围&#xff1a;0.1-0.9&#xff0c;频率调节范围0.5kHZ—3.0kHZ 3、使用4个按键调节&#xff0…