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