任意の書式を設定する(ユーザ定義パターン)

最終更新日: 2022年2月24日
R8 | R9

ステータスID + 年(西暦下二桁)+ 月(ゼロ詰め)+ 連番(ゼロ詰め四桁)

主キーに次のルールを適用します。

ステータスID + 年(西暦下二桁)+ 月(ゼロ詰め)+ 連番(ゼロ詰め四桁)

下図の場合、ステータス「新規」のIDが1で、年は2022年、月は2月、連番は1000となるため、「122021000」が適用されています。

主キーが122021000となっている

定義方法

  1. 「レポート」モデルの全体構成は下図の通りです。主キー項目「ID」は文字列型とします。
    「ステータス」項目は選択肢モデル「ステータス」モデルを設定しています。
    レポートモデル
  2. 「ステータス」モデル(status)の初期値設定は以下の通りです。「新規」はID 1を、「既存」はID 2をそれぞれ割り当てます。
    ステータスモデルの初期値
  3. 主キー項目「ID」の詳細設定を開きます。主キーは順序を用います。
    また、ユーザ定義式に次のように設定します。
    主キーの詳細設定
    CONCATENATE(
          TOSTR(${status#id}),
          RIGHT(
            PADDING("0",2,YEAR(TODAY())),
            2),
          RIGHT(
            PADDING("0",2,MONTH(TODAY())),
            2),
          SEQ()
        )
    • ${status#id}と記述することで、ステータス項目のID値を取得することができます。
    • CONCATENATE 関数は、コンマ区切りで指定された複数の文字列を連結します。
    • CONCATENATE 関数への引数はすべて文字列であるため、TOSTR 関数で数字を文字列に変更することを行っています。
    • RIGHT 関数は、文字列の右からN桁までを取り出します。
    • PADDING 関数は、文字列に指定文字を詰めて、切り出します。
    • YEAR 関数は、日付型の値から「年」の部分を取り出します。
    • MONTH 関数は、日付型の値から「月」の部分を取り出します。
    • TODAY 関数は本日の日付を返します。
    • SEQ() は、この主キー指定部だけで使える特別な関数です。自動採番された値(順序)を意味します。

    注意

    SEQ()は自動計算式や、初期値で利用することはできません。

固定コード + 年度(西暦四桁)+ 連番(ゼロ詰め六桁)

主キーに次のルールを適用します。

固定コード("PJ")+ 年度(西暦四桁)+ 連番(ゼロ詰め六桁)

下図の例では、固定コードPJに加えて、年度(実行時の日付が2022年2月のため、2021年度)+ゼロ詰め6桁の連番となります。
「PJ2021001001」となっているのがわかります。

主キーの詳細設定

定義方法

主キー項目「ID」は文字列型で、かつ、順序を用いるとします。 ユーザ定義式に次のように設定します。

主キーの詳細設定
CONCATENATE("PJ",
  TOSTR(FISCALYEAR(TODAY())),
  RIGHT(
    PADDING("0",6,SEQ()),
    6
  )
  )