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

带EXCEL附件邮件发送相关代码

1.查看生成的邮件

2.1 非面向对象的方式(demo直接copy即可)

​
REPORT Z12.
DATA: IT_DOCUMENT_DATA TYPE SODOCCHGI1,IT_CONTENT_TEXT  TYPE STANDARD TABLE OF SOLISTI1 WITH HEADER LINE,IT_PACKING_LIST  TYPE TABLE OF SOPCKLSTI1 WITH HEADER LINE,IT_RECEIVERS     TYPE STANDARD TABLE OF SOMLRECI1 WITH HEADER LINE,LC_MAIL_ATTACH   TYPE STRING,LT_CONTENT_HEX   TYPE STANDARD TABLE OF SOLIX WITH HEADER LINE,LT_OBJECT_HEADER TYPE STANDARD TABLE OF SOLISTI1 WITH HEADER LINE,LC_MAIL_XATTACH  TYPE XSTRING,LV_SEND_ALL      TYPE C,IT_MAKT          LIKE TABLE OF MAKT WITH HEADER LINE,FIR_DATE         TYPE SY-DATUM,MIMETYPE         TYPE CHAR64.
DATA: IT_ITAB TYPE TABLE OF ITAB WITH HEADER LINE,WA_ITAB TYPE ITAB.CONSTANTS:LC_TAB  TYPE C VALUE CL_BCS_CONVERT=>GC_TAB,       "excel换格符LC_CTRL TYPE C VALUE CL_BCS_CONVERT=>GC_CRLF.      "excel换行符PERFORM SEND_EMAIL.*&---------------------------------------------------------------------*
*&      Form  SEND_EMAIL
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM SEND_EMAIL.DATA SY_VLINE TYPE I.DATA:MBLNR TYPE STRING,   "物料凭证MATNR TYPE STRING,   "物料MJAHR TYPE STRING,   "年度MAKTX TYPE STRING.   "物料描述****邮件标题信息IT_DOCUMENT_DATA-OBJ_DESCR = '邮件主题1' .    "内容的简短描述IT_DOCUMENT_DATA-PRIORITY = '1'.             "优先次序  1~9  1:最高优先权IT_DOCUMENT_DATA-OBJ_NAME = 'OFFER'.IT_DOCUMENT_DATA-OBJ_LANGU = SY-LANGU.*****邮件正文信息IT_CONTENT_TEXT = '各位好:'.APPEND IT_CONTENT_TEXT.IT_CONTENT_TEXT = '  此邮件为测试邮件!!!!!!!'.APPEND IT_CONTENT_TEXT.DESCRIBE TABLE IT_CONTENT_TEXT LINES SY_VLINE.IT_DOCUMENT_DATA-DOC_SIZE = 255 * ( SY_VLINE - 1 ) + STRLEN( IT_CONTENT_TEXT ).  "SAPoffice 文档的大小(用于 API1)IT_PACKING_LIST-TRANSF_BIN = SPACE.IT_PACKING_LIST-HEAD_START = 1 .IT_PACKING_LIST-HEAD_NUM =  0 .IT_PACKING_LIST-BODY_START = 1. "控制从第几行开始读IT_PACKING_LIST-BODY_NUM = SY_VLINE."控制读到第几行IT_PACKING_LIST-DOC_TYPE = 'RAW'.APPEND IT_PACKING_LIST.***收件人信息IT_RECEIVERS-RECEIVER = 'MEIQIAN.LIANG@HAND-CHINA.COM'.  "收件人地址IT_RECEIVERS-REC_TYPE = 'U'.IT_RECEIVERS-COM_TYPE = 'INT'.IT_RECEIVERS-NOTIF_DEL =  'X'.IT_RECEIVERS-NOTIF_NDEL = 'X'.APPEND IT_RECEIVERS.CONCATENATE '物料'     LC_TAB'物料凭证' LC_TAB'物料描述' LC_TAB'年度'     LC_CTRL INTO LC_MAIL_ATTACH.   "lc_ctrl换行符CLEAR:MBLNR, MATNR, MJAHR, MAKTX.MBLNR  = '7777777'.MATNR  = '7777777'.MJAHR  = '7777'.MAKTX  = 'seven'."物料类型CONCATENATE LC_MAIL_ATTACHMATNR  LC_TABMBLNR  LC_TABMJAHR  LC_TABMAKTX  LC_CTRL INTO LC_MAIL_ATTACH.      "lc_ctrl换行符CLEAR:MBLNR, MATNR, MJAHR, MAKTX.MBLNR  = '8888888'.MATNR  = '8888888'.MJAHR  = '8888'.MAKTX  = 'seven'."物料类型CONCATENATE LC_MAIL_ATTACHMATNR  LC_TABMBLNR  LC_TABMJAHR  LC_TABMAKTX  LC_CTRL INTO LC_MAIL_ATTACH.      "lc_ctrl换行符MIMETYPE = 'APPLICATION/MSEXCEL;CHARSET=UTF-16LE'.CALL FUNCTION 'SCMS_STRING_TO_XSTRING'EXPORTINGTEXT     = LC_MAIL_ATTACHMIMETYPE = MIMETYPEIMPORTINGBUFFER   = LC_MAIL_XATTACHEXCEPTIONSFAILED   = 1OTHERS   = 2.IF SY-SUBRC = 0.CONCATENATE CL_ABAP_CHAR_UTILITIES=>BYTE_ORDER_MARK_LITTLE LC_MAIL_XATTACH INTO LC_MAIL_XATTACH IN BYTE MODE.ENDIF.CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' "将Xtring转化成二进制格式并保存到内表中EXPORTINGBUFFER     = LC_MAIL_XATTACHTABLESBINARY_TAB = LT_CONTENT_HEX."不知道干啥用的LT_OBJECT_HEADER = 'Seven test'.APPEND LT_OBJECT_HEADER.DESCRIBE TABLE LT_CONTENT_HEX LINES SY_VLINE.IT_PACKING_LIST-TRANSF_BIN = 'X'.IT_PACKING_LIST-HEAD_START = 1 .IT_PACKING_LIST-HEAD_NUM =  0 .IT_PACKING_LIST-BODY_START = 1.IT_PACKING_LIST-BODY_NUM = SY_VLINE.IT_PACKING_LIST-DOC_TYPE = 'XLS'.IT_PACKING_LIST-DOC_SIZE = 255 * SY_VLINE.IT_PACKING_LIST-OBJ_NAME = '附件名'.IT_PACKING_LIST-OBJ_DESCR = IT_PACKING_LIST-OBJ_NAME."文档名字APPEND IT_PACKING_LIST."方法1  无法指定发送人邮箱CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'EXPORTINGDOCUMENT_DATA              = IT_DOCUMENT_DATAPUT_IN_OUTBOX              = 'X'COMMIT_WORK                = 'X'IMPORTINGSENT_TO_ALL                = LV_SEND_ALL
*     NEW_OBJECT_ID              =TABLESPACKING_LIST               = IT_PACKING_LIST[]OBJECT_HEADER              = LT_OBJECT_HEADER[]
*     contents_bin               =CONTENTS_TXT               = IT_CONTENT_TEXT[]CONTENTS_HEX               = LT_CONTENT_HEX[]
*     object_para                =
*     object_parb                =RECEIVERS                  = IT_RECEIVERS[]EXCEPTIONSTOO_MANY_RECEIVERS         = 1DOCUMENT_NOT_SENT          = 2DOCUMENT_TYPE_NOT_EXIST    = 3OPERATION_NO_AUTHORIZATION = 4PARAMETER_ERROR            = 5X_ERROR                    = 6ENQUEUE_ERROR              = 7OTHERS                     = 8.*  "方法2  可以指定发送人邮箱
*  CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
*    EXPORTING
*      DOCUMENT_DATA              = IT_DOCUMENT_DATA
*      PUT_IN_OUTBOX              = 'X'
*      SENDER_ADDRESS             = 'MEIQIAN.LIANG@HAND-CHINA.COM'
*      SENDER_ADDRESS_TYPE        = 'INT'
*      COMMIT_WORK                = 'X'
**     IP_ENCRYPT                 =
**     IP_SIGN                    =
**     IV_VSI_PROFILE             =
*    IMPORTING
*      SENT_TO_ALL                = LV_SEND_ALL
**     NEW_OBJECT_ID              =
**     SENDER_ID                  =
*    TABLES
*      PACKING_LIST               = IT_PACKING_LIST[]
*      OBJECT_HEADER              = LT_OBJECT_HEADER[]
**     CONTENTS_BIN               =
*      CONTENTS_TXT               = IT_CONTENT_TEXT[]
*      CONTENTS_HEX               = LT_CONTENT_HEX[]
**     OBJECT_PARA                =
**     OBJECT_PARB                =
*      RECEIVERS                  = IT_RECEIVERS[]
**     ET_VSI_ERROR               =
*    EXCEPTIONS
*      TOO_MANY_RECEIVERS         = 1
*      DOCUMENT_NOT_SENT          = 2
*      DOCUMENT_TYPE_NOT_EXIST    = 3
*      OPERATION_NO_AUTHORIZATION = 4
*      PARAMETER_ERROR            = 5
*      X_ERROR                    = 6
*      ENQUEUE_ERROR              = 7
*      OTHERS                     = 8.
*  IF SY-SUBRC <> 0.
**   Implement suitable error handling here
*  ELSE.
*  BREAK-POINT.
*  ENDIF.ENDFORM.                    "SEND_EMAIL​

非面向对象运行效果图:

如果要抄送则增加以下属性:

2.2面向对象的方法


REPORT Z1234.TABLES:MSEG,SSCRFIELDS,MARA,ZOWMS_DAYSTOCK_R,ADR6.
TYPE-POOLS:ICON,SLIS.TYPES: BEGIN OF TYS_DETAIL,TOTAL(100),SEL(1),STATUS(4),ITEM_STATUS(4),CYMENG         TYPE MSEG-MENGE, "差异数量XCHAR          TYPE MARC-XCHAR, "批次管理标识MAKTX          TYPE MAKT-MAKTX,LGOBE          TYPE T001L-LGOBE,MEINS          TYPE MARA-MEINS,LABST          TYPE MARD-LABST. "SAP库存INCLUDE STRUCTURE ZOWMS_DAYSTOCK_R.
TYPES:     END OF TYS_DETAIL.
DATA: GT_DETAIL     TYPE STANDARD TABLE OF TYS_DETAIL,GT_DETAIL_TMP TYPE TABLE OF TYS_DETAIL,GT_DETAIL_KEY TYPE TABLE OF TYS_DETAIL.DATA FUNCTXT TYPE SMP_DYNTXT.DATA: I_BDCDATA   LIKE BDCDATA OCCURS 0 WITH HEADER LINE.*ALV定义
DATA: GT_FIELDCAT TYPE LVC_T_FCAT,GV_CODE     LIKE SY-UCOMM,GW_LAYOUT   TYPE LVC_S_LAYO,I_CELLCLR   TYPE LVC_S_SCOL. "单元格颜色
TYPES: BEGIN OF SLIS_EXTAB,FCODE LIKE RSMPE-FUNC,END OF SLIS_EXTAB.
TYPES: SLIS_T_EXTAB TYPE SLIS_EXTAB OCCURS 1.
DATA:LS_CELLTAB TYPE LVC_S_STYL.
DATA LS_STABLE TYPE LVC_S_STBL.
DATA:GS_FIELDCAT TYPE LVC_S_FCAT.
DATA:GT_HEADER TYPE TABLE OF CHAR30,GV_CHAR30 TYPE CHAR30.
*子ALV调用
DATA:LT_FIELDCAT TYPE LVC_T_FCAT,LS_FCAT     TYPE LVC_S_FCAT,LS_SELFIELD TYPE SLIS_SELFIELD.SELECTION-SCREEN BEGIN OF BLOCK BLK2 WITH FRAME TITLE TEXT-T02.
SELECT-OPTIONS: S_RECEP FOR ADR6-SMTP_ADDR NO INTERVALSMODIF ID MAL,"收件人S_SCR FOR ADR6-SMTP_ADDR  NO INTERVALS "抄送人MODIF ID MAL.
SELECTION-SCREEN END OF BLOCK BLK2 .END-OF-SELECTION.PERFORM FRM_SEND_MAIL.FORM FRM_SEND_MAIL .DATA: BCS_EXCEPTION        TYPE REF TO CX_BCS,ERRORTEXT            TYPE STRING,LCL_SEND_REQUEST     TYPE REF TO CL_BCS,LCL_DOCUMENT         TYPE REF TO CL_DOCUMENT_BCS,LCL_RECIPIENT        TYPE REF TO IF_RECIPIENT_BCS,LCL_SENDER           TYPE REF TO CL_CAM_ADDRESS_BCS,T_ATTACHMENT_HEADER  TYPE SOLI_TAB,WA_ATTACHMENT_HEADER LIKE LINE OF T_ATTACHMENT_HEADER,ATTACHMENT_SUBJECT   TYPE SOOD-OBJDES,SOOD_BYTECOUNT       TYPE SOOD-OBJLEN,MAIL_TITLE           TYPE SO_OBJ_DES,T_MAILTEXT           TYPE SOLI_TAB,WA_MAILTEXT          LIKE LINE OF T_MAILTEXT,SEND_TO              TYPE ADR6-SMTP_ADDR,SENT                 TYPE OS_BOOLEAN,LV_MAILNAME          TYPE SOOD-OBJDES,BINARY_CONTENT       TYPE SOLIX_TAB.DATA:LV_SMTP_ADDR          TYPE ADR6-SMTP_ADDR." Set mail subjectMAIL_TITLE     = '菜鸟&SAP库存比对邮件推送'.LV_MAILNAME = '菜鸟&SAP库存比对报表'." Set mail contextDATA(LV_STRING) = |您好,附件是菜鸟&SAP库存比对报表,请查阅,谢谢|.WA_MAILTEXT    = LV_STRING.APPEND WA_MAILTEXT TO T_MAILTEXT.CONCATENATE '事务码为:ZM390 程序为:ZMM390。' 'Job时间:' SY-DATUM '' SY-UZEIT INTO WA_MAILTEXT.APPEND WA_MAILTEXT TO T_MAILTEXT.TRY.
* Create send requestLCL_SEND_REQUEST = CL_BCS=>CREATE_PERSISTENT( ).
* Create new document with mailtitle and mailtextgLCL_DOCUMENT = CL_DOCUMENT_BCS=>CREATE_DOCUMENT( I_TYPE    = 'RAW' "#EC NOTEXTI_TEXT    = T_MAILTEXTI_LANGUAGE = SY-LANGUI_SUBJECT = MAIL_TITLE ).* add document to send requestLCL_SEND_REQUEST->SET_DOCUMENT( LCL_DOCUMENT ).*收件人LOOP AT S_RECEP.LV_SMTP_ADDR = S_RECEP-LOW.LCL_RECIPIENT = CL_CAM_ADDRESS_BCS=>CREATE_INTERNET_ADDRESS( LV_SMTP_ADDR  ).LCL_SEND_REQUEST->ADD_RECIPIENT( LCL_RECIPIENT ).ENDLOOP.* 抄送人LOOP AT S_SCR.LV_SMTP_ADDR = S_SCR-LOW.LCL_RECIPIENT = CL_CAM_ADDRESS_BCS=>CREATE_INTERNET_ADDRESS( LV_SMTP_ADDR ).LCL_SEND_REQUEST->ADD_RECIPIENT(I_RECIPIENT  = LCL_RECIPIENTI_EXPRESS    = 'X'I_COPY       = 'X'I_BLIND_COPY = ' 'I_NO_FORWARD = ' ' ).ENDLOOP.
*     添加抄送人*lcl_document->CLEAR LV_STRING.PERFORM FRM_SET_DOCUMENT_BODY  CHANGING BINARY_CONTENT.LCL_DOCUMENT->ADD_ATTACHMENT(I_ATTACHMENT_TYPE    = 'XLS'                        " 附件格式I_ATTACHMENT_SUBJECT = LV_MAILNAME                  " 附件名称
*      i_attachment_size    = size                         "附件大小I_ATTACHMENT_LANGUAGE = SY-LANGU
*      I_ATTACHMENT_HEADER   =I_ATT_CONTENT_HEX    = BINARY_CONTENT).            "附件内容LCL_SEND_REQUEST->SET_DOCUMENT( LCL_DOCUMENT ).SENT = LCL_SEND_REQUEST->SEND( I_WITH_ERROR_SCREEN = 'X' ).CATCH CX_BCS INTO BCS_EXCEPTION.ERRORTEXT = BCS_EXCEPTION->IF_MESSAGE~GET_TEXT( ).MESSAGE ERRORTEXT TYPE 'S' DISPLAY LIKE 'E'.ENDTRY.COMMIT WORK.ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  FRM_SET_DOCUMENT_BODY
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      <--P_BINARY_CONTENT  text
*----------------------------------------------------------------------*
FORM FRM_SET_DOCUMENT_BODY  CHANGING PT_BODY TYPE SOLIX_TAB.TYPES: BEGIN OF TY_DATA,WERKS  TYPE ZOWMS_DAYSTOCK_R-WERKS, "工厂MATNR  TYPE ZOWMS_DAYSTOCK_R-MATNR, "物料MAKTX  TYPE MAKT-MAKTX,             "物料描述LGORT  TYPE ZOWMS_DAYSTOCK_R-LGORT, "库存地点LGOBE  TYPE T001L-LGOBE,            "库存地点描述CHARG  TYPE ZOWMS_DAYSTOCK_R-CHARG, "批次LABST  TYPE MARD-LABST,             "SAP库存数量OMENGE TYPE ZOWMS_DAYSTOCK_R-OMENGE, "未结库存WMENGE TYPE ZOWMS_DAYSTOCK_R-WMENGE, "OFS未传明细TMENGE TYPE ZOWMS_DAYSTOCK_R-TMENGE, "SAP库存数量(含未结)SMENGE TYPE ZOWMS_DAYSTOCK_R-SMENGE, "WMS库存数量CYMENG TYPE MSEG-MENGE.             "差异数量TYPES: END OF TY_DATA.DATA:LV_STRING   TYPE STRING,LC_MIMETYPE TYPE CHAR64 VALUE 'APPLICATION/MSEXCEL;charset=utf-16le',LV_XATTACH  TYPE XSTRING,LV_VALUE    TYPE STRING,LV_FLAG     TYPE C.DATA:LT_MAIL TYPE TABLE OF TY_DATA,LS_MAIL TYPE TY_DATA.CLEAR:GT_HEADER.APPEND '工厂' TO GT_HEADER.APPEND '物料' TO GT_HEADER.APPEND '物料描述' TO GT_HEADER.APPEND '库存地点' TO GT_HEADER.APPEND '库存地点描述' TO GT_HEADER.APPEND 'SAP库存数量' TO GT_HEADER.APPEND '未结库存' TO GT_HEADER.APPEND 'OFS未传SAP数量' TO GT_HEADER.APPEND 'SAP库存数量(含未结未传)' TO GT_HEADER.APPEND 'WMS库存数量' TO GT_HEADER.APPEND  '差异' TO GT_HEADER.LOOP AT GT_HEADER INTO GV_CHAR30.CONDENSE GV_CHAR30.LV_STRING = |{ LV_STRING }{ GV_CHAR30 }{ CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB }|.ENDLOOP.LV_STRING = LV_STRING && CL_ABAP_CHAR_UTILITIES=>CR_LF."发送有差异的邮件数据MOVE-CORRESPONDING GT_DETAIL[] TO LT_MAIL[].DELETE  LT_MAIL[] WHERE CYMENG EQ '0.000'."判断是否发送批次字段的数据DATA(LV_LINES1) = LINES( GT_HEADER ).IF LV_LINES1 = '11'.LV_FLAG = 'X'.ENDIF.DATA(LV_LINES) = LINES( GT_FIELDCAT ).LOOP AT LT_MAIL ASSIGNING FIELD-SYMBOL(<FS_STURC>).DO LV_LINES TIMES.IF SY-INDEX = 6 AND LV_FLAG = 'X'.CONTINUE.ENDIF.ASSIGN COMPONENT SY-INDEX OF STRUCTURE <FS_STURC> TO FIELD-SYMBOL(<FS_VALUE>).IF SY-SUBRC = 0.LV_VALUE = <FS_VALUE>.CONDENSE LV_VALUE.DATA(LV_LEN) = STRLEN( LV_VALUE ) - 1.IF LV_LEN > 0.IF LV_VALUE+LV_LEN = '-'.LV_VALUE = '-' && LV_VALUE(LV_LEN).CONDENSE LV_VALUE NO-GAPS.CLEAR LV_LEN.ENDIF.ENDIF.ELSE.LV_VALUE = ''.ENDIF.IF LV_LINES <> SY-INDEX.LV_STRING = |{ LV_STRING }{ LV_VALUE }{ CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB }|.ELSE.LV_STRING = |{ LV_STRING }{ LV_VALUE }{ CL_ABAP_CHAR_UTILITIES=>CR_LF }|.ENDIF.ENDDO.ENDLOOP.CALL FUNCTION 'SCMS_STRING_TO_XSTRING'EXPORTINGTEXT     = LV_STRINGMIMETYPE = LC_MIMETYPEIMPORTINGBUFFER   = LV_XATTACHEXCEPTIONSFAILED   = 1OTHERS   = 2.
* Add the file header for utf-16le. .IF SY-SUBRC = 0.CONCATENATE CL_ABAP_CHAR_UTILITIES=>BYTE_ORDER_MARK_LITTLELV_XATTACH INTO LV_XATTACH IN BYTE MODE.ENDIF.CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'EXPORTINGBUFFER     = LV_XATTACHTABLESBINARY_TAB = PT_BODY.
ENDFORM.

面向对象效果如下:

相关文章:

带EXCEL附件邮件发送相关代码

1.查看生成的邮件 2.1 非面向对象的方式&#xff08;demo直接copy即可&#xff09; ​ REPORT Z12. DATA: IT_DOCUMENT_DATA TYPE SODOCCHGI1,IT_CONTENT_TEXT TYPE STANDARD TABLE OF SOLISTI1 WITH HEADER LINE,IT_PACKING_LIST TYPE TABLE OF SOPCKLSTI1 WITH HEADER LIN…...

【算法作业】均分卡牌,购买股票

问题描述 John 有两个孩子&#xff0c;在 John病逝后&#xff0c;留下了一组价值不一定相同的魔卡&#xff0c; 现在要求你设计一种策略&#xff0c;帮John的经管人将John的这些遗产分给他的两个孩子&#xff0c;使得他们获得的遗产差异最小&#xff08;每张魔卡不能分拆&#…...

python作业

题目 分析 步骤&#xff1a; 判断先画空格还是数字 当有n层时&#xff0c;第i层有多少个空格第i层的起始数字是几&#xff0c;结尾是几&#xff0c;即数字取值范围当有n层时&#xff0c;第i层有多少个数字 代码 模式A n int(input("请输入行数:")) for i in range(…...

【Linux的文件篇章 - 管道文件】

Linux学习笔记---013 Linux的管道文件1、进程间通信1.1、进程为什么要通信&#xff1f;1.2、进程如何通信&#xff1f;1.3、进程通信的方式&#xff1f; 2、匿名管道2.1、理解一种现象2.2、基本概念和管道原理 3、管道的使用3.1、代码样例3.2、如何使用管道通信呢&#xff1f;3…...

C# 局部静态函数,封闭方法中的最佳选择

C# 局部静态函数&#xff0c;封闭方法中的最佳选择 简介特性 应用场景辅助计算递归与尾递归优化筛选与过滤操作查找与映射操作 生命周期静态局部函数 vs 普通局部函数性能封装性可读性 简介 C# 局部静态函数&#xff08;Local Static Functions&#xff09;是一种函数作用域内…...

【MySQL】MySQL 8.4.0 长期支持版(LTS)安装

就在2024年 “5.1” 节前&#xff0c;MySQL官方发布了8.4.0长期支持版&#xff08;LTS - Long Term Support&#xff09;。根据官方提供的文档&#xff0c;在本地虚拟机进行安装测试。 安装、配置和启动过程记录如下&#xff1a; 第一步&#xff0c;上传到安装包&#xff08;my…...

nest中的ORM

在 Nest.js 中执行 SQL 查询通常涉及使用 TypeORM 或 Sequelize 这样的 ORM&#xff08;对象-关系映射&#xff09;库。这些库使得在 Nest.js 应用程序中连接和操作 SQL 数据库变得更加简单和直观。 以下是一个使用 TypeORM 在 Nest.js 中执行 SQL 查询的示例代码&#xff1a;…...

TCP(Transmission Control Protocol,传输控制协议)如何保证数据的完整性?

TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;通过一系列机制来保证数据传输的可靠性和无错性&#xff0c;这些机制主要包括&#xff1a; 校验和&#xff1a;TCP报文段包含一个校验和字段&#xff0c;用于检测数据在传输过程中是否出错。…...

Numpy库介绍

NumPy&#xff08;Numerical Python的缩写&#xff09;是Python中用于科学计算的一个强大的库。它提供了高性能的多维数组对象&#xff08;即ndarray&#xff09;、用于处理这些数组的工具以及用于数学函数操作的函数。让我为你介绍一下它的一些主要功能&#xff1a; 1. 多维数…...

临时有事无法及时签字盖章?试试用契约锁设置“代理人”

遇到“领导休假中、在开重要会议、外出考察或者主任医生手术中等”一段时间内不方便或者无法及时签字盖章的情况怎么办&#xff1f;业务推进不了只能干等&#xff1f; 契约锁电子签及印控平台支持印章、签名“临时授权”、“代理签署”&#xff0c;实现指定人、指定时间段、指定…...

数据库权限管理

1.查看系统级权限&#xff08;global level) Select * from mysql.user\G; 2.查看数据库中所有表的权限 Select * from mysql.db\G 3.远程连接数据库 第一步在有数据库服务上的主机上&#xff1a;授权 grant all on *.* to root192.168.40.83 identified by Zxy20234; 第…...

如何创建一个 Django 应用并连接到数据库

简介 Django 是一个用 Python 编写的免费开源的 Web 框架。这个工具支持可扩展性、可重用性和快速开发。 在本教程中&#xff0c;您将学习如何为一个博客网站建立与 MySQL 数据库的初始基础。这将涉及使用 django-admin 创建博客 Web 应用程序的骨架结构&#xff0c;创建 MyS…...

【算法刷题day44】Leetcode:518. 零钱兑换 II、377. 组合总和 Ⅳ

文章目录 Leetcode 518. 零钱兑换 II解题思路代码总结 Leetcode 377. 组合总和 Ⅳ解题思路代码总结 草稿图网站 java的Deque Leetcode 518. 零钱兑换 II 题目&#xff1a;518. 零钱兑换 II 解析&#xff1a;代码随想录解析 解题思路 先遍历物品&#xff0c;再遍历背包。 代码…...

『51单片机』AT24C02[IIC总线]

存储器的介绍 ⒈ROM的功能⇢ROM的数据在程序运行的时候是不容改变的&#xff0c;除非你再次烧写程序&#xff0c;他就会改变&#xff0c;就像我们的书本&#xff0c;印上去就改不了了&#xff0c;除非再次印刷&#xff0c;这个就是ROM的原理。 注→在后面发展的ROM是可以可写可…...

Jenkins与Rancher的配合使用

Jenkins和Rancher是两个常用的DevOps工具&#xff0c;可以很好地配合使用来实现持续集成和持续部署。 Jenkins是一个开源的自动化构建工具&#xff0c;可以实现自动化的代码构建、测试和部署等一系列操作。可以通过Jenkins来触发构建任务&#xff0c;例如从代码仓库中拉取最新的…...

GIS入门,常用的多边形平滑曲线算法介绍和JavaScript的多边形平滑曲线算法库chaikin-smooth的实现原理和使用

前言 本章介绍一下常用的多边形平滑曲线算法及其使用案例。 多边形平滑算法通常用于图形处理或计算机图形学中,以使线条或曲线在连接处平滑过渡,而不出现明显的棱角或断裂。多边形平滑算法有多种实现方法,其中一些常见的有下面几种: 贝塞尔曲线插值(Bezier Curve Interpo…...

气膜体育馆内部的采光效果如何?—轻空间

气膜体育馆内部的采光效果如何&#xff1f;这是许多人对这种创新建筑的一个关键关注点。 首先&#xff0c;气膜体育馆的采光性非常好。阳光透过屋顶时以漫射光的方式进入室内&#xff0c;这种透射方式使得室内的光线柔和而均匀。从内部观察&#xff0c;整个屋顶就像一个连续的明…...

矩阵的对称正定性判决(复习)

文章目录 本科学的数学知识忘的太快了 如何判断一个实矩阵是否是对称正定 在线性代数中&#xff0c;一个实对称矩阵是否为正定可以通过以下方法判断&#xff1a; 对称性&#xff1a; 首先&#xff0c;确认矩阵是否对称&#xff0c;即矩阵的转置是否等于其本身。 特征值检查&…...

网络安全之DHCP详解

DHCP&#xff1a;Dynamic Host Configration Protocol 动态主机配置协议 某一协议的数据是基于UDP封装的&#xff0c;当它想确保自己的可靠性时&#xff0c;这个协议要么选确认重传机制&#xff0c;要么选周期性传输。 DHCP是确认重传&#xff0c;【UDP|DHCP】,当DHCP分配完地…...

【Proteus】LED呼吸灯 直流电机调速

1.LED呼吸灯 #include <REGX51.H> sbit LEDP2^0; void delay(unsigned int t) {while(t--); } void main() {unsigned char time,i;while(1){for(time0;time<100;time){for(i0;i<20;i){LED0;delay(time);LED1;delay(100-time);}}for(time100;time>0;time--){fo…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

Linux链表操作全解析

Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表&#xff1f;1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解&#xff08;完整版&#xff09; 一、现代浏览器渲染流程&#xff08;详细说明&#xff09; 1. 构建DOM树 浏览器接收到HTML文档后&#xff0c;会逐步解析并构建DOM&#xff08;Document Object Model&#xff09;树。具体过程如下&#xff1a; (…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了&#xff0c;报错如下四、启动不了&#xff0c;解决如下 总结 问题原因 在应用中可以看到chrome&#xff0c;但是打不开(说明&#xff1a;原来的ubuntu系统出问题了&#xff0c;这个是备用的硬盘&a…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

mac 安装homebrew (nvm 及git)

mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用&#xff1a; 方法一&#xff1a;使用 Homebrew 安装 Git&#xff08;推荐&#xff09; 步骤如下&#xff1a;打开终端&#xff08;Terminal.app&#xff09; 1.安装 Homebrew…...