zoukankan      html  css  js  c++  java
  • ABAP Help Document(27):12 Program Parameters

    12.Program Parameters

    12.1 Parameter In SAP Memory

    SAP内存是当前应用程序服务器的一个特定于用户的内存区域,用户会话的所有主会话都可以一次访问该内存区域。SPA/GPA parameter定义ID最长为20个字符,存储在SAP内存中。SPA/GPA parameter参数名维护在Table:TPARA中。

    语法:

    SET PARAMETER ID pid FIELD dobj.

    语法:
    GET PARAMETER ID pid FIELD dobj.

    12.2Language Environment

    1.Text Pools

    Text Pools支持Executable programs;Class pools;Function groups;Module pools;Subroutine pools。

    profile parameter :zcsa/second_language,当没有Text Pools时,使用配置;

    使用SET LANGUAGE,在执行program时指定语言;

    语法:

    SET LANGUAGE lang.

    lang:在T002表,字段SPRAS维护。

    READ TEXTPOOL,获取读取Text Pools,或使用function: SELECTION_TEXTS_MODIFY and SELECTION_TEXTS_DTEL。

    示例:

    FORM f_program_param.
      DATA:lt_langu LIKE TABLE OF sy-langu.
      DATA:ls_langu LIKE LINE OF lt_langu.
      "获取t002表语言
      SELECT spras FROM t002 INTO TABLE lt_langu.
      LOOP AT lt_langu INTO ls_langu.
        "设置语言
        SET LANGUAGE ls_langu.
        IF sy-subrc = 0.
          WRITE:/ ls_langu, text-010.
        ENDIF.
      ENDLOOP.
    ENDFORM

    2Text Environment

    SAP code page维护表:TCP0C

    Name

    Key

    Meaning

    PLATFORM

    X

    Operating system of the application server

    LANGU

    X

    Language key

    COUNTRY

    X

    Country key

    MODIFIER

    X

    Locale key (is not used)

    LOCALE

    Operating system locale

    CHARCO

    SAP code page number

    CHARCOMNLS

    obsolete

    语法:

    SET LOCALE LANGUAGE lang [obsolete_parameters].

    语法:

    GET LOCALE LANGUAGE lang [obsolete_parameters].

    示例:

    "指定code page
    FORM f_program_param1.
      DATA:lv_text TYPE c LENGTH 3.
      FIELD-SYMBOLS:<hex> TYPE x.
      "不同编码规则
      ASSIGN lv_text TO <hex> CASTING.
      lv_text = 'äöü'.
      WRITE:/ <hex>.
    
      SET LOCALE LANGUAGE 'E'.
      TRANSLATE lv_text TO UPPER CASE.
      WRITE:/ <hex>.
    
      lv_text = 'äöü'.
      SET LOCALE LANGUAGE 'R'.
      TRANSLATE lv_text TO UPPER CASE.
      WRITE:/ <hex>.
      SET LOCALE LANGUAGE ' '.
    ENDFORM

    3Formatting Settings

    数字格式,小数点千分符;

    日期格式,顺序及符号;

    时间格式,12、24小时格式;

    CL_ABAP_TIMEFM时间格式帮助类;

    配置表Table:T005X,不同country,数字、日期、时间格式设置;

    语法:

    SET COUNTRY cntry.

    指定T005X表配置默认country格式。

    数字格式,栏位XDEZP:

    XDEZP

    Decimal Separator

    Thousands Separator

    " "

    ","

    "."

    X

    "."

    ","

    Y

    ","

    " "

    日期格式,栏位DATFM:

    DATFM

    Date Format

    "1"

    dd.mm.yyyy

    "2"

    mm/dd/yyyy

    "3"

    mm-dd-yyyy

    "4"

    yyyy.mm.dd

    "5"

    yyyy/mm/dd

    "6"

    yyyy-mm-dd

    "7"

    ggyy.mm.dd, Japanese date

    "8"

    ggyy/mm/dd, Japanese date

    "9"

    ggyy-mm-dd, Japanese date

    "A"

    yyyy/mm/dd, Islamic date 1

    "B"

    yyyy/mm/dd, Islamic date 2

    "C"

    yyyy/mm/dd, Iranian date

    时间格式,TIMEFM栏位:

    TIMEFM

    Time Format

    0

    24-hour format (default setting) hh:mm:ss

    1

    12-hour format (1 to 12) hh:mm:ss AM and hh:mm:ss PM

    2

    12-hour format (1 to 12) hh:mm:ss am and hh:mm:ss pm

    3

    12-hour format (0 to 11) hh:mm:ss AM and hh:mm:ss PM

    4

    12-hour format (0 to 11) hh:mm:ss am and hh:mm:ss pm

    示例:

    "指定format
    FORM f_program_param2.
      DATA:lt_t005x TYPE TABLE OF t005x.
      DATA:ls_t005x LIKE LINE OF lt_t005x.
      DATA:lv_num TYPE P LENGTH 8 DECIMALS 4 VALUE '123456.6678'.
      DATA:lv_date TYPE D.
      DATA:lv_time TYPE T.
      DATA:lv_str TYPE string.
      lv_date = sy-datum.
      lv_time = sy-uzeit.
    
      "获取domain
      DATA:lt_fixvals TYPE ddfixvalues.
      DATA:ls_fixvals LIKE LINE OF lt_fixvals.
      DATA:lo_descr TYPE REF TO cl_abap_elemdescr.
      DATA:lv_index TYPE I.
      "获取Domain
      lo_descr ?= cl_abap_elemdescr=>describe_by_name( 'T005X-DATFM' ).
      lt_fixvals = lo_descr->get_ddic_fixed_values( p_langu = sy-langu ).
      LOOP AT lt_fixvals INTO ls_fixvals.
        CLEAR ls_t005x.
        ls_t005x-land = '@' && ls_fixvals-low.
        "数字格式有三种
        lv_index = sy-tabix.
        lv_index = lv_index MOD 3.
        CASE lv_index.
          WHEN 0.
            ls_t005x-xdezp = ''.
          WHEN 1.
            ls_t005x-xdezp = 'X'.
          WHEN 2.
            ls_t005x-xdezp = 'Y'.
        ENDCASE.
        "日期格式
        ls_t005x-datfm = ls_fixvals-low.
        "时间格式
        lv_index = sy-tabix.
        lv_index = lv_index MOD 5.
        CASE lv_index.
          WHEN 0.
            ls_t005x-timefm = '0'.
          WHEN 1.
            ls_t005x-timefm = '1'.
          WHEN 2.
            ls_t005x-timefm = '2'.
          WHEN 3.
            ls_t005x-timefm = '3'.
          WHEN 4.
            ls_t005x-timefm = '4'.
        ENDCASE.
        APPEND ls_t005x TO lt_t005x.
      ENDLOOP.
      "更新到数据库表
      MODIFY t005x FROM TABLE lt_t005x.
    
      "查询
      SELECT * FROM t005x INTO TABLE lt_t005x WHERE land LIKE '@%'.
      LOOP AT lt_t005x INTO ls_t005x.
       CLEAR lv_str.
       lv_str = 'Language:' && ls_t005x-land && '---'
        && |{ lv_num COUNTRY = ls_t005x-land }|.
       lv_str = lv_str && '---' && |{ lv_date COUNTRY = ls_t005x-land }|.
       lv_str = lv_str && '---' && |{ lv_time COUNTRY = ls_t005x-land }|.
       WRITE:/ lv_str.
      ENDLOOP.
    
      "删除添加记录
      DELETE FROM t005x WHERE land LIKE '@%'.
    ENDFORM.

     

  • 相关阅读:
    [php]php设计模式 (总结)
    MySql常用命令总结
    mysql常用命令
    搜集几个API接口
    c语言 11-7
    c语言中转换字符串函数 atoi函数
    c语言中 strncmp函数, 函数原型和头文件。
    c语言中strcmp函数,函数原型和函数头文件
    c语言中strncat函数,函数原型以头文件
    c语言中strcat函数,函数原型和函数头文件
  • 原文地址:https://www.cnblogs.com/tangToms/p/14697277.html
Copyright © 2011-2022 走看看