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,一经查实,立即删除!

相关文章

内容分发网络CDN分布式部署加速原理

哈喽&#xff0c;大家好&#xff0c;淼淼又来和大家见面啦&#xff0c;大家应该也知道&#xff0c;在应用开发市场中&#xff0c;软件产品的内测阶段对于确保产品质量与市场接受度至关重要&#xff0c;但是传统的内测分发方式往往面临地域分布广泛、网络环境各异的挑战&#xf…

ubuntu16.04配置rsh

Ubuntu16.04 配置rsh服务&#xff1a; 1&#xff1a;先安装以下软件&#xff1a; sudo apt-get rsh-server sudo apt-get rsh-client sudo apt-get rsh-redone-server sudo apt-get xinetd 2&#xff1a;在/etc/hosts 中添加访问的主机ip和主机名 192.168.0.66 cpci6200…

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&…

创建表、插入表数据和索引得准则

当你有一个较大的数据集&#xff0c;并且你想要在这个数据集的某个或某些列上创建FULLTEXT索引时&#xff0c;通常的做法是先插入数据&#xff0c;然后再创建索引。 这是因为在插入数据时&#xff0c;数据库需要同时更新索引&#xff0c;这会增加插入操作的开销。特别是对于FUL…

【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;…

flutter 设置全屏 和隐藏状态栏和导航栏

设置全面屏 使用 SafeArea 将页面套起来 top bottom 都设置为true SafeArea(top: false,bottom: false,child: Container(child: _body(),), ), 隐藏状态栏和导航栏 SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, overlays: []);overlays 中可以填需要展示的 如…

车灯LED电源控制降压恒流输出8A大电流芯片AP5125高低亮

产品描述 AP5125 是一款外围电路简单的 Buck 型平均电流检测模式的 LED 恒流驱动器&#xff0c;适用于 8-100V 电压范围的非隔离式大功率恒流 LED 驱动领域。芯片采用固定频率 140kHz 的 PWM 工作模式&#xff0c; 利用平均电流检测模式&#xff0c;因此具有优异的负载调整 率…

第26篇 Windows快捷键大全

201. Win Shift 左键点击任务栏图标 - 打开应用程序的窗口菜单&#xff0c;允许你进行更多操作&#xff0c;如关闭所有窗口。 202. Win Shift 左/右箭头 - 将当前窗口移动到上一个或下一个虚拟桌面。 203. Win Shift 左键点击开始按钮 - 搜索所有应用程序和文件&#xff…

Python中的Map函数:简化你的循环和函数调用

目录 一、Map函数基础 二、使用Lambda表达式 三、处理多个列表 四、与Filter和Reduce的比较 map函数 ilter函数 reduce函数 五、使用Map的好处 六、结语 &#x1f680; 个人主页&#xff1a;xmp65535 &#x1f680; 专栏&#xff1a;python技术专栏 在Python中&#…

汇编期末复习知识点

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