首页 > 代码库 > WDA 程序文本翻译OTR

WDA 程序文本翻译OTR

1.针对直接使用表字段,数据元素的情况:

   1.1修改数据元素对应的语言值:DD04T。

   1.2模拟SE63插入翻译条目:LXE_LOG

   1.3运行时文件翻译条目:DDFTX

*&---------------------------------------------------------------------*
*& Report  ZHSICRM_TEXTMD
*&
*&---------------------------------------------------------------------*
*&
*&批量维护数据元素文本,保证使用数据元素文本的屏幕位置能正常显示多语言
*&李渊 20170113  创建
*&上传文件以表DD04T为结构字段
*&---------------------------------------------------------------------*
REPORT ZHSICRM_TEXTMD.

TABLES:DD04T,LXE_LOG,DDFTX.

DATA:GT_DD04T TYPE TABLE OF DD04T,
     GW_DD04T LIKE LINE OF GT_DD04T,
     GS_DD04T LIKE LINE OF GT_DD04T,
     GT_LXE_LOG TYPE TABLE OF LXE_LOG,
     GW_LXE_LOG LIKE LINE OF GT_LXE_LOG,
     GS_LXE_LOG LIKE LINE OF GT_LXE_LOG,
     GT_DDFTX TYPE TABLE OF DDFTX,
     GW_DDFTX LIKE LINE OF GT_DDFTX,
     GS_DDFTX LIKE LINE OF GT_DDFTX.



SELECTION-SCREEN:BEGIN OF BLOCK BLK01 WITH FRAME TITLE TEXT-001.
PARAMETERS:P_TBMA TYPE CRMTABLES-TABNAME NO-DISPLAY, "RSRD1-TBMA_VAL,
           P_FILE LIKE RLGRAP-FILENAME.
SELECTION-SCREEN END OF BLOCK BLK01.

*SELECTION-SCREEN FUNCTION KEY 1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
  PERFORM FRM_GET_FILEPATH.


START-OF-SELECTION.
CHECK P_FILE IS NOT INITIAL.
PERFORM PRM_UPLOAD_EXCEL.
PERFORM PRM_UPDATE_TABLE.









*&---------------------------------------------------------------------*
*&      Form  FRM_GET_FILEPATH
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FRM_GET_FILEPATH .
  CALL FUNCTION WS_FILENAME_GET
    EXPORTING
      MASK             = ,Excel(*.xls),*.XLS,*.XLSX,
      TITLE            = 选择文件(100)
    IMPORTING
      FILENAME         = P_FILE
    EXCEPTIONS
      INV_WINSYS       = 1
      NO_BATCH         = 2
      SELECTION_CANCEL = 3
      SELECTION_ERROR  = 4
      OTHERS           = 5.
  IF SY-SUBRC <> 0.
    "      MESSAGE e100(zdev) WITH ‘选择文件出错!‘(007).
  ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  PRM_UPLOAD_EXCEL
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM PRM_UPLOAD_EXCEL .
IF P_FILE IS NOT INITIAL.
*将excel数据传入内表
    CALL FUNCTION ZALSM_EXCEL_TO_INTERNAL_TABLE
      EXPORTING
        FILENAME    = P_FILE
        I_BEGIN_COL = 1
        I_BEGIN_ROW = 2
        I_END_COL   = 300
        I_END_ROW   = 50000
      TABLES
        INTERN      = GT_DD04T.
  ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  PRM_UPDATE_TABLE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM PRM_UPDATE_TABLE .
  CHECK GT_DD04T[] IS NOT INITIAL.

  LOOP AT GT_DD04T INTO GW_DD04T.
    GS_LXE_LOG-CUSTMNR = 999999.
    CASE GW_DD04T-DDLANGUAGE.
      WHEN E.
        GS_LXE_LOG-TARGLNG = enUS.
*      WHEN ‘1‘.
*        GS_LXE_LOG-TARGLNG = ‘enUS‘.
      WHEN I.
        GS_LXE_LOG-TARGLNG = itIT.
      WHEN D.
        GS_LXE_LOG-TARGLNG = deDE.
      WHEN S.
        GS_LXE_LOG-TARGLNG = esES.
      WHEN J.
        GS_LXE_LOG-TARGLNG = jaJP.
      WHEN OTHERS.
        CONTINUE.
    ENDCASE.

    GS_LXE_LOG-OBJTYPE = DTEL.
    GS_LXE_LOG-OBJNAME = GW_DD04T-ROLLNAME.
    GS_LXE_LOG-UNAME = SY-UNAME.
    GS_LXE_LOG-UDATE = SY-DATUM.
    GS_LXE_LOG-UTIME = SY-UZEIT.
    APPEND GS_LXE_LOG TO GT_LXE_LOG.

    SELECT SINGLE * INTO GS_DDFTX FROM DDFTX
      WHERE TABNAME = GW_DD04T-ROLLNAME
      AND   DDLANGUAGE = E
      AND   ROLLNAME = GW_DD04T-ROLLNAME.
      IF SY-SUBRC = 0.
        GS_DDFTX-DDLANGUAGE = GW_DD04T-DDLANGUAGE.
        GS_DDFTX-SCRTEXT_S = GW_DD04T-SCRTEXT_S.
        GS_DDFTX-SCRTEXT_M = GW_DD04T-SCRTEXT_S.
        GS_DDFTX-SCRTEXT_L = GW_DD04T-SCRTEXT_S.
        GS_DDFTX-REPTEXT   = GW_DD04T-REPTEXT.
        GS_DDFTX-FIELDTEXT   = GW_DD04T-DDTEXT.
        APPEND GS_DDFTX TO GT_DDFTX.
      ENDIF.

  ENDLOOP.

  MODIFY DD04T FROM TABLE GT_DD04T.
  MODIFY LXE_LOG FROM TABLE GT_LXE_LOG.
  IF GT_DDFTX[] IS NOT INITIAL.
    MODIFY DDFTX FROM TABLE GT_DDFTX.
  ENDIF.
  IF SY-SUBRC = 0.
    MESSAGE 导入成功 TYPE S.
  ELSE.
    MESSAGE 导入失败 TYPE S DISPLAY LIKE E.
    EXIT.
  ENDIF.
ENDFORM.

2.WDA程序中用TEXT写死的值

   2.1SOTR_EDIT 

技术分享

可获取单个的文本和KEY值。

  2.2重新进入维护修改值。

  可参考修改SOTR_TEXT

  

WDA 程序文本翻译OTR