esmDevelopers
JSプラグイン
esm API
JSプラグイン
esm API
  • RelationItem

RelationItem

RelationItem クラスは紐づけ型項目に対して操作を行うためのメンバーを持っています。

継承

SheetItem

インスタンスプロパティ

sheetName読み取り専用

紐づけ可能なアプリのsheetNameです。

例

esmJSPlugin.sheetSave("customer").onSheetItemsMounted((SheetSaveScreen) => {
  const relationalItem = SheetSaveScreen.getSheetItem(
    "customers.customer.type_suggest1"
  );

  // 変更後の値を確認
  console.log("sheetName:", relationItem.sheetName); // sheetName: "employee"
});

selectionNames

紐づいている各レコードの名前の配列です。

例

esmJSPlugin.sheetSave("customer").onSheetItemsMounted((SheetSaveScreen) => {
  const relationalItem = SheetSaveScreen.getSheetItem(
    "customers.customer.type_suggest1"
  );

  console.log("紐づいているレコードの名前の配列", relationItem.selectionNames); // 紐づいているレコードの名前の配列: "[高橋, 佐藤, 近藤, 斎藤]"
});

selectionLength

紐づいているレコード数の数値です。

例

esmJSPlugin.sheetSave("customer").onSheetItemsMounted((SheetSaveScreen) => {
  const relationalItem = SheetSaveScreen.getSheetItem(
    "customers.customer.type_suggest1"
  );

  console.log("紐づいているレコードの名前の配列", relationItem.selectionNames); // 紐づいているレコードの名前の配列: "[高橋, 佐藤, 近藤, 斎藤]"

  console.log("紐づいているレコードの数:", relationItem.selectionLength); // 紐づいているレコードの数:4
});

インスタンスメソッド

selectionsInclude

id を示す数値を受け取り、紐づいているレコードに指定した id が含まれているかどうかの真偽値を返します。

構文

selectionsInclude(id);
引数

id
レコードの ID を示す数値です。

返値

真偽値

例

esmJSPlugin.sheetSave("customer").onSheetItemsMounted((SheetSaveScreen) => {
  const relationalItem = SheetSaveScreen.getSheetItem(
    "customers.customer.type_suggest2"
  );

  console.log(
    "selections:",
    relationalItem.selections
      .getRows()
      .entries.map((selection) => selection.selectionId)
  ); // selections: [1,2,3,4,5]

  const result = relationItem.selectionsInclude(1);

  console.log("結果:", result); // 結果: true
});

selectionNamesInclude

文字列を受け取り、紐づいているレコードの名前項目の値に指定した文字列が含まれているかどうかの真偽値を返します。

構文

selectionsInclude(name);
引数

name
レコードの名前を示す文字列です。

返値

真偽値

例

esmJSPlugin.sheetSave("customer").onSheetItemsMounted((SheetSaveScreen) => {
  const relationalItem = SheetSaveScreen.getSheetItem(
    "customers.customer.type_suggest2"
  );

  console.log(relationalItem.selectionNames); // selections: ["佐藤","鈴木"]

  const result = relationItem.selectionsInclude("佐藤");

  console.log("結果:", result); // 結果: true
});

includesNonReferableSelection

紐づいているレコードに閲覧権限のないレコードが含まれているかどうかを判定します。

構文

includesNonReferableSelection();
引数

なし

返値

真偽値

例

esmJSPlugin.sheetSave("customer").onSheetItemsMounted((SheetSaveScreen) => {
  const relationalItem = SheetSaveScreen.getSheetItem(
    "customers.customer.type_suggest2"
  );

  console.log(
    "selections:",
    relationalItem.selections
      .getRows()
      .entries.map((selection) => selection.selectionId)
  ); // selections: [1,2,NaN,4,5]

  const result = relationItem.includesNonReferableSelection();

  console.log("結果:", result); // 結果: true
});

onSelectionAdded

紐づいているレコードが追加された後に呼び出されるeventHookを登録します。

構文

onSelectionAdded(callback);
onSelectionAdded(callback, group);
引数

callback

紐づいているレコードが追加されたタイミングで実行する関数です。

group

指定された値でeventHookをグルーピングします。
Listenable.unlistenGroupを利用して、ここで指定したgroupに属するeventHookを全て解除することができます。

返値

なし

例
esmJSPlugin.screen.sheetSave("schedule").onEntered(function (screen) {
  const relationalItem = SheetSaveScreen.getSheetItem(
    "customers.customer.type_suggest1"
  );

  const unlisten = relationalItem.onSelectionAdded(function () {
    console.log("SelectionAdded");
    unlisten(); // 解除
  });
});

onSelectionRemoved

紐づいているレコードが削除された後に呼び出されるeventHookを登録します。

構文

onSelectionRemoved(callback);
onSelectionRemoved(callback, group);
引数

callback

紐づいているレコードが削除されたタイミングで実行する関数です。

group

指定された値でeventHookをグルーピングします。
Listenable.unlistenGroupを利用して、ここで指定したgroupに属するeventHookを全て解除することができます。

返値

なし

例
esmJSPlugin.screen.sheetSave("schedule").onEntered(function (screen) {
  const relationalItem = SheetSaveScreen.getSheetItem(
    "customers.customer.type_suggest1"
  );

  const unlisten = relationalItem.onSelectionRemoved(function () {
    console.log("SelectionRemoved");
    unlisten(); // 解除
  });
});

onSelectionsUpdated

紐づいているレコードが更新された後に呼び出されるeventHookを登録します。

構文

onSelectionsUpdated(callback);
onSelectionsUpdated(callback, group);
引数

callback

紐づいているレコードが追加されたタイミングで実行する関数です。

group

指定された値でeventHookをグルーピングします。
Listenable.unlistenGroupを利用して、ここで指定したgroupに属するeventHookを全て解除することができます。

返値

なし

例
esmJSPlugin.screen.sheetSave("schedule").onEntered(function (screen) {
  const relationalItem = SheetSaveScreen.getSheetItem(
    "customers.customer.type_suggest1"
  );

  // entitiesが初期化されたタイミングで関数を実行
  const unlisten = relationalItem.onSelectionsUpdated(function () {
    console.log("SelectionsUpdated");
    unlisten(); // 解除
  });
});

onSelectionsResolved

紐づいているレコードのデータが解決された後に呼び出されるeventHookを登録します。

構文

onSelectionsResolved(callback);
onSelectionsResolved(callback, group);
引数

callback

紐づいているレコードが追加されたタイミングで実行する関数です。

group

指定された値でeventHookをグルーピングします。
Listenable.unlistenGroupを利用して、ここで指定したgroupに属するeventHookを全て解除することができます。

返値

なし

例
esmJSPlugin.screen.sheetSave("schedule").onEntered(function (screen) {
  const relationalItem = SheetSaveScreen.getSheetItem(
    "customers.customer.type_suggest1"
  );

  // entitiesが初期化されたタイミングで関数を実行
  const unlisten = relationalItem.onSelectionsResolved(function () {
    console.log("SelectionsResolved");
    unlisten(); // 解除
  });
});

getSelections

Selectionsクラスのインスタンスを返します。

構文

getSelections();
引数

なし

返値

Selectionsクラスのインスタンス

esmJSPlugin.sheetSave("schedule").onSheetItemsMounted((screen) => {
  const relationalItem = SheetSaveScreen.getSheetItem(
    "customers.customer.type_suggest1"
  );

  const selections = relationalItem.getSelections();

  console.log(selections);
});

getSelectionBy

指定した ID のSelectionクラスのインスタンスを返します。

構文

getSelectionBy(ID);
引数

ID

紐づいているレコードの ID を示す数値です。

返値

Selectionクラスのインスタンス

例

esmJSPlugin.sheetSave("schedule").onSheetItemsMounted((screen) => {
  const relationalItem = SheetSaveScreen.getSheetItem(
    "customers.customer.type_suggest1"
  );

  const Selection = relationalItem.getSelectionBy(1);

  console.log(Selection.entityId);
  // 1
});

getSelectionByIndex

指定した行のSelectionクラスのインスタンスを返します。

構文

getSelectionByIndex(index);
引数

index

紐づいているレコードが何行目かを示す数値です。

返値

Selectionクラスのインスタンス

例

esmJSPlugin.sheetSave("schedule").onSheetItemsMounted((screen) => {
  const relationalItem = SheetSaveScreen.getSheetItem(
    "customers.customer.type_suggest1"
  );

  const Selection = relationalItem.getSelectionByIndex(1);

  console.log(Selection.entityId);
  // 1
});

setSelectionsEmpty

紐づいているレコードを全て削除します。

構文

setSelectionsEmpty();
引数

なし

返値

なし

例
esmJSPlugin.sheetSave("schedule").onSheetItemsMounted((screen) => {
  const relationalItem = SheetSaveScreen.getSheetItem(
    "customers.customer.type_suggest1"
  );

  console.log(relationalItem.selectionLength);
  // 3

  relationalItem.setSelectionsEmpty();

  console.log(relationalItem.selectionLength);
  // 0
});

setSelectionAdded

entityId を指定して、紐づいているレコードを追加します。

構文

setSelectionAdded(entityId);
引数

entityId

紐づいているレコードの entityId を示す数値です。

返値

なし

例
esmJSPlugin.sheetSave("schedule").onSheetItemsMounted((screen) => {
  const relationalItem = SheetSaveScreen.getSheetItem(
    "customers.customer.type_suggest1"
  );

  console.log(relationalItem.selectionLength);
  // 3

  relationalItem.setSelectionAdded(1);

  console.log(relationalItem.selectionLength);
  // 4
});

setSelectionRemoved

指定した entityId の紐づいているレコードを削除します。

構文

setSelectionAdded(entityId);
引数

entityId

紐づいているレコードの entityId を示す数値です。

返値

なし

例
esmJSPlugin.sheetSave("schedule").onSheetItemsMounted((screen) => {
  const relationalItem = SheetSaveScreen.getSheetItem(
    "customers.customer.type_suggest1"
  );

  console.log(relationalItem.selectionLength);
  // 3

  relationalItem.setSelectionRemoved(1);

  console.log(relationalItem.selectionLength);
  // 2
});

setSelectionRemovedByIndex

指定した index の紐づいているレコードを削除します。

構文

setSelectionRemovedByIndex(index);
引数

index

何行目かの紐づいているレコードを示す数値です。

返値

なし

例
esmJSPlugin.sheetSave("schedule").onSheetItemsMounted((screen) => {
  const relationalItem = SheetSaveScreen.getSheetItem(
    "customers.customer.type_suggest1"
  );

  console.log(relationalItem.selectionLength);
  // 3

  relationalItem.setSelectionRemovedByIndex(1);

  console.log(relationalItem.selectionLength);
  // 2
});

selectionLengthEqualsTo

selectionLengthが指定した数値と等しいかどうかを判定します。

構文

selectionLengthEqualsTo(number);
引数

number
比較対象の数値です。

返値

真偽値

例

esmJSPlugin.sheetEntry("schedule").onEntered((SheetSaveScreen) => {
  const relationalItem = SheetSaveScreen.getSheetItem(
    "customers.customer.type_suggest1"
  );

  relationalItem.onUpdated(function () {
    // 値を確認
    console.log("値:", relationalItem.selectionLength); // 値: 7

    const result = relationalItem.selectionLengthEqualsTo(7);

    console.log("7と等しいか:", result); // 7と等しいかどうか: true
  });
});

selectionLengthIsGreaterThan

selectionLengthが指定した数値より大きいかどうかを判定します。

構文

selectionLengthIsGreaterThan(number);
引数

number
比較対象の数値です。

返値

真偽値

例

esmJSPlugin.sheetEntry("schedule").onEntered((SheetSaveScreen) => {
  const relationalItem = SheetSaveScreen.getSheetItem(
    "customers.customer.type_suggest1"
  );

  relationalItem.onUpdated(function () {
    // 値を確認
    console.log("値:", relationalItem.selectionLength); // 値: 7

    const result = relationalItem.selectionLengthIsGreaterThan(6);

    console.log("6より大きいか:", result); // 6より大きいか: true
  });
});

selectionLengthIsGreaterThanOrEqual

selectionLengthが指定した数値以上かどうかを判定します。

構文

selectionLengthIsGreaterThanOrEqual(number);
引数

number
比較対象の数値です。

返値

真偽値

例

esmJSPlugin.sheetEntry("schedule").onEntered((SheetSaveScreen) => {
  const relationalItem = SheetSaveScreen.getSheetItem(
    "customers.customer.type_suggest1"
  );

  relationalItem.onUpdated(function () {
    // 値を確認
    console.log("値:", relationalItem.selectionLength); // 値: 7

    const result = relationalItem.selectionLengthIsGreaterThanOrEqual(6);

    console.log("6以上か:", result); // 6以上か: true
  });
});

selectionLengthIsLessThan

selectionLengthが指定した数値より小さいかどうかを判定します。

構文

selectionLengthIsLessThan(number);
引数

number
比較対象の数値です。

返値

真偽値

例

esmJSPlugin.sheetEntry("schedule").onEntered((SheetSaveScreen) => {
  const relationalItem = SheetSaveScreen.getSheetItem(
    "customers.customer.type_suggest1"
  );

  relationalItem.onUpdated(function () {
    // 値を確認
    console.log("値:", relationalItem.selectionLength); // 値: 7

    const result = relationalItem.selectionLengthIsLessThan(10);

    console.log("10未満か:", result); // 10未満か: true
  });
});

selectionLengthIsLessThanOrEqual

selectionLengthが指定した数値以下かどうかを判定します。

構文

selectionLengthIsLessThanOrEqual(number);
引数

number
比較対象の数値です。

返値

真偽値

例

esmJSPlugin.sheetEntry("schedule").onEntered((SheetSaveScreen) => {
  const relationalItem = SheetSaveScreen.getSheetItem(
    "customers.customer.type_suggest1"
  );

  relationalItem.onUpdated(function () {
    // 値を確認
    console.log("値:", relationalItem.selectionLength); // 値: 7

    const result = relationalItem.selectionLengthIsLessThanOrEqual(8);

    console.log("8以下か:", result); // 8以下か: true
  });
});

関連情報

  • SheetItem
  • Selections
  • Selection