销售增强字段写入凭证文本分配

7 篇文章 0 订阅

用户想把贷项销售订单数据写入凭证文本和分配字段

CMOD->SDVFX002

BREAK yangtao.
"将销售订单写入字段,在开票的时候将销售订单的文本写入到对应的凭证行
DATA(lv_vbeln) = VALUE vbeln( ).
LOOP AT cvbrp INTO DATA(lw_cvbrp).
  IF lw_cvbrp-aubel IS NOT INITIAL.
    lv_vbeln = lw_cvbrp-aubel.
  ENDIF.

  IF lv_vbeln IS INITIAL AND lw_cvbrp-vgbel IS NOT INITIAL.
    lv_vbeln = lw_cvbrp-vgbel.
  ENDIF.

  IF lv_vbeln IS NOT INITIAL.
    lv_vbeln = |{ lv_vbeln ALPHA = IN }|.
    SELECT COUNT(*) FROM vbak WHERE vbeln EQ lv_vbeln.
    IF sy-subrc EQ 0.
      EXIT.
    ENDIF.
  ENDIF.
ENDLOOP.

IF lv_vbeln IS NOT INITIAL.
  xaccit-xref2_hd = lv_vbeln.
ENDIF.

然后在BTE 1120里面

FUNCTION zsample_process_00001120.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     VALUE(I_BKDF) TYPE  BKDF OPTIONAL
*"  TABLES
*"      T_BKPF STRUCTURE  BKPF
*"      T_BSEG STRUCTURE  BSEG
*"      T_BKPFSUB STRUCTURE  BKPF_SUBST
*"      T_BSEGSUB STRUCTURE  BSEG_SUBST
*"      T_BSEC STRUCTURE  BSEC OPTIONAL
*"  CHANGING
*"     REFERENCE(I_BKDFSUB) TYPE  BKDF_SUBST OPTIONAL
*"----------------------------------------------------------------------

  DATA: lv_xblnr_alt TYPE bkpf-xblnr_alt,
        lv_xref1_hd  TYPE bkpf-xref1_hd.
  CLEAR: lv_xblnr_alt,lv_xref1_hd.
  IMPORT p1 = lv_xblnr_alt FROM MEMORY ID 'XBLNR_ALT'.      "FROM    ZFM_CREATE_FIDOC
  IMPORT p1 = lv_xref1_hd FROM MEMORY ID 'XREF1_HD'.        "FROM    ZFM_CREATE_FIDOC

  BREAK yangtao.

  ""ZCR1\ZDR1:开票时带入销单的相关文本到凭证抬头文本中 20240814
  DATA(lv_vbeln) = VALUE vbeln( ).
  IF t_bkpf[] IS NOT INITIAL.
    lv_vbeln = VALUE #( t_bkpf[ 1 ]-xref2_hd ) .
    lv_vbeln = |{ lv_vbeln ALPHA = IN }|.

    SELECT SINGLE auart,zbktxt INTO @DATA(lw_vbak) FROM vbak WHERE vbeln = @lv_vbeln.
    SELECT SINGLE zsgtxt INTO @DATA(lv_zsgtxt) FROM vbap WHERE vbeln =  @lv_vbeln AND zsgtxt <> ''.
  ENDIF.

  LOOP AT t_bkpfsub ASSIGNING FIELD-SYMBOL(<fs_bkpf>).
    IF lv_xblnr_alt IS NOT INITIAL.
      <fs_bkpf>-xblnr_alt = lv_xblnr_alt.
    ENDIF.
    IF lv_xref1_hd IS NOT INITIAL.
      <fs_bkpf>-xref1_hd = lv_xref1_hd.
    ENDIF.


    "ZCR1\ZDR1:开票时带入销单的相关文本到凭证抬头文本中 20240814
    IF lw_vbak-auart = 'ZCR1' OR lw_vbak-auart = 'ZDR1'.
      <fs_bkpf>-bktxt = lw_vbak-zbktxt.
    ENDIF.
  ENDLOOP.


  "ZCR1\ZDR1:开票时带入销单的相关文本到凭证抬头文本中 20240814
  IF ( lw_vbak-auart = 'ZCR1' OR lw_vbak-auart = 'ZDR1' ) AND lv_zsgtxt IS NOT INITIAL.
    LOOP AT t_bsegsub ASSIGNING FIELD-SYMBOL(<fs_bseg>)  .
      <fs_bseg>-sgtxt = lv_zsgtxt.
    ENDLOOP.
  ENDIF.

ENDFUNCTION.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值