当前位置: 首页 > news >正文

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, "项目IDEND OF GT_TAB.AT SELECTION-SCREEN ON VALUE-REQUEST FOR POUTPATH.LV_WORKDIR = POUTPATH.CL_GUI_FRONTEND_SERVICES=>DIRECTORY_BROWSE( EXPORTING INITIAL_FOLDER  = LV_WORKDIRCHANGING  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_MASTFROM MAST JOIN MARA ON MARA~MATNR = MAST~MATNRWHERE MAST~MATNR IN S_MATNRAND MAST~WERKS IN S_WERKSAND MAST~STLAN IN S_STLANAND 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' "调用进度条函数,传入百分比和消息EXPORTINGPERCENTAGE = LL_PECNTTEXT       = LL_TEXT.ENDIF.CLEAR GT_STPO[].CALL FUNCTION 'CSAP_MAT_BOM_READ'EXPORTINGMATERIAL    = GT_MAST-MATNRPLANT       = GT_MAST-WERKSBOM_USAGE   = GT_MAST-STLANALTERNATIVE = GT_MAST-STLALVALID_FROM  = PDATEVVALID_TO    = PDATEBTABLEST_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."项目IDAPPEND GT_TAB.ENDLOOP.ENDLOOP.IF RBALV =  'X'.PERFORM  DISPLAY_DATA.ELSE. "XLSDATA: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' "调用进度条函数,传入百分比和消息EXPORTINGPERCENTAGE = LL_PECNTTEXT       = 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 binaryCALL FUNCTION 'SCMS_XSTRING_TO_BINARY'EXPORTINGBUFFER        = LV_FILEIMPORTINGOUTPUT_LENGTH = LV_BYTECOUNTTABLESBINARY_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 fileCL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD( EXPORTING BIN_FILESIZE = LV_BYTECOUNTFILENAME     = LV_FULL_PATHFILETYPE     = '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'EXPORTINGI_CALLBACK_PROGRAM      = SY-REPID
"     I_CALLBACK_PF_STATUS_SET = 'PF_STATUS_ALV'I_CALLBACK_USER_COMMAND = 'USER_COMMAND_ALV'IT_FIELDCAT_LVC         = GT_FIELDCATIS_LAYOUT_LVC           = GS_LAYOUTI_DEFAULT               = 'X'I_SAVE                  = 'A'TABLEST_OUTTAB                = GT_TABEXCEPTIONSOTHERS                  = 1.
ENDFORM.

分文件导出

利用SAP标准BAPI  CSAP_MAT_BOM_READ

写于20241229  浙江台州  

相关文章:

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

bom总数 104W PS超过XLSX上限 ,那就分文件 *&---------------------------------------------------------------------* *& Report ZRPT_PP_BOM_HIS_ECN *&---------------------------------------------------------------------* *& tcode:zpp0…...

使用WebRTC进行视频通信

一、WebRTC技术简介 什么是WebRTC? 是一种支持浏览器之间实时音频、视频和数据传输的开放源代码项目。它允许开发者在不需要任何第三方插件或软件的情况下实现点对点的实时通信。WebRTC已经成为现代Web应用中的关键技术,为开发者提供了强大的工具和API…...

npm ERR! ECONNRESET 解决方法

问题:npm 命令遇到的错误是 ECONNRESET,这通常与网络连接问题相关。设置代理解决问题。 一、查看当前代理设置 npm config get proxy npm config get https-proxy二、设置代理 npm config set proxy http://your-proxy-address:port npm config set h…...

【连续学习之SS-IL算法】2021年CPVR会议论文Ss-il:Separated softmax for incremental learning

1 介绍 年份:2021 期刊: 2021CPVR Ahn H, Kwak J, Lim S, et al. Ss-il: Separated softmax for incremental learning[C]//Proceedings of the IEEE/CVF International conference on computer vision. 2021: 844-853. 本文提出的SS-IL&#xff08…...

Go+chromedp实现Web UI自动化测试

1.为什么使用go进行UI自动化测试? 速度:Go速度很快,这在运行包含数百个UI测试的测试套件时是一个巨大的优势 并发性:可以利用Go的内置并发性(goroutines)来并行化测试执行 简单:Go的简约语法允许您编写可读且可维护…...

【MySQL 高级特性与性能优化】

MySQL 高级特性与性能优化 一、MySQL 存储引擎 (一)InnoDB 存储引擎 1. 特点 支持事务:InnoDB 是 MySQL 中提供完整 ACID 事务支持的存储引擎,这意味着它能够保证数据库操作在复杂的并发环境下的一致性、隔离性、原子性和持久…...

Spring Boot教程之三十九: 使用 Maven 将 Spring Boot 应用程序 Docker 化

如何使用 Maven 将 Spring Boot 应用程序 Docker 化? Docker是一个开源容器化工具,用于在隔离环境中构建、运行和管理应用程序。它方便开发人员捆绑其软件、库和配置文件。Docker 有助于将一个容器与另一个容器隔离。在本文中,为了将Spring B…...

微信小程序开发示例

微信小程序开发涉及多个方面&#xff0c;包括页面布局、交互逻辑、数据处理等。以下是一个简单的微信小程序开发示例&#xff0c;包括页面布局、样式定义、交互逻辑等方面的内容。 一、页面布局&#xff08;WXML&#xff09; <!-- index.wxml --> <view class"…...

【机器学习】概述

文章目录 1. 机器学习三步骤2. 机器学习图谱2.1 任务类型 (Task)2.2 模型选择 (Methods)2.3 学习场景 (Scenario) 1. 机器学习三步骤 定义一个模型 (Define a set of function) 选择一组合适的函数来表示模型。 评估模型好坏 (Goodness of function) 找到一个损失函数&#xf…...

音视频采集推流时间戳记录方案

音视频同步更多文章 深入理解音视频pts&#xff0c;dts&#xff0c;time_base以及时间数学公式_视频pts计算-CSDN博客 ffplay音视频同步分析_ffplay 音视频同步-CSDN博客 音视频采集打时间戳设计 实时音视频数据的采集和处理场景。具体来说: 采集阶段: 在音视频数据采集过…...

【Linux】:线程安全 + 死锁问题

&#x1f4c3;个人主页&#xff1a;island1314 &#x1f525;个人专栏&#xff1a;Linux—登神长阶 ⛺️ 欢迎关注&#xff1a;&#x1f44d;点赞 &#x1f442;&#x1f3fd;留言 &#x1f60d;收藏 &#x1f49e; &#x1f49e; &#x1f49e; 1. 线程安全和重入问题&…...

【深度学习】时间序列表示方法

自然界除了2D的图片数据之外&#xff0c;还有语音、文字&#xff0c;这些数据都有时间的先后顺序的。对于2D的图像的数据&#xff0c;可以用RGB值来表示像素的色彩度。语音可以用信号幅度值来表示&#xff0c;而Pytorch没有自带String支持&#xff0c;在表示文字之前需要进行Em…...

1.微服务灰度发布落地实践(方案设计)

文章目录 前言灰度发布的优点设计概要系统架构图流量控制客户端服务端 路由路径应用客户端实现核心组件分析1.网关2. spring-cloud3. dubbo4. nocas5. thread6. message queue 前言 微服务架构中的灰度发布&#xff08;也称为金丝雀发布或渐进式发布&#xff09;是一种在不影响…...

【UE5 C++课程系列笔记】15——Assert的基本使用

目录 概念 一、Check 二、Verify 三、Ensure 对比 基本使用 一、check的基本使用 二、ensure的基本使用 三、verify的基本使用 概念 assert 可在开发期间帮助检测和诊断不正常或无效的运行时条件。这些条件通常检查是否指针为非空、除数为非零、函数并非递归运行&…...

kubernetes Gateway API-1-部署和基础配置

文章目录 1 部署2 最简单的 Gateway3 基于主机名和请求头4 重定向 Redirects4.1 HTTP-to-HTTPS 重定向4.2 路径重定向4.2.1 ReplaceFullPath 替换完整路径4.2.2 ReplacePrefixMatch 替换路径前缀5 重写 Rewrites5.1 重写 主机名5.2 重写 路径5.2.1 重新完整路径5.2.1 重新部分路…...

likeAdmin架构部署(踩坑后的部署流程

1、gitee下载 https://gitee.com/likeadmin/likeadmin_java.git 自己克隆 2、项目注意 Maven&#xff1a;>3.8 ❤️.9 (最好不要3.9已经试过失败 node &#xff1a;node14 (不能是18 已经测试过包打不上去使用14的换源即可 JDK&#xff1a;JDK8 node 需要换源 npm c…...

【一款超好用的开源笔记Logseq本地Docker部署与远程使用指南】

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

浅谈torch.utils.data.TensorDataset和torch.utils.data.DataLoader

1.torch.utils.data.TensorDataset 功能定位 torch.utils.data.TensorDataset 是一个将多个张量&#xff08;Tensor&#xff09;数据进行简单包装整合的数据集类&#xff0c;它主要的作用是将相关联的数据&#xff08;比如特征数据和对应的标签数据等&#xff09;组合在一起&…...

gesp(C++二级)(16)洛谷:B4037:[GESP202409 二级] 小杨的 N 字矩阵

gesp(C++二级)(16)洛谷:B4037:[GESP202409 二级] 小杨的 N 字矩阵 题目描述 小杨想要构造一个 m m m \times m m...

FFmpeg:详细安装教程与环境配置指南

FFmpeg 部署完整教程 在本篇博客中&#xff0c;我们将详细介绍如何下载并安装 FFmpeg&#xff0c;并将其添加到系统的环境变量中&#xff0c;以便在终端或命令行工具中直接调用。无论你是新手还是有一定基础的用户&#xff0c;这篇教程都能帮助你轻松完成 FFmpeg 的部署。 一、…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用&#xff0c;操作系统&#xff1a;Ubuntu24.04&#xff0c;Neofj版本&#xff1a;2025.04.0。 Apt安装 Neofj可以进行官网安装&#xff1a;Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

Git常用命令完全指南:从入门到精通

Git常用命令完全指南&#xff1a;从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...

Vite中定义@软链接

在webpack中可以直接通过符号表示src路径&#xff0c;但是vite中默认不可以。 如何实现&#xff1a; vite中提供了resolve.alias&#xff1a;通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...

Bean 作用域有哪些?如何答出技术深度?

导语&#xff1a; Spring 面试绕不开 Bean 的作用域问题&#xff0c;这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开&#xff0c;结合典型面试题及实战场景&#xff0c;帮你厘清重点&#xff0c;打破模板式回答&#xff0c…...

【Linux】自动化构建-Make/Makefile

前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具&#xff1a;make/makfile 1.背景 在一个工程中源文件不计其数&#xff0c;其按类型、功能、模块分别放在若干个目录中&#xff0c;mak…...