SAP 变更记录表查询使用逻辑简介

通常用户在遇到问题后,经常会问某个单据的变更记录,很多模块中在前台的操作界面中都根据对应的菜单栏中可以找到对应的变更记录,像销售订单、交货单、采购申请、采购订单都在菜单栏位中都可以查询到对应的修改记录,但是对于想批量查询一些单据的变更记录就要涉及自定义的开发了。

SAP 变更记录基本都会存在两张表中

更改凭证抬头—CDHDR
更改凭证项目—CDPOS
更改文档创建的对象—TCDOB

我们以销售订单的变更记录和交货单的变更记录进行演示

我们在查询表CDHDR的时候,首先就需要知道文档对象,不同的业务场景存在不同的文档对象
在这里插入图片描述
我们可以通过表TCDOB查询到对应业务场景中的文档对象,输入对应的后台表名称,如下图我们填写VBAP销售订单的后台表名称,然后执行

在这里插入图片描述
可以查询到销售订单的文档对象就是VERKBELEG在这里插入图片描述

同理:
交货单的文档对象就是:LIEFERUNG
采购申请:BANF
采购订单:EINKBELEG

然后我们在查询的时候就可以通过对象类型进行取值
如下图
对象值的位置填写的就是交货单的单号
在这里插入图片描述
然后就可以查到这个交货单的变更记录
在这里插入图片描述
我们可以根据 表+字段名来确定我们更改的是什么内容

在这里插入图片描述
以下代码是用于查询销售订单交货单变更记录查询的代码:

*&---------------------------------------------------------------------*
*& Report ZSDR027
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZSDR027.TABLES:vbak,cdhdr,cdpos,likp.
TYPES:BEGIN OF ty_cdhp,objectclas TYPE  cdhdr-objectclas  , " 更改文档对象objectid   TYPE  cdhdr-objectid  , " 对象值changenr   TYPE  cdhdr-changenr  , " 文档编号username   TYPE  cdhdr-username  , " 用户udate      TYPE  cdhdr-udate , " 日期utime      TYPE  cdhdr-utime , " 时间tcode      TYPE  cdhdr-tcode , " 事务planchngnr TYPE  cdhdr-planchngnr  , " 更改号act_chngno TYPE  cdhdr-act_chngno  , " 文档编号was_plannd TYPE  cdhdr-was_plannd  , " 已创建change_ind TYPE  cdhdr-change_ind  , " 应用对象变更langu      TYPE  cdhdr-langu , " 语言version    TYPE  cdhdr-version , " 三字节字段tabname    TYPE  cdpos-tabname , " 表名tabkey     TYPE  cdpos-tabkey  , " 表键fname      TYPE  cdpos-fname , " 字段名chngind    TYPE  cdpos-chngind , " 更改标识符text_case  TYPE  cdpos-text_case , " 文本标志unit_old   TYPE  cdpos-unit_old  , " 单位unit_new   TYPE  cdpos-unit_new  , " 单位cuky_old   TYPE  cdpos-cuky_old  , " 货币代码cuky_new   TYPE  cdpos-cuky_new  , " 货币代码value_new  TYPE  cdpos-value_new , " 新值value_old  TYPE  cdpos-value_old , " 旧值END OF ty_cdhp.
DATA: gt_cdhp TYPE TABLE OF ty_cdhp WITH HEADER LINE  .DATA: gt_likp TYPE TABLE OF ty_cdhp WITH HEADER LINE  .TYPES: BEGIN OF gy_show,objectclas    TYPE  cdhdr-objectclas  , " 更改文档对象objectid      TYPE  cdhdr-objectid  , " 对象值changenr      TYPE  cdhdr-changenr  , " 文档编号username      TYPE  cdhdr-username  , " 用户udate         TYPE  cdhdr-udate , " 日期utime         TYPE  cdhdr-utime , " 时间tcode         TYPE  cdhdr-tcode , " 事务tabname       TYPE  cdpos-tabname , " 表名tabkey        TYPE  cdpos-tabkey  , " 表键fname         TYPE  string , " 字段名chngind       TYPE  cdpos-chngind , " 更改标识符text_case     TYPE  cdpos-text_case , " 文本标志unit_old      TYPE  cdpos-unit_old  , " 单位unit_new      TYPE  cdpos-unit_new  , " 单位cuky_old      TYPE  cdpos-cuky_old  , " 货币代码cuky_new      TYPE  cdpos-cuky_new  , " 货币代码value_new     TYPE  cdpos-value_new , " 新值value_old     TYPE  cdpos-value_old , " 旧值box           TYPE c,name_text(25) ,posnr         TYPE vbep-posnr,etenr         TYPE vbep-etenr,matnr         TYPE mara-matnr, "物料maktx         TYPE makt-maktx, "物料描述KUNNR         TYPE KNA1-KUNNR, "客户NAME1         TYPE KNA1-NAME1, "客户描述VKBUR         TYPE VBAK-VKBUR,  "销售办公室BEZEI1         TYPE TVKBT-BEZEI, "销售办公室描述VKGRP         TYPE VBAK-VKGRP, "销售组BEZEI          TYPE TVGRT-BEZEI, "销售组描述NETWR          TYPE VBAP-NETWR, "订单未税金额WAERK          TYPE vbap-WAERK, "币别LFIMG          TYPE lips-LFIMG, "交货单数量VBELN          TYPE VBAP-VBELN,POSNR1          TYPE VBAP-POSNR,END OF gy_show.
DATA gt_show TYPE TABLE OF gy_show WITH HEADER LINE.
DATA it_show TYPE TABLE OF gy_show WITH HEADER LINE.DATA: gs_layout   TYPE lvc_s_layo,gt_fcat_lvc TYPE lvc_t_fcat,gs_fcat_lvc TYPE lvc_s_fcat.
TYPES:BEGIN OF ty_user,bname      TYPE usr21-bname,persnumber TYPE usr21-persnumber,name_first TYPE adrp-name_first,name_last  TYPE adrp-name_last,name_text  TYPE string,END OF ty_user.
DATA:it_user TYPE TABLE OF ty_user WITH HEADER LINE.
DATA:it_user1 TYPE TABLE OF ty_user WITH HEADER LINE.DEFINE set_fieldcat.CLEAR gs_fcat_lvc .gs_fcat_lvc-fieldname = &1."内表的字段gs_fcat_lvc-outputlen = &2."输出长度gs_fcat_lvc-scrtext_l = &3."在ALV里面显示的名字gs_fcat_lvc-just      = &4."水平对齐方式,L左对齐,R右对齐。gs_fcat_lvc-no_zero   = &5."去除前导零gs_fcat_lvc-checkbox  = &6."checkboxgs_fcat_lvc-edit      = &7.APPEND gs_fcat_lvc TO gt_fcat_lvc .
END-OF-DEFINITION.SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.PARAMETERS:r1 RADIOBUTTON GROUP g1 DEFAULT 'X' USER-COMMAND ucom,r2 RADIOBUTTON GROUP g1.
SELECTION-SCREEN END OF BLOCK b1.SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE TEXT-002.
SELECT-OPTIONS: s_vbeln FOR vbak-vbeln  MODIF ID p1,s_uname FOR gt_show-name_text LOWER CASE MODIF ID p1,s_datum FOR cdhdr-udate MODIF ID p1.
SELECTION-SCREEN END OF BLOCK b2.SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE TEXT-003.SELECT-OPTIONS:S_VBELN1 for  LIKP-VBELN  MODIF ID p0,s_uname1 FOR gt_show-name_text LOWER CASE MODIF ID p0,s_datum1 FOR cdhdr-udate MODIF ID p0.SELECTION-SCREEN END OF BLOCK b3.INITIALIZATION.
AT SELECTION-SCREEN OUTPUT."修改屏幕PERFORM frm_modify_screen.
START-OF-SELECTION.
FORM frm_modify_screen.LOOP AT SCREEN.IF r1 = 'X'.IF screen-group1 = 'P0'.screen-active = '0'.ENDIF.IF screen-name = 'S_IDNRK-LOW'.screen-required = '2'.ENDIF.ELSEIF r2 = 'X'.IF screen-group1 = 'P1'.screen-active = '0'.ENDIF.ENDIF.MODIFY SCREEN.ENDLOOP.
ENDFORM.START-OF-SELECTION.CASE 'X'.WHEN r1.PERFORM fvm_uname .PERFORM fvm_getdata.PERFORM fvm_alv.WHEN r2.PERFORM fvm_uname1 .PERFORM fvm_getlikp.PERFORM fvm_alv1.WHEN OTHERS.ENDCASE.END-OF-SELECTION.FORM fvm_getdata.SELECTcdhdr~objectclascdhdr~objectidcdhdr~changenrcdhdr~usernamecdhdr~udatecdhdr~utimecdhdr~tcodecdhdr~planchngnrcdhdr~act_chngnocdhdr~was_planndcdhdr~change_indcdhdr~langucdhdr~versioncdpos~tabnamecdpos~tabkeycdpos~fnamecdpos~chngindcdpos~text_casecdpos~unit_oldcdpos~unit_newcdpos~cuky_oldcdpos~cuky_newcdpos~value_newcdpos~value_oldINTO CORRESPONDING FIELDS OF TABLE  gt_cdhpFROM cdhdrINNER JOIN cdpos   ON cdpos~objectclas = cdhdr~objectclasAND cdpos~objectid = cdhdr~objectidAND cdpos~changenr = cdhdr~changenrWHERE cdhdr~objectid IN s_vbelnAND cdhdr~udate IN s_datumAND cdhdr~objectclas = 'VERKBELEG'  "销售订单AND cdhdr~langu = sy-languAND cdpos~fname IN ('CMWAE','FKDAT','ZTERM','KUNNR','MATNR','KDMAT','WMENG','CMPRE','EDATU').SORT gt_cdhp BY objectid  tabkey udate utime.SELECT VKGRP , BEZEIINTO TABLE @DATA(LT_TVGRT)FROM TVGRTWHERE SPRAS = '1'.SELECT VKBUR , BEZEIINTO TABLE @DATA(LT_TVKBT)FROM TVKBTWHERE SPRAS = '1'.SELECTVKBUR_ANA ,"销售办事处VKGRP_ANA  ,VBELN ,  "销售凭证POSNR  ,  "凭证项目MATNR ,  "物料编号ARKTX ,   "物料描述NETWR   ,       "订单未税金额WAERK  ,       "币别KUNNR_ANAINTO TABLE @DATA(LT_ZVBAP)FROM VBAP
*   INNER JOIN TVGRT on TVGRT~VKGRP = vbap~VKGRP_ANAWHEREVBAP~VBELN in @s_vbeln.
sort LT_ZVBAP by VBELN POSNR.SELECT KUNNR , NAME1INTO TABLE @DATA(LT_KNA1)FROM KNA1FOR ALL ENTRIES IN @LT_ZVBAPWHEREKNA1~KUNNR = @LT_ZVBAP-KUNNR_ANA .SORT LT_KNA1 by kunnr.LOOP AT gt_cdhp .MOVE-CORRESPONDING gt_cdhp TO gt_show.READ TABLE it_user WITH KEY bname = gt_cdhp-username BINARY SEARCH.IF sy-subrc = 0.gt_show-name_text = it_user-name_text.ENDIF.IF gt_show-name_text NOT IN s_uname[]  AND  gt_cdhp-username NOT IN s_uname[].CLEAR gt_cdhp.CONTINUE.ENDIF.CASE gt_cdhp-fname.WHEN  'CMWAE' .gt_show-fname =  '货币'.WHEN  'BSTKD' .gt_show-fname =  '客户参考'.WHEN  'ZTERM' .gt_show-fname =  '付款方式'.WHEN  'KUNNR' .IF gt_cdhp-tabname = 'VBAK'.gt_show-fname =  '售达方'.ELSEIF gt_cdhp-tabname = 'VBPA'..gt_show-fname =  '送达方'.ENDIF.WHEN  'MATNR' .gt_show-fname =  '物料'.WHEN  'KDMAT' .gt_show-fname =  '客户物料编号'.WHEN  'WMENG' .gt_show-fname =  '订单数量'.WHEN  'CMPRE' .gt_show-fname =  '金额'.WHEN  'EDATU' .gt_show-fname =  '首个交货日期'.WHEN OTHERS.gt_show-fname = ''.ENDCASE.IF gt_show-fname = ''.CONTINUE.ENDIF.gt_show-posnr =  gt_show-tabkey+13(6).gt_show-etenr = gt_show-tabkey+19(4).APPEND gt_show.CLEAR:gt_cdhp, gt_show .ENDLOOP.LOOP at gt_show.READ TABLE LT_ZVBAP INTO DATA(LS_ZVBAP) WITH KEY VBELN = gt_show-objectidPOSNR = gt_show-POSNR BINARY SEARCH.IF sy-subrc = 0.gt_show-MATNR = LS_ZVBAP-matnr.gt_show-MAKTX = LS_ZVBAP-ARKTX.gt_show-NETWR = LS_ZVBAP-NETWR.gt_show-WAERK = LS_ZVBAP-WAERK.gt_show-VKBUR = LS_ZVBAP-VKBUR_ANA.gt_show-VKGRP = LS_ZVBAP-VKGRP_ANA.ENDIF.READ TABLE LT_ZVBAP INTO DATA(LS_ZVBAP1) WITH KEY VBELN = gt_show-objectid  BINARY SEARCH.IF sy-subrc = 0.gt_show-KUNNR = LS_ZVBAP1-KUNNR_ANA.endif.MODIFY gt_show.endloop.LOOP at gt_show.READ TABLE LT_TVGRT INTO DATA(LS_TVGRT) WITH KEY VKGRP = gt_show-VKGRPBINARY SEARCH.IF sy-subrc = 0.gt_show-BEZEI1 = LS_TVGRT-BEZEI.ENDIF.READ TABLE LT_TVKBT INTO DATA(LS_TVKBT) WITH KEY VKBUR = gt_show-VKBURBINARY SEARCH.IF sy-subrc = 0.gt_show-BEZEI = LS_TVKBT-BEZEI.ENDIF.READ TABLE LT_KNA1 INTO DATA(LS_KNA1) WITH KEY KUNNR = gt_show-KUNNRBINARY SEARCH.IF sy-subrc = 0.gt_show-name1 = LS_KNA1-name1.ENDIF.MODIFY gt_show.endloop.ENDFORM.FORM fvm_alv .PERFORM set_layout.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form SET_LAYOUT
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM set_layout .gs_layout-no_toolbar = 'X'.gs_layout-cwidth_opt = 'X'.gs_layout-zebra = 'X'.gs_layout-box_fname = 'BOX'.REFRESH gt_fcat_lvc .set_fieldcat:'KUNNR'   '' '客户'    '' 'X' '' '','NAME1'   '' '客户名称'    '' 'X' '' '','OBJECTID'   '' '销售订单'    '' 'X' '' '',
*                'OBJECTCLAS'   '' '更改文档对象'    '' 'X' '' '',
*                'CHANGENR'   '' '文档编号'    '' 'X' '' '',
*                'TABKEY'     '' '表键'   '' 'X' '' '','POSNR'      '' '项目'   '' 'X' '' '','VKBUR'      '' '销售办公室'   '' 'X' '' '','BEZEI'      '' '销售办公室描述'   '' 'X' '' '','VKGRP'      '' '销售组'   '' 'X' '' '','BEZEI1'      '' '销售组描述'   '' 'X' '' '','MATNR'      '' '物料'   '' 'X' '' '','MAKTX'      '' '物料描述'   '' 'X' '' '','NETWR'      '' '订单未税金额' '' 'X' '' '','WAERK'      '' '币别' '' 'X' '' '','USERNAME'   '' '用户'   '' 'X' '' '','NAME_TEXT'  '' '用户名'   '' 'X' '' '','UDATE'      '' '日期'    '' 'X' '' '','UTIME'      '' '时间'   '' 'X' '' '','TCODE'      '' '事务码' '' 'X' '' '','TABNAME'    '' '表名'    '' 'X' '' '','FNAME'      '' '字段名'  '' 'X' '' '',
*                'CHNGIND'    '' '更改标志' '' 'X' '' '','VALUE_NEW'  '' '新值' '' 'X' '' '','VALUE_OLD' '' '旧值'  '' 'X' '' '' .CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'EXPORTINGi_callback_program = sy-repid
*     i_callback_pf_status_set = 'FRM_PF_STATUS'
*     i_callback_user_command  = 'FRM_USER_COMMAND'is_layout_lvc      = gs_layoutit_fieldcat_lvc    = gt_fcat_lvci_save             = 'A'TABLESt_outtab           = gt_showEXCEPTIONSprogram_error      = 1OTHERS             = 2.IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.ENDFORM.
*&---------------------------------------------------------------------*
*& Form FVM_UNAME
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM fvm_uname .DATA gc_string TYPE string .RANGES: gs_uname FOR gt_show-name_text.LOOP AT s_uname . "大小写gc_string  = s_uname-low .TRANSLATE gc_string TO UPPER CASE  .IF gc_string <> s_uname-low .gs_uname-sign = 'I'.gs_uname-option = 'EQ'.gs_uname-low = gc_string. "大写的APPEND gs_uname .ENDIF.ENDLOOP.LOOP AT gs_uname.APPEND gs_uname TO s_uname .ENDLOOP.SELECT usr21~bnameusr21~persnumberadrp~name_firstadrp~name_lastINTO CORRESPONDING FIELDS OF TABLE it_userFROM usr21INNER JOIN adrpON usr21~persnumber = adrp~persnumber .SORT it_user BY bname .LOOP AT it_user .CONCATENATE it_user-name_last it_user-name_first INTO it_user-name_text.MODIFY it_user.ENDLOOP .
ENDFORM.FORM fvm_getlikp.SELECTcdhdr~objectclascdhdr~objectidcdhdr~changenrcdhdr~usernamecdhdr~udatecdhdr~utimecdhdr~tcodecdhdr~planchngnrcdhdr~act_chngnocdhdr~was_planndcdhdr~change_indcdhdr~langucdhdr~versioncdpos~tabnamecdpos~tabkeycdpos~fnamecdpos~chngindcdpos~text_casecdpos~unit_oldcdpos~unit_newcdpos~cuky_oldcdpos~cuky_newcdpos~value_newcdpos~value_oldINTO CORRESPONDING FIELDS OF TABLE  gt_LIKPFROM cdhdrINNER JOIN cdpos   ON cdpos~objectclas = cdhdr~objectclasAND cdpos~objectid = cdhdr~objectidAND cdpos~changenr = cdhdr~changenrWHERE cdhdr~objectid IN s_vbeln1AND cdhdr~udate IN s_datum1AND cdhdr~objectclas = 'LIEFERUNG'  "交货单AND cdhdr~langu = sy-languAND cdpos~fname IN ('CMNGV','LFIMG','KUNNR','WADAT_IST','LGORT','WBSTK','SPE_WAUHR_IST','AMTBL','CMGST').SORT gt_cdhp BY objectid  tabkey udate utime.* SELECT
*        VKBUR_ANA ,"销售办事处
*        VKGRP_ANA  ,
*          VBELN ,  "销售凭证
*          POSNR  ,  "凭证项目
*         MATNR ,  "物料编号
*          ARKTX ,   "物料描述
*       NETWR   ,       "订单未税金额
*        WAERK  ,       "币别
*        KUNNR_ANA
*
*   INTO TABLE @DATA(LT_ZVBAP1)
*   FROM VBAP
**   INNER JOIN TVGRT on TVGRT~VKGRP = vbap~VKGRP_ANA
*   WHERE
*    VBAP~VBELN in @s_vbeln1.
*
*   sort LT_ZVBAP1 by VBELN POSNR.
SELECTVBELN,KUNNRINTO TABLE @DATA(LT_LIKP)FROM LIKPWHERELIKP~VBELN in @S_VBELN1.SELECT KUNNR , NAME1INTO TABLE @DATA(LT_ZKNA1)FROM KNA1FOR ALL ENTRIES IN @LT_LIKPWHEREKNA1~KUNNR = @LT_LIKP-KUNNR .SORT LT_ZKNA1 by kunnr.SELECTVBELN ,POSNR,matnr,ARKTX ,LFIMGINTO TABLE @DATA(LT_LIPS)FROM LIPSWHERELIPS~VBELN in @s_vbeln1.sort LT_LIPS by VBELN POSNR..LOOP AT gt_LIKP .MOVE-CORRESPONDING gt_LIKP TO it_show.READ TABLE it_user1 WITH KEY bname = gt_LIKP-username BINARY SEARCH.IF sy-subrc = 0.it_show-name_text = it_user1-name_text.ENDIF.IF it_show-name_text NOT IN s_uname1[]  AND  gt_LIKP-username NOT IN s_uname1[].CLEAR gt_LIKP.CONTINUE.ENDIF.CASE gt_LIKP-fname.WHEN  'CMNGV' .it_show-fname =  '计划交货日期'.WHEN  'WADAT_IST' .it_show-fname =  '实际发货日期'.WHEN  'LFIMG' .it_show-fname =  '交货数量'.WHEN  'KUNNR' .IF gt_LIKP-tabname = 'VBAK'.it_show-fname =  '售达方'.ELSEIF gt_LIKP-tabname = 'VBPA'..it_show-fname =  '送达方'.ENDIF.WHEN  'LGORT' .it_show-fname =  '库存地点'.WHEN  'WBSTK' .it_show-fname =  '货物移动状态'.WHEN  'SPE_WAUHR_IST' .it_show-fname =  '发货时间'.WHEN  'AMTBL' .it_show-fname =  '已批准凭证信贷值'.WHEN  'CMGST' .it_show-fname =  '信用检查的总体状态'.WHEN OTHERS.it_show-fname = ''.ENDCASE.IF it_show-fname = ''.CONTINUE.ENDIF.it_show-posnr =  it_show-tabkey+13(6).it_show-etenr = it_show-tabkey+19(4).APPEND it_show.CLEAR:gt_likp, it_show .ENDLOOP.LOOP at it_show.READ TABLE LT_LIPS INTO DATA(LS_LIPS) WITH KEY VBELN = it_show-objectidPOSNR = it_show-POSNR .IF sy-subrc = 0.it_show-MATNR = LS_LIPS-MATNR.it_show-MAKTX = LS_LIPS-ARKTX.it_show-LFIMG = LS_LIPS-LFIMG.ENDIF.READ TABLE LT_LIKP INTO DATA(LS_LIKP) WITH KEY VBELN = it_show-objectid.
IF sy-subrc = 0.it_show-KUNNR = LS_LIKP-KUNNR.ENDIF.MODIFY it_show.READ TABLE LT_ZKNA1 INTO DATA(LS_ZKNA1) WITH KEY KUNNR = it_show-KUNNR.IF sy-subrc = 0.it_show-NAME1 = LS_ZKNA1-NAME1.ENDIF.MODIFY it_show.ENDLOOP.
ENDFORM.FORM fvm_uname1 .DATA gc_string1 TYPE string .RANGES: gs_uname1 FOR it_show-name_text.LOOP AT s_uname1 . "大小写gc_string1  = s_uname1-low .TRANSLATE gc_string1 TO UPPER CASE  .IF gc_string1 <> s_uname1-low .gs_uname1-sign = 'I'.gs_uname1-option = 'EQ'.gs_uname1-low = gc_string1. "大写的APPEND gs_uname1 .ENDIF.ENDLOOP.LOOP AT gs_uname1.APPEND gs_uname1 TO s_uname1 .ENDLOOP.SELECT usr21~bnameusr21~persnumberadrp~name_firstadrp~name_lastINTO CORRESPONDING FIELDS OF TABLE it_user1FROM usr21INNER JOIN adrpON usr21~persnumber = adrp~persnumber .SORT it_user1 BY bname .LOOP AT it_user1 .CONCATENATE it_user1-name_last it_user1-name_first INTO it_user1-name_text.MODIFY it_user1.ENDLOOP .
ENDFORM.FORM fvm_alv1 .gs_layout-no_toolbar = 'X'.gs_layout-cwidth_opt = 'X'.gs_layout-zebra = 'X'.gs_layout-box_fname = 'BOX'.REFRESH gt_fcat_lvc .set_fieldcat:'KUNNR'   '' '送达方'    '' 'X' '' '','NAME1'   '' '送达方名称'    '' 'X' '' '','OBJECTID'   '' '交货单'    '' 'X' '' '','POSNR'      '' '项目'   '' 'X' '' '','LFIMG'      '' '交货数量'   '' 'X' '' '','MATNR'      '' '物料'   '' 'X' '' '','MAKTX'      '' '物料描述'   '' 'X' '' '','USERNAME'   '' '用户'   '' 'X' '' '','NAME_TEXT'  '' '用户名'   '' 'X' '' '','UDATE'      '' '日期'    '' 'X' '' '','UTIME'      '' '时间'   '' 'X' '' '','TCODE'      '' '事务码' '' 'X' '' '','TABNAME'    '' '表名'    '' 'X' '' '','FNAME'      '' '字段名'  '' 'X' '' '',
*                'CHNGIND'    '' '更改标志' '' 'X' '' '','VALUE_NEW'  '' '新值' '' 'X' '' '','VALUE_OLD' '' '旧值'  '' 'X' '' '' .CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'EXPORTINGi_callback_program = sy-repid
*     i_callback_pf_status_set = 'FRM_PF_STATUS'
*     i_callback_user_command  = 'FRM_USER_COMMAND'is_layout_lvc      = gs_layoutit_fieldcat_lvc    = gt_fcat_lvci_save             = 'A'TABLESt_outtab           = it_showEXCEPTIONSprogram_error      = 1OTHERS             = 2.IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.ENDFORM.

更多SAP文章请点击
更多SAP文章更新,大家一起学习进步!

请添加图片描述

文章中如有错误处。敬请指正!

搜索公众号:SAP资料文库
微信号:SPRO_PP

写于:深圳福田

时间:2024-04-24

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

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

相关文章

CentOS-7安装Mysql并允许其他主机登录

一、通用设置&#xff08;分别在4台虚拟机设置&#xff09; 1、配置主机名 hostnamectl set-hostname --static 主机名2、修改hosts文件 vim /etc/hosts 输入&#xff1a; 192.168.15.129 master 192.168.15.133 node1 192.168.15.134 node2 192.168.15.136 node33、 保持服…

揭秘APP广告变现秘籍:月入过万!

在移动应用的黄金时代&#xff0c;我们见证了无数创新和变革。然而&#xff0c;随着市场日益饱和&#xff0c;开发者和公司开始寻求新的方式来提高收益&#xff0c;而广告变现无疑是其中的关键。 对于移动应用来说&#xff0c;如何高效利用APP内的用户体验来提高广告收益是一个…

Python11个入门级知识点

Python被誉为全世界高效的编程语言&#xff0c;同时也被称作是“胶水语言”&#xff0c;那它为何能如此受欢迎&#xff0c;下面我们就来说说Python入门学习的必备11个知识点&#xff0c;也就是它为何能够如此受欢迎的原因. Python 简介 Python 是一个高层次的结合了解释性、编…

【1431】java学习网站系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java 学习网站系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0&…

【VSCode调试技巧】Pytorch分布式训练调试

最近遇到个头疼的问题&#xff0c;对于单机多卡的训练脚本&#xff0c;不知道如何使用VSCode进行Debug。 解决方案&#xff1a; 1、找到控制分布式训练的启动脚本&#xff0c;在自己的虚拟环境的/lib/python3.9/site-packages/torch/distributed/launch.py中 2、配置launch.…

【Java框架】SpringBoot(二)核心配置

目录 yml文件什么是yml文件yml文件的优点使用场景脚本语言序列化配置文件 yml的基本语法yml支持的数据类型字面量对象(属性和值)、Map(键值对)数组复合结构 Spring Boot配置文件的值注入第一种读取方式Value第二种读取方式ConfigurationProperties第三种读取方式自动装配Enviro…

【Linux】详解信号的分类如何自定义信号的作用

一、信号的定义 Linux系统提供的让用户(进程)给其他进程发送异步信息的一种方式。在操作系统中&#xff0c;信号是一种进程间通讯的有限制的方式&#xff0c;主要用于提醒进程某个事件已经发生。信号在Unix、类Unix以及其他POSIX兼容的操作系统中广泛应用。它作为一种异步的通知…

【DVadmin教程】新增一个app并且创建一个curd模型

下载dvadmin 在gitee上搜索 django-vue-admin 别选错了&#xff0c;选择那个星最多的 gitee上会推荐移步 django-vue3-admin 别上当&#xff0c;用那个会踩坑&#xff0c;此教程就不适用了&#xff1b; 运行后端 后端 创建APP python manage.py startapp rules调整位置 为了…

java学习笔记1

java基础入门 1 初识java 1.1 jdk安装 1.1.1 下载jdk https://www.oracle.com/java/technologies/downloads/#java8-windows1.1.2 安装jdk jdk-8u361-windows-x64.exe安装到D:\Program Files\Java\jdk1.8.0_361安装jre,修改地址到D:\Program Files\Java\jre1.8.0_361jdk安装…

【JAVA进阶篇教学】第二篇:JDK8中Lambda表达式

博主打算从0-1讲解下java进阶篇教学&#xff0c;今天教学第二篇&#xff1a;JDK8中Lambda表达式。 Lambda 表达式是 Java 8 中引入的一项重要特性&#xff0c;它允许您以更简洁、更紧凑的方式编写匿名函数。Lambda 表达式使得函数式编程在 Java 中变得更加容易和优雅。下面我将…

C++|模板进阶(非类型模板参数+特化)

目录 一、非类型模板参数 二、模板特化 2.1函数模板特化 2.2类模板特化 2.2.1全特化 2.2.2偏特化 三、模板不支持分离编译 四、模板优缺点 一、非类型模板参数 在模板初阶中&#xff0c;所学习的模板的参数是类型形参&#xff0c;但其实还有非类型形参。 类型形参&am…

boa.conf配置详解

boa的配置文件路径&#xff1a;/etc/boa/boa.conf Port 80 # 监听的端口号&#xff0c;缺省值是80 若80被占用&#xff0c;可修改监听端口为其他未占用端口&#xff08;如&#xff1a;88&#xff09; Listen 192.68.0.5 # 绑定调用的IP地址&#xff0c;一般注释掉&#xff0c;…

汇编期末复习知识点

参考文献1 第一章 概述 组成 计算机系统由硬件子系统和软件子系统组成。硬件子系统&#xff1a;组成计算机系统的所有电子的&#xff0c;机械的&#xff0c;光学的和磁性的元部件。 计算机中常用进制数表示 十进制(Decimal):数据尾部加一后缀D&#xff0c;如2355D二进制&a…

nginx配置挂载html

目标 很多软件的官方文档&#xff0c;在国内打开很慢&#xff0c;每次都得等很久&#xff0c;看到官方同时提供了html的包&#xff0c;所以想着挂载到本地nginx下&#xff0c;查看会方便很多。 下载官方html文档包&#xff0c;解压到documentation_htmls下 想添加新的文档也是…

Golang基础3-函数、nil相关

函数 需要声明原型支持不定参数 func sum(numbers ...int)int支持返回多值支持递归支持命名返回参数 // 命名返回参数 func add(a, b int) (sum int) {sum a breturn // 这里不需要显式地写出返回值&#xff0c;因为已经在函数签名中声明了命名返回参数 } 支持匿名函数、闭包…

面试十七、list和deque

一、 Deque Deque容器是连续的空间&#xff0c;至少逻辑上看来如此&#xff0c;连续现行空间总是令我们联想到array和vector,array无法成长&#xff0c;vector虽可成长&#xff0c;却只能向尾端成长&#xff0c;而且其成长其实是一个假象&#xff0c;事实上(1) 申请更大空间 (…

快速理解Laravel容器(IOC、DI、Provider、Contract)

源码理解思维的提升 分享一些个人见解。 Laravel里面的某些概念&#xff0c;就像魔术一样&#xff0c;看起来很厉害&#xff0c;当知道魔术怎么变的&#xff0c;就会认为也不过如此。所以不必感觉Laravel里有些概念难以理解。 应当抛除被框架约束思维的枷锁&#xff0c;用PHP…

vuetify3.0+tailwindcss+vite最新框架

1、根据vuetify官网下载项目 安装vuetify项目 2、根据tailwindcss官网添加依赖 添加tailwindcss依赖 3、 配置main.ts // main.ts import "./style.css"4、使用 <template><h1 class"text-3xl font-bold underline">Hello world!</…

解密 Grupo MasMovil 使用 ClickHouse 监控无线网络

本文字数&#xff1a;4151&#xff1b;估计阅读时间&#xff1a;11 分钟 作者&#xff1a;Rodrigo Aguirregabiria Herrero, Grupo MasMovil 审校&#xff1a;庄晓东&#xff08;魏庄&#xff09; 本文在公众号【ClickHouseInc】首发 我们很高兴与大家分享来自西班牙最大的电信…

数据类型总结

1 引言 在计算机的世界里&#xff0c;数据类型是被人类定义出来的&#xff0c;方便人去更好地理解、辨别数据。计算机只能识别二进制数&#xff0c;不可能要求写代码时&#xff0c;只是输入一些0/1的东西。通过定义数据类型&#xff0c;可以让人和计算机更好地“沟通”&#x…