ABAP コードを使用して、SAP システムでサポートされているすべての言語のリストを取得します

*&---------------------------------------------------------------------*
*& Report  ZNOTE_LANGUAGE_TEST
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT znote_language_test.

DATA: ls_t002  TYPE t002,
      ls_t002t TYPE t002t,
      lv_langs TYPE scplangs,
      lv_langu TYPE spras,
      lt_ddlb  TYPE bsp_wd_dropdown_table,
      ls_ddlb  TYPE bsp_wd_dropdown_line,
      lt_lng   TYPE STANDARD TABLE OF t002,
      lt_lngt  TYPE STANDARD TABLE OF t002t.
***************************************************************************************************

SET LOCALE LANGUAGE 'D'.
WRITE: / sy-subrc.
SELECT * FROM t002 INTO TABLE lt_lng.

SELECT * FROM t002t INTO TABLE lt_lngt WHERE spras = sy-langu.

CALL FUNCTION 'SCP_LANGUAGES_IN_INSTANCE_CP'
  IMPORTING
    languages = lv_langs.
DO VARYING lv_langu FROM lv_langs(1) NEXT lv_langs+1(1) RANGE lv_langs.
  IF lv_langu IS INITIAL.
    EXIT.
  ENDIF.
  READ TABLE lt_lng INTO ls_t002 WITH  KEY spras = lv_langu.
  IF sy-subrc IS INITIAL.
    ls_ddlb-key = ls_t002-laiso.
    READ TABLE lt_lngt INTO ls_t002t
         WITH KEY sprsl = lv_langu.
    IF sy-subrc IS INITIAL.
      ls_ddlb-value = ls_t002t-sptxt.
      APPEND ls_ddlb TO lt_ddlb.
    ENDIF.
  ENDIF.
ENDDO.

SORT lt_ddlb BY value ASCENDING.

READ TABLE lt_ddlb WITH KEY value = sy-langu TRANSPORTING NO FIELDS.
WRITE: / sy-subrc.
BREAK-POINT.

この ABAP プログラムの役割は、システムで使用可能な言語のリストを取得して表示することです。

  1. ls_t002(T002 データ テーブルの構造)、lv_langs(システムで使用可能な言語のリスト)、lt_ddlb(ドロップダウン リストのテーブル)など、一部のデータ オブジェクトはプログラムの最初に定義されます。
  2. SET LOCALEステートメントを使用して、システム言語をドイツ語に設定します。
  3. t002データテーブルから使用可能なすべての言語を選択し、lt_lng標準テーブルに保存します。
  4. SELECTステートメントを使用してt002t、データ テーブルから言語固有の名前を選択し、それらをlt_lngt標準。
  5. SCP_LANGUAGES_IN_INSTANCE_CP関数を使用して、システムで使用可能な言語を取得し、それらをlv_langs変数に格納します。
  6. lv_langs変数がループされ、lt_lng対応する言語エントリが標準テーブルで検索されます。
  7. 一致する言語が見つかった場合、その言語コードと名前がlt_ddlbに。
  8. lt_ddlb標準テーブルを名前でソートします。
  9. READ TABLEステートメントを使用してlt_ddlb現在のシステム言語を検索し、結果をsy-subrc変数。
  10. WRITEステートメントを使用して、sy-subrc変数の値を出力します。
  11. BREAK-POINTステートメントの後、プログラムの実行は停止します。

おすすめ

転載: blog.csdn.net/i042416/article/details/130539365