ABAP 生产订单长文本增强 <销售计划 、物料独立需求 长文本带入 计划订单-生产订单 >

 

计划订单长文本带入生产订单
  1. 尝试在生产订单保存后 用 creat_text 函数 去创建长文本,发现前台不显示,查看 文本抬头底表 STXL 发现有值 ,用READ 函数 读取 能读。
DATA:tdid     TYPE thead-tdid,
       tdspras  TYPE thead-tdspras,
       tdname   TYPE thead-tdname,
       tdobject TYPE thead-tdobject,
       t_tline  LIKE TABLE OF tline WITH HEADER LINE.

SELECT SINGLE PTEXT INTO  lv_zz_ptext FROM plaf WHERE PLNUM = afpod-PLNUM.
      if sy-subrc = 0 and  lv_zz_ptext  ne ' '.
    tdid     'KOPF'.
    tdspras  '1'.
    tdname   = SY-MANDT && CAUFV-AUFNR.
    tdobject 'AUFK'.
    t_tline-tdline = lv_zz_ptext.
    t_tline-tdformat = '*'.
    APPEND t_tline.

    CALL FUNCTION 'CREATE_TEXT'
      EXPORTING
        fid       = tdid
        flanguage = tdspras
        fname     = tdname
        fobject   = tdobject
      TABLES
        flines    = t_tline
      EXCEPTIONS
        no_init   1
        no_save   2
        OTHERS    3.
    CLEAR:t_tline[],t_tline,tdobject,tdname,tdspras,tdid.
      endif.
        UPDATE aufk SET ltext '1' WHERE aufnr 
CAUFV-AUFNR.
        COMMIT WORK.
个别版本,前台不显示,查看 文本抬头底表 STXL  发现有值 ,用READ 函数 读取 能读。

 

 

0
 
0
 
        检查发现 订单抬头有个长文本标识 ,调试发现 有文本赋值 1, 手工更新 LTEXT后发现前台还是 不能显示,没解决想着换个思路.
2.在前台工单界面 CO01 /02/03 长文本屏幕  260 PBO 里面增强 ,找到 FORM set_control_text ,
0
发现可以实现,但是考虑到 计划订单转生产订单后,PLAF 表会删除,如果创建的时候不点长文本屏幕 那还是不能获取,故使用自建表 存储。
0
自建表
0
保存 ZZPLAF 增强点 " SAP_CSW notes.
0
 销售计划 物料的独立需求 长文本 >计划订单 >生产订单 需求。
下面 是 销售计划 物料的独立需求 长文本 >计划订单 增强点
 
0
 
0
*
*&---------------------------------------------------------------------*
*& 包含               ZPPE002
*&---------------------------------------------------------------------*
* PLAF-KDAUF
* PLAF-KDPOS
DATA: gv_tdid_head     LIKE thead-tdid,
      gv_tdspras_head  LIKE thead-tdspras,
      gv_tdname_head   LIKE thead-tdname,
      gv_tdobject_head LIKE thead-tdobject.

DATA: gv_tdid_item     LIKE thead-tdid,
      gv_tdspras_item  LIKE thead-tdspras,
      gv_tdname_item   LIKE thead-tdname,
      gv_tdobject_item LIKE thead-tdobject.
DATA: gs_lines_head TYPE tline,
      gt_lines_head TYPE TABLE OF tline.
DATA: gs_lines_item TYPE tline,
      gt_lines_item TYPE TABLE OF tline.
DATA: gv_ptext_h TYPE plaf-ptext,
      gv_ptext_i TYPE plaf-ptext.
DATA:ls_pbed TYPE pbed.
CLEAR:gv_tdid_head    ,
      gv_tdspras_head ,
      gv_tdname_head  ,
      gv_tdobject_head,
      gv_tdid_item      ,
      gv_tdspras_item ,
      gv_tdname_item  ,
      gv_tdobject_item.
IF plaf-paart = 'KD'"销售订单文本
  gv_tdid_head      = '0001'.
  gv_tdspras_head   '1'.
  gv_tdname_head    = plaf-kdauf.
  gv_tdobject_head 'VBBK'.

  gv_tdid_item     '0001'.
  gv_tdspras_item  '1'.
  gv_tdname_item   = plaf-kdauf && plaf-kdpos.
  gv_tdobject_item 'VBBP'.
  BREAK itl_abap.
***  SO HEARD TEXT
  CALL FUNCTION 'READ_TEXT'
    EXPORTING
      client                  = sy-mandt
      id                      = gv_tdid_head
      language                = gv_tdspras_head
      name                    = gv_tdname_head
      object                  = gv_tdobject_head
*     ARCHIVE_HANDLE          = 0
*     LOCAL_CAT               = ' '
* IMPORTING
*     HEADER                  =
*     OLD_LINE_COUNTER        =
    TABLES
      lines                   = gt_lines_head
    EXCEPTIONS
      id                      1
      language                2
      name                    3
      not_found               4
      object                  = 5
      reference_check         6
      wrong_access_to_archive 7
      OTHERS                  8.
  LOOP AT gt_lines_head INTO gs_lines_head.
    gv_ptext_h = gv_ptext_h && gs_lines_head-tdline.
  ENDLOOP.
*** SO ITEM TEXT
  CALL FUNCTION 'READ_TEXT'
    EXPORTING
      client                  = sy-mandt
      id                      = gv_tdid_item
      language                = sy-langu
      name                    = gv_tdname_item
      object                  = gv_tdobject_item
*     ARCHIVE_HANDLE          = 0
*     LOCAL_CAT               = ' '
* IMPORTING
*     HEADER                  =
*     OLD_LINE_COUNTER        =
    TABLES
      lines                   = gt_lines_item
    EXCEPTIONS
      id                      1
      language                2
      name                    3
      not_found               4
      object                  = 5
      reference_check         6
      wrong_access_to_archive 7
      OTHERS                  8.
  LOOP AT gt_lines_item INTO gs_lines_item.
    gv_ptext_i = gv_ptext_i && gs_lines_item-tdline.
  ENDLOOP.
  IF gv_ptext_h IS NOT INITIAL AND gv_ptext_i IS NOT INITIAL.
    plaf-ptext = gv_ptext_h && '/' && gv_ptext_i.
  ELSE.
    plaf-ptext = gv_ptext_h &&  gv_ptext_i.
  ENDIF.
ELSEIF  plaf-paart = 'LA'.
  SELECT SINGLE a~bdzei b~pdatu INTO CORRESPONDING FIELDS OF ls_pbed FROM pbim AS a
    INNER JOIN pbed AS b ON b~bdzei = a~bdzei
    WHERE a~matnr = plaf-matnr AND
          a~werks = plaf-plwrk AND
          b~pdatu = plaf-pedtr AND
          b~plnmg = plaf-gsmng.
  DATA:lv_name TYPE thead-tdname.
  lv_name = ls_pbed-bdzei && ls_pbed-pdatu.
  CLEAR gt_lines_head.
  CALL FUNCTION 'READ_TEXT'
    EXPORTING
      client                  = sy-mandt
      id                      'ET'
      language                = sy-langu
      name                    = lv_name
      object                  = 'PBET'
*     ARCHIVE_HANDLE          = 0
*     LOCAL_CAT               = ' '
* IMPORTING
*     HEADER                  =
*     OLD_LINE_COUNTER        =
    TABLES
      lines                   = gt_lines_head
    EXCEPTIONS
      id                      1
      language                2
      name                    3
      not_found               4
      object                  = 5
      reference_check         6
      wrong_access_to_archive 7
      OTHERS                  8.
  LOOP AT gt_lines_head INTO gs_lines_head.
    gv_ptext_h = gv_ptext_h && gs_lines_head-tdline.
  ENDLOOP.
plaf-ptext = gv_ptext_h.
ENDIF.
CONDENSE plaf-ptext NO-GAPS.

 

posted @ 2022-07-08 14:02  CCSW  阅读(1193)  评论(0)    收藏  举报