種類 | フィールド名 | フィールドコード |
---|---|---|
ルックアップ | ルックアップ | titlelookup |
文字列(1行) | タイトル名 | title |
テーブル | テーブル | lookuptable |
文字列(1行)(テーブル内) | 品名 | item |
数値(1行)(テーブル内) | 個数 | number |
単価(テーブル内) | 単価 | price |
ルックアップ元アプリ:テーブルを参照する方のアプリ
![](https://images.microcms-assets.io/assets/52137c02cafa4450bbdc092b64fbadac/162cf83cf41042bb9ab76a43907c6011/lookup2.png)
種類 | フィールド名 | フィールドコード |
---|---|---|
文字列(1行) | タイトル名 | title |
テーブル | テーブル | lookuptable |
文字列(1行)(テーブル内) | 品名 | item |
数値(1行)(テーブル内) | 個数 | number |
単価(テーブル内) | 単価 | price |
ルックアップの設定の次のようになります。
ルックアップする先はレコード番号になります。
![](https://images.microcms-assets.io/assets/52137c02cafa4450bbdc092b64fbadac/750f35f8d6ae4c4a9fed1c56e9fc8398/lookup.png)
コード
// レコード作成画面と編集画面で、'title'フィールドが変更されたときにトリガーされる
kintone.events.on(
[
"app.record.create.change.title",
"app.record.edit.change.title",
],
(event) => {
// レコードからルックアップフィールドの値を取得
const rId = event.record.titlelookup.value;
if (!rId) { // ルックアップフィールドが空(クリアされた時)の処理
event.record.lookuptable.value = [];
} else { // ルックアップフィールドに値がある時の処理
// 関連するテーブルデータを取得する関数を呼び出す
getTable(kintone.app.getLookupTargetAppId("titlelookup"), rId);
}
// イベントオブジェクトを返す
return event;
}
);
// テーブルデータを取得する非同期関数
const getTable = async (appId, rId) => {
// Kintone REST APIクライアントをインスタンス化
const client = new KintoneRestAPIClient();
// 非同期でレコードデータを取得
const res = await client.record.getRecord({
app: appId,
id: rId,
});
// 取得したレコードデータのテーブルフィールドを、現在のレコードのテーブルフィールドにセット
const obj = kintone.app.record.get();
obj.record.lookuptable.value = res.record.lookuptable.value;
kintone.app.record.set(obj);
};
今回はkintone REST APIを利用しているので、次のJavaScriptファイルを指定しています。
https://unpkg.com/@kintone/rest-api-client@latest/umd/KintoneRestAPIClient.min.js
![](https://images.microcms-assets.io/assets/52137c02cafa4450bbdc092b64fbadac/bcc328497568482ca95f2d45ff3c81ad/lookup3.png)
以下のような動作をします。
ルックアップ元アプリにテーブルとして次のような内容を登録しました。
![](https://images.microcms-assets.io/assets/52137c02cafa4450bbdc092b64fbadac/48d6b601773b4a3e947be904b2ef3ce5/lookup4.png)
ルックアップ元アプリで対象のレコードを選択
![](https://images.microcms-assets.io/assets/52137c02cafa4450bbdc092b64fbadac/1c5c56ab3f6c46dc89581c0aa79d4659/lookup5.png)
ルックアップ先アプリでテーブルがコピーされました。
![](https://images.microcms-assets.io/assets/52137c02cafa4450bbdc092b64fbadac/04cf96bc033e413a9336bed4a75f0150/lookup6.png)
DevpediaCode編集部
DevpediaCodeはWeb、AI、Iot、ローコードなどプログラムに関する最新ITテーマの情報を発信するメディアです。
お問合せ下記のURLからお願いします。
https://devpediacode.com/contact