# 【フォームブリッジ】kViewerルックアップの選択肢を必要なものだけに制限する方法

**URL:** https://community.cybozu.dev/t/topic/2836
**Category:** kintone 開発相談
**Created:** [2018 年 1 月 31 日午前 9:32 UTC](https://community.cybozu.dev/t/topic/2836 "2018-01-31T09:32:46Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![Legacy\_Account612](https://avatars.discourse-cdn.com/v4/letter/l/45deac/32.png) [@Legacy\_Account612](https://community.cybozu.dev/u/Legacy_Account612)
#### Post date: [2018 年 1 月 31 日午前 9:32 UTC](https://community.cybozu.dev/t/topic/2836/1 "2018-01-31T09:32:46Z")

</div>

お世話になっております。

フォームブリッジに関する質問です。

簡易認証とMyページなどを使っています。

kViewerルックアップの選択肢をログインしたユーザーの関連するレコードだけに制限する方法を教えていただけますでしょうか。

以上、よろしくお願いします。

---

<div class="post-metadata">

### Author: ![Legacy\_Account616](https://avatars.discourse-cdn.com/v4/letter/l/b5e925/32.png) [@Legacy\_Account616](https://community.cybozu.dev/u/Legacy_Account616)
#### Post date: [2018 年 2 月 1 日午前 12:24 UTC](https://community.cybozu.dev/t/topic/2836/2 "2018-02-01T00:24:54Z")

</div>

nishiさん

&nbsp;

簡易認証したユーザーの名前とユーザー名はGlobal変数のformUserに格納されています。

また、kViewerルックアップの選択肢は該当フィールドのkviewerRecordsに配列で格納されています。

フィールドは、state.fieldsにあるので、欲しいフィールドを指定してください。

サンプルとしては以下のようにすると選択肢を制限することができます。

&nbsp;

&nbsp;

```
(function () {
'use strict'

fb.events.form.created = [function (state) {
state.fields[0].kviewerRecords = state.fields[0].kviewerRecords.filter(function (r) {
switch (formUser.username) {
case 'ochiai':
return r.username.value === 'aaa'
}
})
return state
}]
})()

```

&nbsp;

以上、参考になりますでしょうか？

&nbsp;

---

<div class="post-metadata">

### Author: ![Legacy\_Account612](https://avatars.discourse-cdn.com/v4/letter/l/45deac/32.png) [@Legacy\_Account612](https://community.cybozu.dev/u/Legacy_Account612)
#### Post date: [2018 年 2 月 1 日午前 2:53 UTC](https://community.cybozu.dev/t/topic/2836/3 "2018-02-01T02:53:53Z")

</div>

落合さん

ご返答ありがとうございます。

\>簡易認証したユーザーの名前とユーザー名はGlobal変数のformUserに格納されています。

ありがとうございます。確認できました。

\>また、kViewerルックアップの選択肢は該当フィールドのkviewerRecordsに配列で格納されています。

ありがとうございます。確認できました。

&nbsp;

実行するとフィルタが素通りされてしましました。指定する内容が違うのでしょうか。

ご指導いただければ幸いです。

state.fields→[12]に指定したい名前が入っているフィールド 表示したい名前：西

formUser.username→"nishi"

↓実行したスクリプトです。コンソールにSTRATは表示されていますが、switchは表示されていません。

(function () {  
‘use strict’

fb.events.form.created = [function (state) {

console.log(formUser);  
console.log(state.fields);  
console.log(“STRAT”);

state.fields[12].kviewerRecords = state.fields[12].kviewerRecords.filter(function (r) {

console.log(“switch”);  
switch (formUser.username) {  
case ‘nishi’:  
return r.username.value === ‘西’  
}  
})  
return state;  
}];  
})();

以上です。お手数ですがよろしくお願い致します。

---

<div class="post-metadata">

### Author: ![Legacy\_Account616](https://avatars.discourse-cdn.com/v4/letter/l/b5e925/32.png) [@Legacy\_Account616](https://community.cybozu.dev/u/Legacy_Account616)
#### Post date: [2018 年 2 月 1 日午前 3:08 UTC](https://community.cybozu.dev/t/topic/2836/4 "2018-02-01T03:08:33Z")

</div>

nishiさん

&nbsp;

&nbsp;

おそらく、kviewerRecordsが空の配列ではないでしょうか？

console.log(state.fields[12].kviewerRecords);

を試してみると良いかと思います。

&nbsp;

以上、参考になりますでしょうか？

---

<div class="post-metadata">

### Author: ![Legacy\_Account612](https://avatars.discourse-cdn.com/v4/letter/l/45deac/32.png) [@Legacy\_Account612](https://community.cybozu.dev/u/Legacy_Account612)
#### Post date: [2018 年 2 月 1 日午前 4:57 UTC](https://community.cybozu.dev/t/topic/2836/5 "2018-02-01T04:57:22Z")

</div>

落合さん

&nbsp;

ありがとうございます。対応できました。

情報の持ち方を勘違いしておりました。

state.fields[1].kviewerRecordsにｋViewerルックアップのデータがいましたので

フィルターに指定することができました。

ありがとうございます。大変助かりました。

---

<div class="post-metadata">

### Author: ![Legacy\_Account612](https://avatars.discourse-cdn.com/v4/letter/l/45deac/32.png) [@Legacy\_Account612](https://community.cybozu.dev/u/Legacy_Account612)
#### Post date: [2018 年 10 月 18 日午前 2:25 UTC](https://community.cybozu.dev/t/topic/2836/6 "2018-10-18T02:25:06Z")

</div>

大変お世話になっております。

前回の回答で稼働していたＪＳがエラーになりました。

【エラー内容】

state.fields[0].kviewerRecordsが「undefined」になり

state.fields[0].kviewerRecords.filterを使用するとエラーになります。

&nbsp;

&nbsp;

今回のバージョンアップで大きく仕様が変更されていますが、同じコードで対応可能でしょうか

変更が必要であれば教えてください

&nbsp;

仕様変更により下記を行っています

・Viewerは「外部公開API」へ変更

・KVIEWER\_LOOKUPも「選択肢となるレコードのAPIビュー」を指定して作成。

---

<div class="post-metadata">

### Author: ![Legacy\_Account616](https://avatars.discourse-cdn.com/v4/letter/l/b5e925/32.png) [@Legacy\_Account616](https://community.cybozu.dev/u/Legacy_Account616)
#### Post date: [2018 年 10 月 18 日午前 2:54 UTC](https://community.cybozu.dev/t/topic/2836/7 "2018-10-18T02:54:48Z")

</div>

kViewerルックアップに以下の設定を行ってください。

- フィールドコードを ` __authenticationUsername__ ` にする

- 検索対象となるフィールドにユーザー名が対応するフィールドを選択

- 「完全に一致したレコードのみを検索する」を有効にする

&nbsp;

これにより、kViewerルックアップのデフォルト値が簡易認証でログインしたユーザー名になります。

ただこの設定だと、検索ワードを変更できてしまうので、編集不可のJSカスタマイズを行う必要があります。

&nbsp;

`fields[12].editable = false`

&nbsp;

という感じですね。

以上、参考になりますでしょうか？

---

<div class="post-metadata">

### Author: ![Legacy\_Account612](https://avatars.discourse-cdn.com/v4/letter/l/45deac/32.png) [@Legacy\_Account612](https://community.cybozu.dev/u/Legacy_Account612)
#### Post date: [2018 年 10 月 18 日午前 4:06 UTC](https://community.cybozu.dev/t/topic/2836/8 "2018-10-18T04:06:24Z")

</div>

落合さん

&nbsp;

ありがとうございます。対応できました。

&nbsp;

大変助かりました。今後ともよろしくお願いいたします。

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/flex015/uploads/cybozu/original/1X/d5c841c3c5a6cb66eed514001c1b45147c9e1f4f.png) [@system](https://community.cybozu.dev/u/system)
#### Post date: [2025 年 8 月 26 日午前 2:03 UTC](https://community.cybozu.dev/t/topic/2836/9 "2025-08-26T02:03:41Z")

</div>

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。
