SAP BW:QUERY数据结果写入ADSO

作者 idan lian  如需转载备注出处

如果对你有帮助,请点赞收藏~~~

需求背景

客户基于QUERY进行报表展示,现需迁移到永洪报表平台,query中的变量参数,公式等无法直接生成视图,query相对复杂,不想直接在视图复现,想办法取出query的执行结果,落地存入ADSO。供报表平台使用

解决方案

通过函数执行query结果,并生成动态内表,将数据写入ADSO中

落地query如下

创建ADSO如下

1.创建函数:Z_GET_BW_QUERY_DATA

FUNCTION Z_GET_BW_QUERY_DATA.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     REFERENCE(I_INFOPROVIDER) TYPE  RSINFOPROV
*"     REFERENCE(I_QUERY) TYPE  RSZCOMPID
*"     REFERENCE(I_VIEW_ID) TYPE  RSZVIEWID
*"     REFERENCE(I_T_PARAMETER) TYPE  RRXW3TQUERY
*"  EXPORTING
*"     REFERENCE(DY_TABLE) TYPE REF TO  DATA
*"----------------------------------------------------------------------*Global data declarationsDATA wa_parameter TYPE w3query.DATA i_parameter TYPE TABLE OF w3query .DATA wa_query_result TYPE rrws_s_cell .DATA query_result TYPE TABLE OF rrws_s_cell .DATA wa_axis_result TYPE LINE OF rrws_thx_axis_data .DATA axis_result TYPE  rrws_thx_axis_data .DATA wa_tx_set_1 TYPE LINE OF rrws_tx_set.DATA tx_set_1 TYPE rrws_tx_set.DATA wa_tx_set_0 TYPE LINE OF rrws_tx_set.DATA tx_set_0 TYPE rrws_tx_set.*解决动态内表最多创建36次的问题TYPE-POOLS:abap.DATA:ls_components TYPE abap_componentdescr,lt_components TYPE abap_component_tab,lo_elemt_type TYPE REF TO cl_abap_datadescr,lo_type       TYPE REF TO cl_abap_typedescr,z_stu         TYPE REF TO  cl_abap_structdescr,z_tab         TYPE REF TO  cl_abap_tabledescr,lr_dyn_wa     TYPE REF TO data.
*       DYN_TABLE  TYPE REF TO DATA.TYPES: BEGIN OF dzgx,fieldname     LIKE lvc_s_fcat-fieldname,fieldnamec(6) TYPE c,END OF dzgx.DATA: wa_mcdz TYPE dzgx,it_mcdz TYPE HASHED TABLE OF dzgx WITH UNIQUE KEY fieldname.DATA: k_num         TYPE i,c_num         TYPE i,lines_num     TYPE i,c1_num        TYPE i,it_structure  TYPE lvc_t_fcat,wa_structure  TYPE lvc_s_fcat,pos           TYPE i,line_ps       TYPE i,index         TYPE i,index1        TYPE i,field_name(6) TYPE c,posc(6)       TYPE c,pos1          TYPE i,lv_string     TYPE string.DATA:wa_new_line TYPE REF TO data.FIELD-SYMBOLS:<dyn_table> TYPE STANDARD TABLE,<dyn_wa>    TYPE any,<dyn_field> TYPE any.DATA:dy_line  TYPE REF TO data.CALL FUNCTION 'RRW3_GET_QUERY_VIEW_DATA'EXPORTINGi_infoprovider          = i_infoprovideri_query                 = i_queryi_view_id               = i_view_idi_t_parameter           = i_t_parameterIMPORTING
*     E_AXIS_INFO             =e_cell_data             = query_resulte_axis_data             = axis_result
*     E_TXT_SYMBOLS           =EXCEPTIONSno_applicable_data      = 1invalid_variable_values = 2no_authority            = 3abort                   = 4invalid_input           = 5invalid_view            = 6OTHERS                  = 7.IF sy-subrc <> 0.IF query_result IS INITIAL AND axis_result IS INITIAL.RETURN.ELSE.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.ENDIF.pos = 1.READ TABLE axis_result INTO wa_axis_result WITH KEY axis = '001'.tx_set_1[] = wa_axis_result-set[] .DELETE tx_set_1 WHERE tuple_ordinal <> '000000'.DESCRIBE TABLE tx_set_1 LINES c_num.LOOP AT tx_set_1 INTO wa_tx_set_1.posc = pos.CONDENSE posc.CONCATENATE 'C' posc INTO field_name.wa_structure-fieldname = field_name.wa_structure-col_pos = pos.         " 表数wa_structure-inttype = 'C'.        " 数据类型wa_structure-intlen  = 30.         " 长度wa_mcdz-fieldname = wa_tx_set_1-chanm.wa_mcdz-fieldnamec = field_name.INSERT  wa_mcdz INTO TABLE it_mcdz.pos = pos + 1.APPEND wa_structure TO it_structure.ENDLOOP.READ TABLE axis_result INTO wa_axis_result WITH KEY axis = '000'.DESCRIBE TABLE wa_axis_result-set LINES k_num.tx_set_0[] = wa_axis_result-set[].pos1 = 1.LOOP AT tx_set_0 INTO wa_tx_set_0..posc = pos1.CONDENSE posc.CONCATENATE 'V' posc INTO field_name.wa_structure-fieldname = field_name.wa_structure-col_pos = pos.         " 表数wa_structure-inttype = 'C'.        " 数据类型wa_structure-intlen  = 30.         " 长度pos = pos + 1.pos1 = pos1 + 1.APPEND wa_structure TO it_structure.ENDLOOP.*  连续取36次 创建36次动态内表 就会dump
*  CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
*    EXPORTING
*      IT_FIELDCATALOG = IT_STRUCTURE
*    IMPORTING
*      EP_TABLE        = DY_TABLE.LOOP AT   it_structure INTO wa_structure .ls_components-name  =   wa_structure-fieldname.lv_string = '/BIC/AZT_MMD012-BWAPPLNM'.”替换成现有系统长一点的数据库表字段就行CALL METHOD cl_abap_datadescr=>describe_by_nameEXPORTINGp_name         = lv_stringRECEIVINGp_descr_ref    = lo_typeEXCEPTIONStype_not_found = 1OTHERS         = 2.ls_components-type ?=  lo_type.APPEND   ls_components TO  lt_components.ENDLOOP.CALL METHOD cl_abap_structdescr=>createEXPORTINGp_components = lt_componentsRECEIVINGp_result     = z_stu.CALL METHOD cl_abap_tabledescr=>createEXPORTINGp_line_type = z_stuRECEIVINGp_result    = z_tab." 参照动态结构类型和动态内表类型创建内表与工作区CREATE DATA lr_dyn_wa    TYPE HANDLE z_stu.CREATE DATA dy_table TYPE HANDLE z_tab." 指定内表与工作区到字段符号ASSIGN lr_dyn_wa->*    TO <dyn_wa>.ASSIGN dy_table->* TO <dyn_table>.READ TABLE axis_result INTO wa_axis_result WITH KEY axis = '001'.tx_set_1[] = wa_axis_result-set[] .DESCRIBE TABLE tx_set_1 LINES c1_num.lines_num = c1_num / c_num.line_ps = 1.WHILE line_ps <= lines_num.index = c_num * ( line_ps - 1 ) + 1.DO  c_num TIMES.pos = 1.WHILE pos <= c_num.index1 = index + pos - 1.READ TABLE tx_set_1 INTO wa_tx_set_1 INDEX index1 .posc = pos.CONDENSE posc.CONCATENATE 'C' posc INTO field_name.READ TABLE it_mcdz INTO wa_mcdz WITH  KEY fieldname = wa_tx_set_1-chanm.wa_structure-fieldname = wa_mcdz-fieldnamec.ASSIGN COMPONENT wa_structure-fieldname OF STRUCTURE <dyn_wa> TO <dyn_field>.
*之前取文本,改成取指标
*        IF wa_tx_set_1-caption = ''.
*          <dyn_field> = wa_tx_set_1-chavl.
*        ELSE.
*          <dyn_field> = wa_tx_set_1-caption.
*        ENDIF.<dyn_field> = wa_tx_set_1-chavl.pos = pos + 1.ENDWHILE.ENDDO.index = k_num * ( line_ps - 1 ) + 1.DO  k_num TIMES.pos = 1.WHILE pos <= k_num.READ TABLE tx_set_0 INTO wa_tx_set_0 INDEX pos .posc = pos.CONDENSE posc.CONCATENATE 'V' posc INTO field_name.wa_structure-fieldname = field_name.ASSIGN COMPONENT wa_structure-fieldname OF STRUCTURE <dyn_wa> TO <dyn_field>.index1 = index + pos - 1.READ TABLE query_result INTO wa_query_result INDEX index1 .
*        <DYN_FIELD> = WA_QUERY_RESULT-VALUE.<dyn_field> = wa_query_result-formatted_value.
*改成取带单位的单元格数据pos = pos + 1.ENDWHILE.ENDDO.APPEND <dyn_wa> TO <dyn_table>.CLEAR <dyn_wa>.line_ps = line_ps + 1.ENDWHILE.ENDFUNCTION.

2.基于函数创建程序 Z_GET_ZDEMO

*&---------------------------------------------------------------------*
*& Report Z_GET_ZDEMO
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT Z_GET_ZDEMO.
TABLES:/BIC/AZTDEMO2.*PARAMETER:z_fsr_f TYPE /bic/azfiglc046-fiscper OBLIGATORY .
*PARAMETER:z_fsr_t   TYPE /bic/azfiglc046-fiscper  .
*SELECT-OPTIONS: z_comp FOR /bic/azfiglc046-/bic/zcomp_cod.*根据query生成的动态结构定义,维度为C,指标为V,有多少条创建多少个
TYPES:BEGIN OF line,c1(100) TYPE c,c2(100) TYPE c,c3(100) TYPE c,c4(100) TYPE c,c5(100) TYPE c,c6(100) TYPE c,c7(100) TYPE c,c8(100) TYPE c,c9(100) TYPE c,v1(30)  TYPE c,v2(30)  TYPE c,v3(30)  TYPE c,v4(30)  TYPE c,v5(30)  TYPE c,v6(30)  TYPE c,END   OF line.DATA:wa_line      TYPE line,lt_dso       TYPE TABLE OF /BIC/AZTDEMO2,ls_dso       TYPE /BIC/AZTDEMO2,wa_parameter TYPE w3query,i_parameter  TYPE TABLE OF w3query,dyn_table    TYPE REF TO data.FIELD-SYMBOLS:<dyn_table> TYPE STANDARD TABLE,<dyn_wa>    TYPE any,<dyn_field> TYPE any.DATA:e_lines_inserted TYPE int4,et_msg           TYPE rs_t_msg,e_upd_req_tsn    TYPE rspm_request_tsn,et_act_req_tsn   TYPE rsdso_t_tsn.INITIALIZATION.*  SELECT
* SINGLE
*   zdate INTO @DATA(lv_zdate)
* FROM  ztcon_bpc02 .
*
*  z_fsr_f = lv_zdate+0(4) && '001' .
*
*  z_fsr_t =  lv_zdate+0(4) && '0' && lv_zdate+4(2).*----------------------------------------------------------------------*
*           数据处理过程                                               *
*----------------------------------------------------------------------*START-OF-SELECTION.*要先将要更新的模型内的公司库存数据 R掉  在插入新的,在where后面加入期间限制,即可按月刷新ASDO.。SELECTPLANT,COORDER,MATERIAL,/BIC/ZCALMONTH,'R' AS RECORDMODE,/BIC/ZCALYEAR,COMP_CODE,BASE_UOM,/BIC/ZCAMONTH2,LOC_CURRCY,/BIC/ZMENGE1,CPQUABU,/BIC/ZAHGPSL,/BIC/ZABHGSL,/BIC/ZACZ,/BIC/ZACZHFGINTO TABLE @DATA(lt_r)FROM  /BIC/AZTDEMO2.*  SELECT
*        DISTINCT
*       /bic/zcomp_cod
*       INTO TABLE @DATA(lt_comp)
*     FROM  /bic/azfiglc046
*       WHERE /bic/zcomp_cod IN @z_comp
*         AND  /bic/zcomp_cod <> ''
*       ORDER BY /bic/zcomp_cod.*  IF z_comp IS INITIAL.
*    CLEAR lt_comp.
*    INSERT INITIAL LINE INTO lt_comp INDEX 1.
*
*  ENDIF.*  LOOP AT lt_comp INTO DATA(ls_comp).
*
*    CLEAR : i_parameter.
*
*query input变量赋值
*    wa_parameter-name = 'VAR_NAME_1'.
*    wa_parameter-value = 'ZCOMP'.
*    APPEND wa_parameter TO i_parameter.
*
*    wa_parameter-name = 'VAR_VALUE_EXT_1'.
*    wa_parameter-value =  ls_comp-/bic/zcomp_cod .
*    APPEND wa_parameter TO i_parameter.
*
*    wa_parameter-name = 'VAR_NAME_2'.
*    wa_parameter-value = 'Z1FISPER04'.
*    APPEND wa_parameter TO i_parameter.
*
*    wa_parameter-name =   'VAR_VALUE_LOW_EXT_2'.
*    wa_parameter-value =  z_fsr_f.
*    APPEND wa_parameter TO i_parameter.
*
*    wa_parameter-name =   'VAR_VALUE_HIGH_EXT_2'.
*    wa_parameter-value = z_fsr_t.
*
*
*    APPEND wa_parameter TO i_parameter.*   wa_parameter-name = 'VAR_NAME_1'."ZCVC_ZCALMONTH_019*   wa_parameter-value = 'ZCVC_ZCALMONTH_019'.*   APPEND wa_parameter TO i_parameter.wa_parameter-name = 'VAR_VALUE_EXT_1'."ZCVC_ZCALMONTH_019wa_parameter-value = '202406'.APPEND wa_parameter TO i_parameter.wa_parameter-name = 'VAR_NAME_2'."ZCVC_ZCALMONTH_019wa_parameter-value = 'ZCVC_ZCATEGORY_001'.APPEND wa_parameter TO i_parameter.
*wa_parameter-name = 'VAR_VALUE_EXT_2'."版本(单值出口,以输入月份所在月的版本)wa_parameter-value =  'V01' .APPEND wa_parameter TO i_parameter.
*wa_parameter-name = 'VAR_NAME_3'."数据来源(单值,可选出口)wa_parameter-value = 'ZCVC_ZASJLY_001'.APPEND wa_parameter TO i_parameter.wa_parameter-name = 'VAR_VALUE_EXT_3'."数据来源(单值,可选出口)wa_parameter-value = 'LOAD'.APPEND wa_parameter TO i_parameter.call function 'Z_GET_BW_QUERY_DATA'EXPORTINGi_infoprovider = 'ZTDEMO'“”这里是信息对象i_query        = 'ZTEST1'“这里是query”I_VIEW_ID      = ''i_t_parameter  = i_parameter
*       DESTINATION    =IMPORTINGdy_table       = dyn_table.*    IF dyn_table IS INITIAL.
*      CONTINUE.
*    ENDIF.ASSIGN dyn_table->* TO <dyn_table>.*2、将BW查询结果集写入直接更新DSOLOOP AT <dyn_table> ASSIGNING <dyn_wa>.MOVE-CORRESPONDING <dyn_wa>  TO wa_line.
*      ls_dso-z_fiscper_from = z_fsr_f.
*      ls_dso-z_fiscper_to   = z_fsr_t.
*      ls_dso-/bic/zcomp_cod = wa_line-c1.*      ENDCASE.
*     去除单位,逗号等DATA:LV_VN TYPE CHAR10,LV_I TYPE I.FIELD-SYMBOLS:<F1>,<F2>.ASSIGN wa_line TO <F1>.
"动态处理V1到V140,去除单位及逗号
CLEAR LV_I.
DO 140 TIMES.
LV_I = LV_I + 1.
LV_VN = 'V' && LV_I.
ASSIGN COMPONENT LV_VN OF STRUCTURE <F1> TO <F2>.
“如果query已经无量纲公式处理,此处无单位,去除逗号即可”
REPLACE ALL OCCURRENCES OF  ','   IN  <F2>  WITH  ``.
ENDDO.ls_dso-LOC_CURRCY  = wa_line-c1.ls_dso-/BIC/ZCALYEAR = wa_line-c2.ls_dso-/BIC/ZCALMONTH = wa_line-c3.ls_dso-/BIC/ZCAMONTH2 = wa_line-c4.ls_dso-COMP_CODE  = wa_line-c5.ls_dso-BASE_UOM  = wa_line-c6.ls_dso-PLANT  = wa_line-c7.ls_dso-COORDER  = wa_line-c8.ls_dso-MATERIAL  = wa_line-c9.ls_dso-/BIC/ZMENGE1  = wa_line-v1.ls_dso-CPQUABU = wa_line-v2.ls_dso-/BIC/ZAHGPSL = wa_line-v3.ls_dso-/BIC/ZABHGSL  = wa_line-v4.ls_dso-/BIC/ZACZ  = wa_line-v5.ls_dso-/BIC/ZACZHFG  = wa_line-v6.APPEND ls_dso TO lt_dso.CLEAR ls_dso.ENDLOOP.CLEAR: <dyn_table>.
*  ENDLOOP.*先将R掉的请求号 添加到模型内CALL FUNCTION 'RSDSO_WRITE_API'EXPORTINGi_adsonm            = 'ZTDEMO'
*     I_ALLOW_NEW_SIDS    = RS_C_TRUE
*     I_ACTIVATE_DATA     = RS_C_TRUE   "激活
*     IT_AGGREGATION      = LT_AGGREGATIONit_data             = lt_rIMPORTINGe_lines_inserted    = e_lines_insertedet_msg              = et_msge_upd_req_tsn       = e_upd_req_tsnet_act_req_tsn      = et_act_req_tsnEXCEPTIONSwrite_failed        = 1activation_failed   = 2datastore_not_found = 3OTHERS              = 4.CASE sy-subrc.
*          WHEN 0.
*            MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4 RAISING CHAIN_FAILED.WHEN 1.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 RAISING write_failed.WHEN 2.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 RAISING activation_failed.WHEN 3.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 RAISING datastore_not_found.ENDCASE.*再将更新的数据 添加到请求内CALL FUNCTION 'RSDSO_WRITE_API'EXPORTINGi_adsonm            = 'ZTDEMO'
*     I_ALLOW_NEW_SIDS    = RS_C_TRUEI_ACTIVATE_DATA     = RS_C_TRUE   "激活
*     IT_AGGREGATION      = LT_AGGREGATIONit_data             = lt_dsoIMPORTINGe_lines_inserted    = e_lines_insertedet_msg              = et_msge_upd_req_tsn       = e_upd_req_tsnet_act_req_tsn      = et_act_req_tsnEXCEPTIONSwrite_failed        = 1activation_failed   = 2datastore_not_found = 3OTHERS              = 4.CASE sy-subrc.
*          WHEN 0.
*            MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4 RAISING CHAIN_FAILED.WHEN 1.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 RAISING write_failed.WHEN 2.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 RAISING activation_failed.WHEN 3.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 RAISING datastore_not_found.ENDCASE.*Selection texts
*----------------------------------------------------------
* Z_COMP         公司代码(不输入公司代码,将更新所有公司)
* Z_FSR_F         会计期间始
* Z_FSR_T         会计期间止

3.注意点

注意点1

query中指标必须指标放在上面,维度放在下面,把结果行拿掉,佛则赋值会出现问题

注意点2

动态内表的生成顺序和query的顺序是一致的,后面如果改query字段顺序,就会有问题,需要改相应的赋值逻辑。

注意点3

获取的query数据默认是char类型,如果没有在query处理带单位的金额,会带单位,需要出处理

注意点4

传参格式比较特殊,注意写法,不同的参数有不同的NAME格式

Characteristic Value Variables

Parameter variables or variables for several single values are predefined as follows:

Parameter

Description

VAR_NAME_I

Technical name of the variables

VAR_VALUE_EXT_I

Attribute value in external display

Key for characteristic value in external display

Interval variables are predefined as in the following:

Parameter

Description

VAR_NAME_I

Technical name of the variables

VAR_VALUE_LOW_EXT_I

“From” characteristic value in external display

Key for characteristic value in external display

VAR_VALUE_HIGH_EXT_I

“To” characteristic value in external display

Key for characteristic value in external display

Selection option variables are predefined as in the following:

parameter

Description

VAR_NAME_I

Technical name of the variables

VAR_OPERATOR_I

An operator

'EQ' = Individual value

'BT' = Interval

'LT' = Less than

'LE' = Less than or equal to

'GT' = Greater than

'GE' = Greater than or equal to

VAR_VALUE_LOW_EXT_I

“From” characteristic value in external display

Key for characteristic value in external display

VAR_VALUE_HIGH_EXT_I

“To” characteristic value in external display

Key for characteristic value in external display

This value must only be specified with VAR_OPERATOR='BT'.

VAR_SIGN_I

Row properties

'I' found values are added,

 'E' found values are removed.

Variables for precalculated value sets are preassigned as follows:

Parameter

Description

VAR_NAME_I

Technical name of the variables

VAR_VALUE_EXT_I

Name of value set

Variables for Single Hierarchy Nodes or Variables for Several Hierarchy Nodes

Parameter

Description

VAR_NAME_I

Technical name of the variables

VAR_VALUE_EXT_I

Node key in external display

Key for hierarchy node

VAR_NODE_IOBJNM_I

Node characteristic name

With characteristic nodes and text nodes, you have to specify the characteristic name (0HIER_NODE).

Hierarchy, Formula, and Text Variables

Parameter

Description

VAR_NAME_I

Technical name of the variables

VAR_VALUE_EXT_I

Hierarchy name, formula value, text

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

笔记mybatisplus

MP入门 Mybatis-Plus&#xff08;简称MP&#xff09;是一个Mybatis的增强工具&#xff0c;在Mybatis的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。 Mybatis-Plus已经封装好了大量增删改查的方法&#xff0c;程序员只需要继承BaseMapper就可以使用这些方法…

Linux阿里云服务器,利用docker安装EMQX

第一步&#xff0c;给云服务器docker进行加速 阿里云搜索“镜像加速器”&#xff0c;找到下面这个菜单&#xff0c;点进去 然后找到镜像工具下的镜像加速器 把这个加速器地址复制 然后在自己的云服务器中&#xff0c;找到docker的文件夹 点击json配置文件 把地址修改为刚刚…

如何将LaTeX数学公式嵌入到PowerPoint中

如何将LaTeX数学公式嵌入到PowerPoint中 简介 在学术演示或技术报告中&#xff0c;清晰且专业地展示数学公式是至关重要的。PowerPoint虽然提供了一些基本的公式编辑功能&#xff0c;但如果你需要更复杂或格式严格的公式&#xff0c;使用LaTeX生成公式并嵌入到PPT中是一个极佳…

Python酷库之旅-第三方库Pandas(092)

目录 一、用法精讲 391、pandas.Series.hist方法 391-1、语法 391-2、参数 391-3、功能 391-4、返回值 391-5、说明 391-6、用法 391-6-1、数据准备 391-6-2、代码示例 391-6-3、结果输出 392、pandas.Series.to_pickle方法 392-1、语法 392-2、参数 392-3、功能…

KT来袭,打造沉浸式体验的聚合性web3应用平台

随着步入 2024&#xff0c;漫长的区块链熊市即将接近尾声。纵观产业发展&#xff0c;逆流而上往往会是彰显品牌市场影响力和技术实力的最佳证明。在这次周期中&#xff0c;一个名为KT的web3.0聚合平台吸引了市场关注&#xff0c;无论在市场层面还是技术层面&#xff0c;都广泛赢…

听劝❗用AI做职场思维导图仅仅需要几秒钟啊

本文由 ChatMoney团队出品 嘿&#xff0c;各位职场朋友们 是不是常常对着密密麻麻的笔记感到焦虑呢&#xff1f; 想整理却无从下手&#xff1f; 别怕&#xff0c;ChatmoneyAI知识库来拯救你的整理困难症啦&#xff01; 咱们都知道&#xff0c;思维导图是职场中必备的神器 …

zoom 会议机器人web例子

一、需要创建zoom app&#xff0c;创建及配置参考&#xff1a;Zoom会议机器人转写例子-CSDN博客 这里直接使用zoom-recall的配置。 二、需要生成签名&#xff0c;参数为&#xff1a;zoom-recall中的Client ID和Client Secret 1、git clone https://github.com/zoom/meetings…

【PHP入门教程】PHPStudy环境搭建+composer创建项目

文章目录 PHP 的历史PHP 的用途PHP 的特点和优势PHP 环境搭建环境准备安装window 安装CentOS / Ubuntu / Debian 安装 第一个Hello World使用Apache服务运行命令行运行代码 Composer安装 Composer&#xff1a;安装途中报错解决&#xff1a;初始化项目创建文件最终文件目录Compo…

微服务:配置管理和配置热更新

参考&#xff1a;黑马程序员之微服务 &#x1f4a5; 该系列属于【SpringBoot基础】专栏&#xff0c;如您需查看其他SpringBoot相关文章&#xff0c;请您点击左边的连接 目录 一、引言 二、配置共享 1. 添加共享配置到nacos &#xff08;1&#xff09;jdbc的共享配置 shared…

设计模式之Decorator装饰者、Facade外观、Adapter适配器(Java)

装饰者模式 设计模式的基本原则&#xff0c;对内关闭修改。 Decorator Pattern&#xff0c;装饰者模式&#xff0c;也叫包装器模式(Wrapper Pattern)&#xff1a;将一个对象包装起来&#xff0c;增加新的行为和责任。一定是从外部传入&#xff0c;并且可以没有顺序&#xff0…

望繁信科技入选2024年第3批上海市高新技术成果转化项目名单

近日&#xff0c;上海望繁信科技有限公司&#xff08;以下简称“望繁信科技”&#xff09;凭借其自主研发的“数字北极星流程挖掘分析软件”项目&#xff0c;成功入选2024年第3批上海市高新技术成果转化项目名单。这一殊荣根据《上海市高新技术成果转化项目认定办法》&#xff…

Keil Error-Flash Download failed Cortex-M4 擦除芯片还不好使的方案!!!

点击魔术棒-Debug-Settings后看到SWDIO可以正常识别&#xff0c;但是点击Reset下拉只有三个选项。 此时点击Pack&#xff0c;将Enable勾去掉。 回到Reset&#xff0c;此时多了Autodetet选项&#xff0c;选择这个选项后&#xff0c;即可正常烧录。

CLI举例:通过ISAKMP方式建立GRE over IPsec隧道

配置安全策略&#xff0c;允许私网指定网段进行报文交互&#xff0c;放行IKE协商报文。配置静态路由&#xff0c;保证两端路由可达。配置GRE Tunnel接口以及Tunnel口的转发路由。配置基于ACL的IPsec策略。GRE over IPsec中IPsec需要保护的数据流以GRE的起点为源、终点为目的。 …

初始C++(类与对象)

感谢大佬的光临各位&#xff0c;希望和大家一起进步&#xff0c;望得到你的三连&#xff0c;互三支持&#xff0c;一起进步 个人主页&#xff1a;LaNzikinh-CSDN博客 文章目录 前言一.引用二.内联函数三.类和对象总结 前言 之前讲c的命令空间和第一个程序的运行&#xff0c;继…

Aixos食用指南,超全面详细讲解!

前言&#xff1a;axios是目前最流行的ajax封装库之一&#xff0c;用于很方便地实现ajax请求的发送。特意花费了两个小时为大家准备了一份全面详细的Aixos食用指南&#xff0c;需要的小伙伴点个关注 哦~&#x1f495; &#x1f308;&#x1f308;文章目录 Axios 简介 Axios 特…

vue实现卡片遮罩层交互式功能

前言 在前端开发中&#xff0c;卡片遮罩层是一种常见的交互设计元素&#xff0c;用于强调某个区域或内容&#xff0c;并提供用户操作的入口。本文将带大家在 vue 中结合实际案例实现此功能。 实现效果 完整代码 html <template><!-- 主容器 --><div class&quo…

ctfshow WEB刷题

web1 直接右键打开&#xff0c;在源代码里 web2 ctrlu查看源码 web3 打开bp抓包发送直接就得到了 web4 用dirsearch扫描发现txt文件 访问 接着访问得到flag web5 用dirbuster扫描看看有没有phps源码泄露&#xff0c;发现存在 访问下载文件打开就是flag web6 用dirsearch扫…

ES6笔记总结(Xmind格式):第三天

Xmind鸟瞰图&#xff1a; 简单文字总结&#xff1a; ES6知识总结&#xff1a; Promise的使用: 1.使用 new Promise() 构造函数来创建一个 promise 对象 2.接受两个函数作为参数&#xff1a;resolve 和 reject ①resolve 函数在异步操作成功完成时调用&#xf…

python构建一个web程序

from flask import Flaskapp Flask(__name__)app.route(/) def hello_world():return 欢迎来到我的Python Web程序!if __name__ __main__:app.run(debugTrue)1、安装flask D:\Users\USER\PycharmProjects\pythonProject1\p01>pip install flask WARNING: Ignoring invalid…

服务器五大关键组件拆解分析

拆解服务器五大关键组件 "AI服务器五大硬件揭秘&#xff1a;深入剖析PCB构造&#xff0c;揭示内部真实面貌。本文通过一步步拆解PCB,为读者呈现了一台服务器的内部世界&#xff0c;力求让您对服务器升级的潜在价值有更深的理解和把握。" 1、五大硬件部分可归纳为——…