关于长文本写入问题

需求:在创建/修改订单点击保存的时候,将某些信息写入长文本中。

遇到的问题:抬头长文本无法写入/显示,工序、组件长文本无法写入/显示

解决方法:必须要在抬头表中将LTEXT字段置1(中文)

                    工序则需要将工序表中TXTSP SY-LANGU

                   SAVE_TEXT后要COMMIT_TEXT

举例:在CO02中点击保存时将信息写入抬头长文本和第一条工序长文本

DATA IT_DATA TYPE STANDARD TABLE OF TLINE.
  DATA IT_DATA1 TYPE STANDARD TABLE OF TLINE.
  DATA W_DATA TYPE TLINE.
  DATA ID LIKE  THEAD-TDID.
  DATA LANGUAGE LIKE  THEAD-TDSPRAS.
  DATA NAME LIKE  THEAD-TDNAME.
  DATA OBJECT LIKE  THEAD-TDOBJECT.
  DATA ID1 LIKE  THEAD-TDID.
  DATA LANGUAGE1 LIKE  THEAD-TDSPRAS.
  DATA NAME1 LIKE  THEAD-TDNAME.
  DATA OBJECT1 LIKE  THEAD-TDOBJECT.
  DATA WA_STXL TYPE STXL.
  DATA HEADER LIKE THEAD.
  DATA HEADER1 LIKE THEAD.

"必须要设置的字段,AFVC是工序表
  MOVE-CORRESPONDING HEADER_IMP TO HEADER_EXP.
  UPDATE AFVC SET TXTSP SY-LANGU WHERE AUFPL HEADER_IMP-AUFPL AND APLZL '00000001'.
  HEADER_EXP-LTEXT SY-LANGU.


  ID        'KOPF'.
  LANGUAGE  SY-LANGU.
  CONCATENATE SY-MANDT HEADER_IMP-AUFNR INTO NAME.
  "NAME      = '910001000012761'.
  OBJECT    'AUFK'.

  HEADER-TDOBJECT OBJECT.
  HEADER-TDNAME =  NAME .
  HEADER-TDID ID.
  HEADER-TDSPRAS  SY-LANGU.
  CLEAR IT_DATA.
  W_DATA-TDFORMAT '*'.
  W_DATA-TDLINE '行1:测试数据1'.
  APPEND W_DATA TO IT_DATA.
  W_DATA-TDFORMAT '*'.
  W_DATA-TDLINE '行2:测试数据2'.
  APPEND W_DATA TO IT_DATA.

  SELECT SINGLE FROM STXL INTO WA_STXL
    WHERE TDOBJECT OBJECT
    AND   TDNAME NAME
    AND   TDID ID
    AND   TDSPRAS '1'.

  IF WA_STXL IS INITIAL.
    CALL FUNCTION 'CREATE_TEXT'
      EXPORTING
        FID               ID
        FLANGUAGE         LANGUAGE
        FNAME             NAME
        FOBJECT           OBJECT
      TABLES
        FLINES            IT_DATA

              .
    IF SY-SUBRC <> 0.
* Implement suitable error handling here
    ENDIF.

  ELSE.
    CALL FUNCTION 'SAVE_TEXT'
      EXPORTING
        HEADER HEADER
      TABLES
        LINES  IT_DATA.

  ENDIF.
  CLEAR WA_STXL.



  ID1        'AVOT'.
  LANGUAGE1  SY-LANGU.

"工序的名称是CLIENT + 工序的任务清单号(AUFPL) + 计数器(1)
  CONCATENATE SY-MANDT HEADER_IMP-AUFPL '00000001' INTO NAME1.
  OBJECT1    'AUFK'.

  HEADER1-TDOBJECT OBJECT1.
  HEADER1-TDNAME =  NAME1.
  HEADER1-TDID ID1.
  HEADER1-TDSPRAS  SY-LANGU.

  SELECT SINGLE FROM STXL INTO WA_STXL
    WHERE TDOBJECT OBJECT1
    AND   TDNAME NAME1
    AND   TDID ID1
    AND   TDSPRAS '1'.

  IF WA_STXL IS INITIAL.
    CALL FUNCTION 'CREATE_TEXT'
      EXPORTING
        FID               ID1
        FLANGUAGE         LANGUAGE1
        FNAME             NAME1
        FOBJECT           OBJECT1
.

  ELSE.
    CALL FUNCTION 'SAVE_TEXT'
      EXPORTING
        HEADER HEADER1
      TABLES
        LINES  IT_DATA.
 CALL FUNCTION 'COMMIT_TEXT'
  EXPORTING
    OBJECT                'AUFK'
    NAME                  NAME1
    ID                    ID1
    LANGUAGE              '*'
.

  ENDIF.

你可能感兴趣的:(项目心得)