コンテンツフレーム起動

項目内容のシフト 文書を SAP ライブラリストラクチャに組み込む

SHIFT 命令の以下の記述法を使用して、項目内容をシフトすることができます。SHIFT により、項目内容が 1 文字ずつ移されます。

指定した桁数による文字列のシフト

SHIFT <c> [BY <n> PLACES] [<mode>].

この命令により、項目 <c> <n> シフトされます。BY <n> PLACES を省略すると、<n> 1 として解釈されます。<n> 0 またはマイナスの場合、<c> は変更されません。<n> <c> の長さを上回っている場合、<c> は空白で埋められます。<n> は変数にすることができます。

<mode> オプションを変えて、項目 <c> を以下のようにシフトすることができます。

        <mode> LEFT の場合:

項目内容が <n> 桁左にシフトされ、項目の右端に <n> 個の空白が追加されます ( デフォルト)

        <mode> RIGHT の場合:

<n> 桁右にシフトされ、項目の左端に <n> 個の空白が追加されます。

        <mode> CIRCULAR の場合:

<n> 桁左にシフトされ、その左側の <n> 文字が右側に表示されます。

 例

DATA: T(10) VALUE 'abcdefghij',
      STRING LIKE T.

STRING = T.
WRITE STRING.

SHIFT STRING.
WRITE / STRING.

STRING = T.
SHIFT STRING BY 3 PLACES LEFT.

WRITE / STRING.

STRING = T.
SHIFT STRING BY 3 PLACES RIGHT.

WRITE / STRING.

STRING = T.
SHIFT STRING BY 3 PLACES CIRCULAR.

WRITE / STRING.

以下が出力されます。

abcdefghij

bcdefghij

defghij

   abcdefg

defghijabc

指定した文字列までの構造のシフト

SHIFT <c> UP TO <str> <mode>.

この命令により、文字列 <str> が見つかるまで<c> の項目内容が検索され、項目 <c> が項目の最後までシフトされます。<mode> オプションは上記と同じです。<str> は変数にすることができます。

<str> <c> で見つからない場合、SY-SUBRC 4 に設定され、<c> はシフトされません。見つかった場合、SY-SUBRC 0 に設定されます。

 例

DATA: T(10) VALUE 'abcdefghij',
      STRING LIKE T,
      STR(2) VALUE 'ef'.

STRING = T.
WRITE STRING.

SHIFT STRING UP TO STR.
WRITE / STRING.

STRING = T.
SHIFT STRING UP TO STR LEFT.

WRITE / STRING.

STRING = T.
SHIFT STRING  UP TO STR RIGHT.

WRITE / STRING.

STRING = T.
SHIFT STRING  UP TO STR CIRCULAR.

WRITE / STRING.

以下が出力されます。

abcdefghij

efghij

efghij

    abcdef

efghijabcd

先頭文字または最終文字による構造のシフト

SHIFT <c> LEFT  DELETING LEADING  <str>.

SHIFT <c> RIGHT DELETING TRAILING <str>.

この命令により、左側の先頭文字または右側の最終文字が <str> に含まれている場合、項目<c> が左または右にシフトされます。次に、項目の右側または左側が空白で埋められます。<str> は変数にすることができます。

 例

DATA: T(14) VALUE '    abcdefghij',
      STRING LIKE T,
      STR(6) VALUE 'ghijkl'.

STRING = T.
WRITE STRING.

SHIFT STRING LEFT DELETING LEADING SPACE.
WRITE / STRING.

STRING = T.
SHIFT STRING RIGHT DELETING TRAILING STR.
WRITE / STRING.

以下が出力されます。

    abcdefghij

abcdefghij

        abcdef

 

 

 

 

コンテンツフレーム終了