元帳マスク

設計者
ワークグループタイプのアプリケーションでは、元帳マスクは利用できません。

元帳マスクとは何か

「元帳マスク」は、元帳上の入力可能領域を指定するための設計オブジェクトです。元帳マスクを用いれば、特定の条件を満たさないセルへの入力を禁止することができます。

マスク条件は、「マスク条件式」という構文を用いて設計者が記述します。

マスク条件式

マスク条件の判定は、個々の元帳セルごとに行われます。あるセルについてマスク条件式の値が「True」であれば、そのセルへの入力が許可されます(他の事情により入力が禁止されることもあるため、正確に言えば「そのセルへの入力が許可される」のではなく、「マスク条件式は、そのセルへの入力を禁止しない」ということになります)。

マスク条件式が指定されていない場合は、どの元帳セルについても「True」となるマスク条件が指定されたものとみなされます(したがってマスク条件によって入力が禁止されるセルはありません)。

マスク条件式の記述方法

マスク条件式はテキスト式の方言のひとつです。詳細な文法についてはテキスト式の解説をご参照ください。ここではマスク条件式の特長に加えて、よく使われる記述の例をいくつかご紹介します。

特長

マスク条件式では、「現在のメンバ」は、検査対象である個々の元帳セルに結びついたディメンションメンバを意味します(前述したように、マスク条件の判定は、個々の元帳セルごとに行われます)。
たとえば、#ACCOUNT!@CUR と記述すれば、検査対象の元帳セルに結びついた勘定科目ディメンションメンバを取得できます。このようにして、いったん「現在のメンバ」を取得すれば、そのラベルやプロパティを用いて様々なマスク条件を記述できます。
同様に、検査対象の元帳セルに結びついた元帳が「現在の元帳」となります。現在の元帳は Ledgers!@CUR で取得することができます。

記述例
(1)ディメンションメンバのプロパティ値による条件判定
  例) DEPT!@CUR!TYPE.Label = "PRODUCTION" (1)
1 元帳セルに係る部門(DEPT)ディメンションメンバの TYPE プロパティ値ラベルが「PRODUCTION」であること
式の要素 意味

DEPT

DEPT」をラベルとするディメンション

DEPT!@CUR

上記ディメンションの「現在のメンバ」

⚠マスク条件式で「現在のメンバ」とは、対象元帳セルに関わるメンバの意味です。

DEPT!@CUR!TYPE

上記メンバの「TYPE」プロパティの値

DEPT!@CUR!TYPE.Label

上記「TYPE」プロパティの値のラベル

左辺と右辺の値が等しいことを検査する

"PRODUCTION"

文字列 "PRODUCTION"

なお、.Label を省略して、上述の式を次のように書くこともできます。

  DEPT!@CUR!TYPE = "PRODUCTION"
(2)ディメンションメンバのラベルによる条件判定
  例) DEPT!@CUR.Label <> "RD" (1)
1 元帳セルに係る部門(DEPT)ディメンションメンバのラベルが「RD」でないこと
式の要素 意味

DEPT

DEPT」をラベルとするディメンション

EPT!@CUR

上記ディメンションの「現在のメンバ」

DEPT!@CUR.Label

上記メンバのラベル

<>

左辺と右辺の値が等しくないことを検査する

"RD"

文字列 "RD"

なお、.Label を省略して、上述の式を次のように書くこともできます。

  DEPT!@CUR <> "RD"
(3)元帳でのディメンション使用有無の判定
  例) DEPT!@CUR = "" (1)
1 元帳セルに係る元帳で、部門(DEPT)ディメンションが使用されていないこと

元帳セルに係る元帳で使用されていないディメンションについては、「現在のメンバ」のラベルはブランクとみなされます。

(4)元帳ラベルの判定
  例) Ledgers!@CUR = "GL" (1)
1 元帳セルに係る元帳のラベルが "GL" であること
(5)値の一致・不一致の判定
  例) ENTITY!@CUR <> PARTNER!@CUR (1)
1 元帳セルに係る会社(ENTITY)ディメンションメンバのラベルと相手先(PARTNER)ディメンションメンバのラベルが等しくないこと