プロセス管理のステータスによる表示操作について

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

プロセス管理のステータスが「承認完了」になった時に、

フィールドコード:seikyuusyono

のフィールドを表示させたいのですが、どのようにすればよろしいでしょうか?

参考になるページでも結構ですのでお教えいただければ幸いです。

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

Yamamuraさん、こんにちは。プロジェクト・アスノートの松田です。

次のように整理したらいいと思います。

 

1.制御が必要なタイミング(イベント)

https://developer.cybozu.io/hc/ja/articles/360000361686

今回は、新規レコード追加画面、保存後の詳細画面、編集画面 等が必要かと思います。

 

2.フィールド表示/非表示の考え方

ステータスが承認完了になったときに表示させたい
→ ステータスが承認完了以外のときは、表示させない

表示・非表示の制御

https://developer.cybozu.io/hc/ja/articles/360015513211

 

3.その他

新規レコード作成画面の時点では、まだレコードオブジェクトにステータスはありませんので、
このタイミングでは、無条件で非表示させる

それ以外のタイミング(イベント)では、ステータスの条件を判定してフィールド非表示

条件分岐の基本: https://developer.cybozu.io/hc/ja/articles/115002366426

レコードオブジェクトの中のステータス: https://developer.cybozu.io/hc/ja/articles/202166330

 

Shotaro Matsudaさま

お礼が遅くなってしまい、申し訳ありません。

お教えいただいたURLを参考にこれから取り組んでみます。

また質問させていただくと思いますので、よろしくお願いいたします。

Shotaro Matsudaさま

1点質問よろしいでしょうか。

「レコードオブジェクトの中のステータス」がいまいち良く分かっておらず、お教えいただきたいです。

 

(function() {
“use strict”;
//レコードの追加、編集、詳細画面で適用する
var events = [‘app.record.detail.show’,
‘app.record.create.show’,
‘app.record.create.change.source’,
‘app.record.edit.show’,
‘app.record.edit.change.source’];

kintone.events.on(events, function(event) {

var record = event.record;

//ステータスに応じて見積書・請求書番号を表示する
if (record[‘STATUS’][‘value’] === ‘承認完了’) {
kintone.app.record.setFieldShown(‘seikyuusyono’, true);
}else {
//その他の場合は非表示
kintone.app.record.setFieldShown(‘seikyuusyono’, false);
}

});
})();

 

こんな感じで書いてみたのですが、

if (record[‘STATUS’][‘value’] === ‘承認完了’) 

の部分がどう記述していいか分からずアドバイスいただければと思います。

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

こんにちは。

ドキュメント(フィールド形式)にあるように、

“ステータス”: { “type”: “STATUS”, “value”: “未処理” }

フィールド名は「ステータス」ですね。(STATUSというのはフィールドの種別を表しています)

なので、record[‘ステータス’][‘value’] でいいと思います。

 

新規追加画面では、イベントで取ってきたデータにステータスがありませんので要注意です。

→ app.record.create については、書き分ける必要がありますね。(常に非表示)

Shotaro Matsudaさま

 

回答いただき、ありがとうございました。

こちらで考えていた動作が取れました。

 

(function() {
“use strict”;
//レコードの追加、編集、詳細画面で適用する
var events = [‘app.record.detail.show’,
‘app.record.create.change.source’,
‘app.record.edit.show’,
‘app.record.edit.change.source’];

kintone.events.on(events, function(event) {

var record = event.record;

//ステータスに応じて見積書・請求書番号を表示する
if (record[‘ステータス’][‘value’] === ‘承認完了’) {
kintone.app.record.setFieldShown(‘seikyuusyono’, true);
}else {
//その他の場合は非表示
kintone.app.record.setFieldShown(‘seikyuusyono’, false);
}

});
kintone.events.on(‘app.record.create.show’, function(event){
kintone.app.record.setFieldShown(‘seikyuusyono’, false);
});
})();

 

もう1点質問ですが、

レコード一覧もこのステータスでの表示を適応できるのでしょうか。

app.record.index.show も追加したのですが表示されたままになっています。

できなければ列ごと表示しないように設定する予定です。

何度も質問をしてしまい、申し訳ありません。

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

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