新規投稿
フォローする

dropdownでのグループ表示・非表示設定

はじめまして。

Kintone初心者ですが、Dropdownで設定した項目によって表示されるグループを設定したいと考えております。

実際に似たような記事で試しにscriptをいじってみましたが、選択箇所が複数選択部分であったため、この部分だけをドロップダウンに設定し動作できるようにしたいと考えております。

何卒よろしくお願いいたします。

下記設定中のスクリプト情報になります。

(function() {
'use strict';

var events1 = [
'app.record.create.show',
'app.record.create.change.multi',
'app.record.edit.show',
'app.record.edit.change.multi',
'app.record.detail.show',
];
kintone.events.on(events1, function(event) {
// 初期値としてフィールドを隠す
kintone.app.record.setFieldShown('kessan', false);
kintone.app.record.setFieldShown('getsuji', false);
kintone.app.record.setFieldShown('sonota_teishutsu', false);
kintone.app.record.setFieldShown('sonota', false);


// ドロップダウンフィールドの値を取得
var record = event.record['drop'].value;


// 複数選択することもあるので選択の数だけループさせる
record.forEach(function(ele) {
switch (ele) {
case '決算' :
kintone.app.record.setFieldShown('kessan', true);
break;
case '月次' :
kintone.app.record.setFieldShown('getsuji', true);
break;
case 'その他提出' :
kintone.app.record.setFieldShown('sonota_teishutsu', true);
break;
case 'その他' :
kintone.app.record.setFieldShown('sonota', true);
break;
}
});
});
})();

0

7件のコメント

Avatar
あさが

yanaさん、こんにちは。

一通り作られたように見えますが、今は何がお困りなのでしょうか?

もし希望通りに動いていないという事でしたら、以下の記事を参考に、処理がどこまで進んでいるかを調べてみるのが良いかと思います。

kintoneカスタマイズの基本的なデバッグの流れを身につけよう

 

0
Avatar
yana

あさが様
コメントありがとうございます。
ドロップダウンリストで項目を選択しても、表示させたいグループ情報が表示されない状況です。
何が悪いのか判断が難しいです。
参考情報ありがとうございます。
デバッグしてみます。

1
Avatar
あさが

もう少しコードを見てみました。

 

ドロップダウンフィールドのフィールドコードはdropでしょうか?

だとすると、イベントハンドラーに指定している、app.record.create.change.multiとapp.record.edit.change.multiでは動作しないと思われます。

(app.record.create.change.dropとapp.record.edit.change.dropにする必要がある)

 

あと、

record.forEach(function(ele) {

となっているのは複数選択を想定した処理だと思いますので、この処理も不要になりそうですね。

1
Avatar
yana

あさが様

ご連絡ありがとうございます。

ご指摘いただいた箇所を編集し、実行してみましたがまだ正常に動作はできませんでした。

デバックでは下記の太字箇所でエラーが表示されました。

この部分をどのように設定しなおせばよいのか、もしおわかりでしたらアドバイスいただきたいです。

 

(function() {
'use strict';

var events1 = [
'app.record.create.show',
'app.record.create.change.drop',
'app.record.edit.show',
'app.record.edit.change.drop',
'app.record.detail.show',
];
kintone.events.on(events1, function(event) {
// 初期値としてフィールドを隠す
kintone.app.record.setFieldShown('kessan', false);
kintone.app.record.setFieldShown('getsuji', false);
kintone.app.record.setFieldShown('sonota_teishutsu', false);
kintone.app.record.setFieldShown('sonota', false);


// 複数選択フィールドの値を取得
// var dropVal = event.record['drop'].value;

// ドロップダウンフィールドの値を取得
var record = event.record['drop'].value;


// 複数選択することもあるので選択の数だけループさせる
// record.forEach(function(ele) {


switch (drop) {
case '決算' :
kintone.app.record.setFieldShown('kessan', true);
break;
case '月次' :
kintone.app.record.setFieldShown('getsuji', true);
break;
case 'その他提出' :
kintone.app.record.setFieldShown('sonota_teishutsu', true);
break;
case 'その他' :
kintone.app.record.setFieldShown('sonota', true);
break;
}
// });
});
})();

0
Avatar
あさが

yanaさん、こんにちは。

 

恐らく以下のエラーがコンソールに表示されているのでは無いかと思います。(エラーメッセージを記載頂くと調べやすいと思います!)

drop is not defined

 

これはdropという変数がどこにも定義されてないですよ、というエラーなのですが、

ドロップダウンの値を入れている変数名はrecordなので、

switch (record) {

とすれば動作するのでは無いかと思います。

 

※変数の意味合いからすると、変数名をdropとした方が、コードの理解はしやすくなる気はしています。

1
Avatar
yana

あさが様

switch (drop) {

switch (record) { に変更して問題なく動作しました!

アドバイスいただきありがとうございました!

1
Avatar
あさが

良かったです!!

0
サインインしてコメントを残してください。