SAP PP bom历史导出 ALV 及XLSX 带ECN号

bom总数 104W PS超过XLSX上限 ,那就分文件

*&---------------------------------------------------------------------*
*& Report ZRPT_PP_BOM_HIS_ECN
*&---------------------------------------------------------------------*
*& tcode:zpp023
*& 读取历史
*&---------------------------------------------------------------------*
REPORT ZRPT_PP_BOM_HIS_ECN.

TABLES:MAST,MARA,STPO,STAS.

SELECTION-SCREEN BEGIN OF BLOCK 001 WITH FRAME TITLE TEXT-001.
  SELECT-OPTIONS S_MATNR FOR MAST-MATNR.          "物料代码
  SELECT-OPTIONS S_WERKS FOR MAST-WERKS.          "工厂
  SELECT-OPTIONS S_MTART FOR MARA-MTART.          "物料类型
  SELECT-OPTIONS S_MATKL FOR MARA-MATKL.          "物料组
  SELECT-OPTIONS S_STLAN FOR MAST-STLAN.
  SELECT-OPTIONS S_STLAL FOR MAST-STLAL.

  PARAMETERS:PDATEV TYPE CSAP_MBOM-DATUV DEFAULT SY-DATUM.
  PARAMETERS:PDATEB TYPE CSAP_MBOM-DATUB DEFAULT SY-DATUM.

  PARAMETERS:RBALV RADIOBUTTON GROUP G1 DEFAULT 'X' USER-COMMAND U1,
             RBCSV RADIOBUTTON GROUP G1.
  PARAMETERS:PSHMSG AS CHECKBOX DEFAULT 'X'.
  PARAMETERS:PCNT TYPE I DEFAULT 1000000."Excel 100W上线
  PARAMETERS:POUTPATH TYPE RLGRAP-FILENAME.
SELECTION-SCREEN END OF BLOCK 001.

DATA: LV_FULL_PATH      TYPE STRING,
      LV_WORKDIR        TYPE STRING,
      LV_FILE_SEPARATOR TYPE C.

DATA: GT_FIELDCAT TYPE LVC_T_FCAT,
      GS_FIELDCAT TYPE LVC_S_FCAT,
      GS_LAYOUT   TYPE LVC_S_LAYO.

DATA: LO_EXCEL                  TYPE REF TO ZCL_EXCEL,
      LO_EXCEL_WRITER           TYPE REF TO ZIF_EXCEL_WRITER,
      LO_WORKSHEET              TYPE REF TO ZCL_EXCEL_WORKSHEET,
      LO_STYLE_BOLD_BORDER      TYPE REF TO ZCL_EXCEL_STYLE,
      LV_STYLE_BOLD_BORDER_GUID TYPE ZEXCEL_CELL_STYLE,

      LO_BORDER_DARK            TYPE REF TO ZCL_EXCEL_STYLE_BORDER.

DATA: LV_FILE      TYPE XSTRING,
      LV_BYTECOUNT TYPE I,
      LT_FILE_TAB  TYPE SOLIX_TAB.


DATA:BEGIN OF GT_TAB OCCURS 0,
       STLNR LIKE MAST-STLNR, "物料清单
       WERKS LIKE MAST-WERKS, "
       MATNR LIKE MAST-MATNR,
       IDNRK LIKE STPO-IDNRK,
       POSNR LIKE STPO-POSNR,
       SORTF LIKE STPO-SORTF, "排序字符串
       STLTY LIKE STPO-STLTY, " 物料清单类别
       MENGE LIKE STPO-MENGE,
       MEINS LIKE STPO-MEINS,
       POSTP LIKE STPO-POSTP, "项目类别
       DATUV LIKE STPO_API02-VALID_FROM, "有效起始日期
       STVKN LIKE STPO-STVKN, "BOM 项目节点号
       DATAB LIKE STPO_API02-VALID_FROM,
       AENNR LIKE STPO-AENNR,
       ECNTO LIKE STPO-AENNR,
       LKENZ LIKE STPO-LKENZ,
       ITMID LIKE STPO-ITMID, "项目ID
     END OF GT_TAB.


AT SELECTION-SCREEN ON VALUE-REQUEST FOR POUTPATH.
  LV_WORKDIR = POUTPATH.
  CL_GUI_FRONTEND_SERVICES=>DIRECTORY_BROWSE( EXPORTING INITIAL_FOLDER  = LV_WORKDIR
                                              CHANGING  SELECTED_FOLDER = LV_WORKDIR ).
  POUTPATH = LV_WORKDIR.

INITIALIZATION.

  CL_GUI_FRONTEND_SERVICES=>GET_DESKTOP_DIRECTORY( CHANGING DESKTOP_DIRECTORY = LV_WORKDIR ).
*  CL_GUI_FRONTEND_SERVICES=>GET_SAPGUI_WORKDIR( CHANGING SAPWORKDIR = LV_WORKDIR ).
  CL_GUI_CFW=>FLUSH( ).
  POUTPATH = LV_WORKDIR.

START-OF-SELECTION.
  DATA:BEGIN OF GT_MAST OCCURS 0,
         MATNR LIKE MAST-MATNR,
         WERKS LIKE MAST-WERKS,
         STLAN LIKE MAST-STLAN,
         STLAL LIKE MAST-STLAL,
       END OF GT_MAST.

  SELECT MAST~MATNR MAST~WERKS MAST~STLAN MAST~STLAL INTO TABLE GT_MAST
    FROM MAST JOIN MARA ON MARA~MATNR = MAST~MATNR
    WHERE MAST~MATNR IN S_MATNR
       AND MAST~WERKS IN S_WERKS
       AND MAST~STLAN IN S_STLAN
       AND MAST~STLAL IN S_STLAL.

  DATA:GT_STPO LIKE TABLE OF STPO_API02 WITH HEADER LINE.
  DATA:LL_TABIX(10),"循环标号
       LL_LINES(10),"行数
       LL_PECNT     TYPE P LENGTH 6 DECIMALS 2, "百分比
       LL_PECET(6),"百分数
       LL_TEXT(40)."消息

  DATA:LVSTR(50) TYPE C.

  DESCRIBE TABLE GT_MAST LINES LL_LINES.
  LOOP AT GT_MAST.
    IF PSHMSG = 'X'.
      LL_TABIX = SY-TABIX."当前处理的行号
      LL_PECNT = LL_TABIX / LL_LINES * 100."已处理百分比
      LL_PECET = LL_PECNT.
      "拼接显示消息
      CONCATENATE 'BOM展开已完成' LL_PECET '%,共' LL_TABIX '条/' LL_LINES '条' INTO LL_TEXT.
      CONDENSE LL_TEXT."整理格式,去掉多余空格,格式更整齐
      CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR' "调用进度条函数,传入百分比和消息
        EXPORTING
          PERCENTAGE = LL_PECNT
          TEXT       = LL_TEXT.
    ENDIF.
    CLEAR GT_STPO[].
    CALL FUNCTION 'CSAP_MAT_BOM_READ'
      EXPORTING
        MATERIAL    = GT_MAST-MATNR
        PLANT       = GT_MAST-WERKS
        BOM_USAGE   = GT_MAST-STLAN
        ALTERNATIVE = GT_MAST-STLAL
        VALID_FROM  = PDATEV
        VALID_TO    = PDATEB
      TABLES
        T_STPO      = GT_STPO.
    LOOP AT GT_STPO.
      GT_TAB-STLNR = GT_STPO-BOM_NO. "物料清单
      GT_TAB-WERKS = GT_MAST-WERKS.", "
      GT_TAB-MATNR = GT_MAST-MATNR.
      GT_TAB-IDNRK = GT_STPO-COMPONENT.
      GT_TAB-POSNR = GT_STPO-ITEM_NO.
      GT_TAB-SORTF = GT_STPO-SORTSTRING. "排序字符串
      GT_TAB-STLTY =  GT_STPO-COMP_QTY." 物料清单类别
      LVSTR = GT_STPO-COMP_QTY.
      PERFORM RV_MARK_OF_THOUSANDTH(ZABAP_COMMON_PROGRAM) USING LVSTR CHANGING LVSTR.
      GT_TAB-MENGE = LVSTR.
      GT_TAB-MEINS = GT_STPO-COMP_UNIT.
      GT_TAB-POSTP = GT_STPO-ITEM_CATEG. "项目类别
      GT_TAB-DATUV = GT_STPO-VALID_FROM. "有效起始日期
      GT_TAB-STVKN = GT_STPO-ITEM_NODE . "BOM 项目节点号
      GT_TAB-DATAB = GT_STPO-VALID_TO.
      GT_TAB-AENNR = GT_STPO-CHANGE_NO.
      GT_TAB-ECNTO = GT_STPO-CHG_NO_TO.
      GT_TAB-LKENZ = GT_STPO-CHG_NO_TO.
      GT_TAB-ITMID = GT_STPO-ITM_IDENT."项目ID
      APPEND GT_TAB.
    ENDLOOP.
  ENDLOOP.

  IF RBALV =  'X'.
    PERFORM  DISPLAY_DATA.
  ELSE. "XLS
    DATA:FILENAME TYPE STRING.
    DATA:PROW TYPE I.
    DATA: LS_LINES(10),"行数
          LS_TABIX(10),"循环标号
          LS_PECNT     TYPE P LENGTH 6 DECIMALS 2, "百分比
          LS_PECET(6),"百分数
          LS_TEXT(40)."消息

    CREATE OBJECT LO_BORDER_DARK.
    LO_BORDER_DARK->BORDER_COLOR-RGB = ZCL_EXCEL_STYLE_COLOR=>C_BLACK.
    LO_BORDER_DARK->BORDER_STYLE = ZCL_EXCEL_STYLE_BORDER=>C_BORDER_THIN.

    DATA:CNT       TYPE I,
         NCNT      TYPE I,
         XLSROW    TYPE I,
         SHTIDX    TYPE I,
         SHTNM(31) TYPE C.
    DESCRIBE TABLE GT_TAB LINES NCNT.
    LL_LINES = NCNT.
    LOOP AT GT_TAB.
      PROW = SY-TABIX .
      IF PSHMSG = 'X'.
        LL_TABIX = SY-TABIX."当前处理的行号
        LL_PECNT = LL_TABIX / LL_LINES * 100."已处理百分比
        LL_PECET = LL_PECNT.
        "拼接显示消息
        CONCATENATE 'BOM展开已完成' LL_PECET '%,共' LL_TABIX '条/' LL_LINES '条' INTO LL_TEXT.
        CONDENSE LL_TEXT."整理格式,去掉多余空格,格式更整齐
        CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR' "调用进度条函数,传入百分比和消息
          EXPORTING
            PERCENTAGE = LL_PECNT
            TEXT       = LL_TEXT.
      ENDIF.
      IF PROW = 1  OR ( PROW MOD PCNT ) = 1.
        CREATE OBJECT LO_EXCEL.
        CREATE OBJECT LO_EXCEL_WRITER TYPE ZCL_EXCEL_WRITER_2007.
        SHTNM = 'SHEET1'.
        LO_WORKSHEET = LO_EXCEL->GET_ACTIVE_WORKSHEET( ).
        LO_WORKSHEET->SET_TITLE( SHTNM ).

*  抬头剧中
        LO_STYLE_BOLD_BORDER = LO_EXCEL->ADD_NEW_STYLE( ).
        LO_STYLE_BOLD_BORDER->FONT->BOLD = ABAP_TRUE.
        LO_STYLE_BOLD_BORDER->FONT->ITALIC = ABAP_FALSE.
        LO_STYLE_BOLD_BORDER->FONT->COLOR-RGB = ZCL_EXCEL_STYLE_COLOR=>C_BLACK.
        LO_STYLE_BOLD_BORDER->ALIGNMENT->HORIZONTAL = ZCL_EXCEL_STYLE_ALIGNMENT=>C_HORIZONTAL_CENTER.
        LO_STYLE_BOLD_BORDER->BORDERS->ALLBORDERS = LO_BORDER_DARK.
        LV_STYLE_BOLD_BORDER_GUID = LO_STYLE_BOLD_BORDER->GET_GUID( ).

        LO_WORKSHEET->SET_CELL( IP_ROW = 1 IP_COLUMN = 'A' IP_VALUE = 'BOM清单'  ).
        LO_WORKSHEET->SET_CELL( IP_ROW = 1 IP_COLUMN = 'B' IP_VALUE = '工厂'  ).
        LO_WORKSHEET->SET_CELL( IP_ROW = 1 IP_COLUMN = 'C' IP_VALUE = '物料'  ).
        LO_WORKSHEET->SET_CELL( IP_ROW = 1 IP_COLUMN = 'D' IP_VALUE = '组件'  ).
        LO_WORKSHEET->SET_CELL( IP_ROW = 1 IP_COLUMN = 'E' IP_VALUE = '排序字符串'  ).
        LO_WORKSHEET->SET_CELL( IP_ROW = 1 IP_COLUMN = 'F' IP_VALUE = '物料清单类别'  ).
        LO_WORKSHEET->SET_CELL( IP_ROW = 1 IP_COLUMN = 'G' IP_VALUE = '数量'  ).
        LO_WORKSHEET->SET_CELL( IP_ROW = 1 IP_COLUMN = 'H' IP_VALUE = '单位'  ).
        LO_WORKSHEET->SET_CELL( IP_ROW = 1 IP_COLUMN = 'I' IP_VALUE = '项目类别'  ).
        LO_WORKSHEET->SET_CELL( IP_ROW = 1 IP_COLUMN = 'J' IP_VALUE = '有效起始日期'  ).
        LO_WORKSHEET->SET_CELL( IP_ROW = 1 IP_COLUMN = 'K' IP_VALUE = '项目节点号'  ).
        LO_WORKSHEET->SET_CELL( IP_ROW = 1 IP_COLUMN = 'L' IP_VALUE = '有效截止日期'  ).
        LO_WORKSHEET->SET_CELL( IP_ROW = 1 IP_COLUMN = 'M' IP_VALUE = '变更号自'  ).
        LO_WORKSHEET->SET_CELL( IP_ROW = 1 IP_COLUMN = 'N' IP_VALUE = '变更号至'  ).
        LO_WORKSHEET->SET_CELL( IP_ROW = 1 IP_COLUMN = 'O' IP_VALUE = '删除标记'  ).
        LO_WORKSHEET->SET_CELL( IP_ROW = 1 IP_COLUMN = 'P' IP_VALUE = '外部项目ID'  ).
        LO_WORKSHEET->SET_CELL( IP_ROW = 1 IP_COLUMN = 'Q' IP_VALUE = '项目号'  ).
      ENDIF.
      XLSROW = PROW MOD PCNT  + 1.

      IF XLSROW = 1.
        XLSROW = PCNT + 1.
      ENDIF.

      LO_WORKSHEET->SET_CELL( IP_ROW = XLSROW IP_COLUMN = 'A' IP_VALUE = GT_TAB-STLNR  ).
      LO_WORKSHEET->SET_CELL( IP_ROW = XLSROW IP_COLUMN = 'B' IP_VALUE = GT_TAB-WERKS  ).
      LO_WORKSHEET->SET_CELL( IP_ROW = XLSROW IP_COLUMN = 'C' IP_VALUE = GT_TAB-MATNR  ).
      LO_WORKSHEET->SET_CELL( IP_ROW = XLSROW IP_COLUMN = 'D' IP_VALUE = GT_TAB-IDNRK  ).
      LO_WORKSHEET->SET_CELL( IP_ROW = XLSROW IP_COLUMN = 'E' IP_VALUE = GT_TAB-SORTF  ).
      LO_WORKSHEET->SET_CELL( IP_ROW = XLSROW IP_COLUMN = 'F' IP_VALUE = GT_TAB-STLTY  ).
      LO_WORKSHEET->SET_CELL( IP_ROW = XLSROW IP_COLUMN = 'G' IP_VALUE = GT_TAB-MENGE  ).
      LO_WORKSHEET->SET_CELL( IP_ROW = XLSROW IP_COLUMN = 'H' IP_VALUE = GT_TAB-MEINS  ).
      LO_WORKSHEET->SET_CELL( IP_ROW = XLSROW IP_COLUMN = 'I' IP_VALUE = GT_TAB-POSTP  ).
      LO_WORKSHEET->SET_CELL( IP_ROW = XLSROW IP_COLUMN = 'J' IP_VALUE = GT_TAB-DATUV  ).
      LO_WORKSHEET->SET_CELL( IP_ROW = XLSROW IP_COLUMN = 'K' IP_VALUE = GT_TAB-STVKN  ).
      LO_WORKSHEET->SET_CELL( IP_ROW = XLSROW IP_COLUMN = 'L' IP_VALUE = GT_TAB-DATAB  ).
      LO_WORKSHEET->SET_CELL( IP_ROW = XLSROW IP_COLUMN = 'M' IP_VALUE = GT_TAB-AENNR  ).
      LO_WORKSHEET->SET_CELL( IP_ROW = XLSROW IP_COLUMN = 'N' IP_VALUE = GT_TAB-ECNTO  ).
      LO_WORKSHEET->SET_CELL( IP_ROW = XLSROW IP_COLUMN = 'O' IP_VALUE = GT_TAB-LKENZ  ).
      LO_WORKSHEET->SET_CELL( IP_ROW = XLSROW IP_COLUMN = 'P' IP_VALUE = GT_TAB-ITMID  ).
      LO_WORKSHEET->SET_CELL( IP_ROW = XLSROW IP_COLUMN = 'Q' IP_VALUE = GT_TAB-POSNR  ).
      IF  XLSROW = PCNT + 1 OR PROW >= NCNT.
        LV_FILE = LO_EXCEL_WRITER->WRITE_FILE( LO_EXCEL ).
        " Convert to binary
        CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
          EXPORTING
            BUFFER        = LV_FILE
          IMPORTING
            OUTPUT_LENGTH = LV_BYTECOUNT
          TABLES
            BINARY_TAB    = LT_FILE_TAB.
        SHTIDX = CEIL( PROW / PCNT ) + 1.
        FILENAME = SY-TCODE && '/' && SHTIDX && '.xlsx'.
        IF POUTPATH IS INITIAL.
          POUTPATH = LV_WORKDIR.
        ENDIF.
        CL_GUI_FRONTEND_SERVICES=>GET_FILE_SEPARATOR( CHANGING FILE_SEPARATOR = LV_FILE_SEPARATOR ).
        CONCATENATE POUTPATH LV_FILE_SEPARATOR FILENAME INTO LV_FULL_PATH.

        " Save the file
        CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD( EXPORTING BIN_FILESIZE = LV_BYTECOUNT
                                                          FILENAME     = LV_FULL_PATH
                                                          FILETYPE     = 'BIN'
                                                CHANGING  DATA_TAB     = LT_FILE_TAB ).
        CLEAR:LV_BYTECOUNT,LO_WORKSHEET.
        WRITE:/ '已经写入文件' && LV_FULL_PATH && '的' && SHTNM.
      ENDIF.
    ENDLOOP.
  ENDIF.



FORM DISPLAY_DATA.
  PERFORM BUILD_FIELDCAT(ZRPT_MM_AQKC) USING 'STLNR' '' '' 'STPO' 'STLNR' '' '' 'BOM清单' 'X' 'X' CHANGING GT_FIELDCAT.
  PERFORM BUILD_FIELDCAT(ZRPT_MM_AQKC) USING 'WERKS' '' '' 'MARC' 'WERKS' '' '' '工厂' 'X' 'X' CHANGING GT_FIELDCAT.
  PERFORM BUILD_FIELDCAT(ZRPT_MM_AQKC) USING 'MATNR' '' '' 'MARC' 'MATNR' '' '' '物料' 'X' 'X' CHANGING GT_FIELDCAT.
  PERFORM BUILD_FIELDCAT(ZRPT_MM_AQKC) USING 'POSNR' '' '' 'STPO' 'POSNR' '' '' '项目号' 'X' 'X' CHANGING GT_FIELDCAT.
  PERFORM BUILD_FIELDCAT(ZRPT_MM_AQKC) USING 'IDNRK' '' '' 'STPO' 'IDNRK' '' '' '组件' 'X' 'X' CHANGING GT_FIELDCAT.
  PERFORM BUILD_FIELDCAT(ZRPT_MM_AQKC) USING 'SORTF' '' '' 'STPO' 'SORTF' '' '' '排序字符串' 'X' 'X' CHANGING GT_FIELDCAT.
  PERFORM BUILD_FIELDCAT(ZRPT_MM_AQKC) USING 'STLTY' '' '' 'STPO' 'STLTY' '' '' '物料清单类别' 'X' 'X' CHANGING GT_FIELDCAT.
  PERFORM BUILD_FIELDCAT(ZRPT_MM_AQKC) USING 'MENGE' '' '' 'STPO' 'MENGE' '' '' '数量' 'X' 'X' CHANGING GT_FIELDCAT.
  PERFORM BUILD_FIELDCAT(ZRPT_MM_AQKC) USING 'MEINS' '' '' 'STPO' 'MEINS' '' '' '单位' 'X' 'X' CHANGING GT_FIELDCAT.
  PERFORM BUILD_FIELDCAT(ZRPT_MM_AQKC) USING 'POSTP' '' '' 'STPO' 'POSTP' '' '' '项目类别' 'X' 'X' CHANGING GT_FIELDCAT.
  PERFORM BUILD_FIELDCAT(ZRPT_MM_AQKC) USING 'DATUV' '' '' 'STPO' 'DATUV' '' '' '有效起始日期' 'X' 'X' CHANGING GT_FIELDCAT.
  PERFORM BUILD_FIELDCAT(ZRPT_MM_AQKC) USING 'STVKN' '' '' 'STPO' 'STVKN' '' '' '项目节点号' 'X' 'X' CHANGING GT_FIELDCAT.
  PERFORM BUILD_FIELDCAT(ZRPT_MM_AQKC) USING 'DATAB' '' '' 'STPO' 'DATAB' '' '' '有效截止日期' 'X' 'X' CHANGING GT_FIELDCAT.
  PERFORM BUILD_FIELDCAT(ZRPT_MM_AQKC) USING 'AENNR' '' '' 'STPO' 'AENNR' '' '' '变更号自' 'X' 'X' CHANGING GT_FIELDCAT.
  PERFORM BUILD_FIELDCAT(ZRPT_MM_AQKC) USING 'ECNTO' '' '' 'STPO' 'ECNTO' '' '' '变更号至' 'X' 'X' CHANGING GT_FIELDCAT.
  PERFORM BUILD_FIELDCAT(ZRPT_MM_AQKC) USING 'LKENZ' '' '' 'STPO' 'LKENZ' '' '' '删除标记' 'X' 'X' CHANGING GT_FIELDCAT.
  PERFORM BUILD_FIELDCAT(ZRPT_MM_AQKC) USING 'ITMID' '' '' 'STPO' 'ITMID' '' '' '外部项目ID' 'X' 'X' CHANGING GT_FIELDCAT.

  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_TAB
    EXCEPTIONS
      OTHERS                  = 1.
ENDFORM.

分文件导出

利用SAP标准BAPI  CSAP_MAT_BOM_READ

写于20241229  浙江台州  

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

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

相关文章

HAL 库句柄

一、命名方式:句柄是h为首字母,后面接协议名称 比如:huart、hadc、hi2c等 二、句柄类型: 这里拿huart举例,它的类型是UART_HandleTypeDef 进去stm32f1xx_hal_uart.h之后发现句柄的结构定义有部分是灰色的 灰色的当U…

JVM 性能监控工具之命令行篇

在 Java 开发过程中,性能监控和问题排查是开发者经常面临的任务。JDK 提供了一系列命令行工具,帮助开发者监控 JVM 运行状态、诊断内存泄漏、线程死锁等问题。本文将详细介绍这些工具的使用方法及其应用场景。 1 JDK性能监控工具 1.1 jps:查…

使用IDEA远程debug服务器上的jar包

仅用于测试环境调试,debug会阻塞 如生产jar包叫 test.jar ,部署的IP为10.184.136.18,端口为9999,idea的项目为local-network,照如下配置即可,仅红色部分需替换 弄完之后,打开debug,…

【SQL Server】教材数据库(3)

接着教材数据库(1)的内容,完成下列查询。 1 查询订购高等教育出版社教材的学生姓名 2 查询比所有高等教育出版社的图书都贵的图书信息 3 列出每位学生姓名、订购教材书名、价格。 1、嵌套查询:use jiaocai select student.nam…

你有哪些Deep Learning(RNN、CNN)调参的经验?

在深度学习的实践中,调参是一项既艺术又科学的工作。它不仅需要理论知识的支撑,还需要大量的实践经验。以下是一些在RNN和CNN模型调参中积累的经验,希望对正在这个领域摸索的朋友们有所帮助。 1. 从成熟的开源项目开始 对于初学者来说&…

Unity3D仿星露谷物语开发11之添加Scenary Fader

1、目标 当角色移动到草/树的后面时,因为草/树层级优先级大于等于角色,导致角色无法全部展示。 如下图所示,草遮挡了一半的角色,而树则遮挡了全部的角色。 我们希望当角色走到草/树的后面时,草/树能够改变透明度&…

021-spring-springmvc

比较重要的部分 比较重要的部分 比较重要的部分 关于组件的部分 这里以 RequestMappingHandlerMapping 为例子 默认的3个组件是: org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping org.springframework.web.servlet.mvc.method.annotation.Requ…

关于 PCB线路板细节锣槽问题 的解决方法

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/144783817 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…

无人机快速巡检、森林、电力、水利大大节省人力成本,降低风险事故

无人机在快速巡检、森林、电力、水利等领域的应用,确实大大节省了人力成本,并有效降低了风险事故。以下是对这些应用的详细分析: 一、无人机快速巡检 无人机快速巡检技术以其高效性、安全性和精准性,在众多领域展现出了巨大的应…

生态碳汇涡度相关监测与通量数据分析实践技术应用

基于MATLAB语言、以实践案例为主,提供所有代码、原理与操作结合 1、以涡度通量塔的高频观测数据为例,基于MATLAB开展上机操作: 2、涡度通量观测基本概况:观测技术方法、数据获取与预处理等 3、涡度通量数据质量控制&#xff1a…

【Lua之·Lua与C/C++交互·Lua CAPI访问栈操作】

系列文章目录 文章目录 前言一、概述1.1 Lua堆栈 二、栈操作2.1 基本的栈操作2.2 入栈操作函数2.3 出栈操作函数2.4 既入栈又出栈的操作函数2.5 栈检查与类型转换函数2.5 获取表数据 三、实例演示总结 前言 Lua是一种轻量级的、高性能的脚本语言,经常被用于游戏开发…

安装OpenGauss数据库流程

一、安装完欧拉系统将yum上传至本地: 创建文件 mkdir /media/iso 挂载镜像 mount /dev/sr0 /media/iso 未通网情况,删除自带的yum,创建一个新的 cd /etc/yum.repos.d/ rm -r 加yum文件名称 (删除自带yum) v…

Go语言zero项目服务恢复与迁移文档

## 一. 服务器环境配置 在迁移和配置 项目时,首先需要确保服务器环境正确配置。以下是配置步骤: ### 1. 安装 Go 语言环境 首先,确保 Go 语言环境已经安装,并且配置正确。执行以下步骤: # 下载 Go 语言安装包 wge…

【 Sonarqube】可视化Java项目单元测试覆盖率统计框架搭建

一、项目背景: 一个小公司的朋友反应他们那边Java项目单元测试有,但还没有可视化统计覆盖率数据,没法统计就不能直观的看到单测的覆盖率,Java的覆盖率统计框架还是比较成熟,部署起来也不是很难,下面我们逐…

使用ForceBindIP绑定应用到指定IP

前言 使用ForceBindIP工具,用户可以轻松地将特定应用程序绑定到指定的IP地址,从而确保应用程序的网络连接通过指定的网络适配器进行。通过在命令提示符下运行ForceBindIP并指定IP地址和应用程序的完整路径,用户能够控制应用程序的网络流量&a…

Webpack学习笔记(6)

首先搭建一个基本的webpack环境: 执行npm init -y,创建pack.json,保存安装包的一些信息 执行npm install webpack webpack-cli webpack-dev-server html-webpack-plugin -D,出现node_modules和package-lock.json。 1.source-Ma…

【学生管理系统】element ui级联菜单bug

级联后端 通过父id来进行查询 GetMapping("/{parentId}")public BaseResult findAllByParentId(PathVariable("parentId") String parentId){//1 根据父id查询所有城市QueryWrapper<TbCity> queryWrapper new QueryWrapper<>();queryWrapper.…

关于无线AP信道调整的优化(锐捷)

目录 一、信道优化的基本原则二、2.4G频段信道优化三、5G频段信道优化四、信道优化代码具体示例五、其他优化措施 一、信道优化的基本原则 信道优化旨在减少信道间的干扰&#xff0c;提高网络覆盖范围和信号质量。基本原则包括&#xff1a; 1. 选择合适的信道&#xff1a;根据…

Ubuntu 下使用命令行将 U 盘格式化为 ext4、FAT32 和 exFAT 的详细教程

Ubuntu 下使用命令行将 U 盘格式化为 ext4、FAT32 和 exFAT 的详细教程 作者&#xff1a;Witheart更新时间&#xff1a;20241228 本教程将详细介绍如何将 U 盘格式化为 ext4、FAT32 和 exFAT 文件系统&#xff0c;同时包括如何安装必要工具&#xff08;如 exfat-utils&#x…

【设计与实现】基于Bootstrap的地方旅游管理系统的设计与实现

目录 第一章 绪论 1.1 研究现状 1.2 设计原则 1.3 研究内容 第四章 系统设计 4.1系统结构设计 4.2系统顺序图设计 4.3数据库设计 第五章 系统实现 5.1登录模块的实现 第一章 绪论 1.1 研究现状 时代的发展&#xff0c;我们迎来了数字化信息时代&#xff0c;它正在渐…