zoukankan      html  css  js  c++  java
  • 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

    3.定义全局的文本,并翻译

    使用SOTR_EDIT ,创建文本对象,记录别名,维护对应语言的文本

    在使用的地方,直接调用

    lv_title cl_wd_utilities=>get_otr_text_by_alias'ZWDA/LABEL_TEST' ).

      

  • 相关阅读:
    Spring容器启动前传——web应用
    三方依赖bean初始化导致项目启动失败问题
    一个静态内部类单例引发的思考
    依赖传递
    kafka
    设置旋转元素的基点位置
    keep-alive 的 Props && 钩子函数
    css处理文字: 单行居中 多行居左
    localStorage 存 取 删
    for循环中暂停,async await
  • 原文地址:https://www.cnblogs.com/sapSB/p/6289144.html
Copyright © 2011-2022 走看看