お世話になっております。
ステータスフィールドに「キャンセル」の文字が含まれる場合に
文字フィールド(報告)を表示・非表示を切替させたいと思います。
str.match(/文字列/)を利用しようとしたのですがうまくいきませんでした。
ご教授いただけますでしょうか?よろしくお願いいたします。
kintone.events.on(eventsSubmit, function(e) {
varrecord=e.record;
if (ステータス.match(/キャンセル/)) {
kintone.app.record.setFieldShown(‘報告’,true);
}else{
kintone.app.record.setFieldShown(‘報告’,false);
青山昌司様
こちらはデバックをお試しいただきましたか?
動かない?そんな時はデバッグをしてみよう!入門編
javascriptを使用するのであれば上記を一度ご確認頂ければと思います。
私の方で試してはおりませんが、ソースを見る限りいくつか問題がありそうです。
1、いつ表示/非表示をしたいのか?
1行目の「kintone.events.on(eventsSubmit, function(e) {」の部分ですが、
「eventsSubmit」は変更するタイミングを指定していますが、宣言されていますか?
こちらも参考にして下さい。回答の条件によってグループフィールドの開閉を切り替える
2、ステータスの値が取得できていない
3行目の「if (ステータス.match(/キャンセル/)) {」の部分ですが、
「ステータス」では値が取れないと思います。
正しくは「record[‘ステータス’][’value’]」などではないでしょうか。
一部の情報しか記載がありませんでしたので、現状ではこれくらいしかお答えできませんが、
上記をご参考に修正して頂ければと思います。
erikaさま
お世話になっております。
ご連絡いただきありがとうございます。
下記のように編集してみました。
kintone.events.on([‘app.record.detail.show’,‘app.record.create.show’,‘app.record.edit.show’], function(event) {
varrecord=event.record;
if (record[‘ステータス’][‘value’]like"キャンセル" ) {
kintone.app.record.setFieldShown(‘報告’,true);
}else{
kintone.app.record.setFieldShown(‘報告’,false);
「like」ではうまく動かないようです。
「===」であればキャンセルと完全一致になってしまいますが正しく動きました。
「キャンセル」というキーワードを拾うことはできませんでしょうか?
よろしくお願いいたします。
青山昌司様
キャンセルで非表示にしたいのですよね?
ifの内容が"ステータスがキャンセルだったら処理を行う"
elseの内容が"ステータスがキャンセルでなかったら処理を行う"
ですので、true,falseが逆です。true=表示、false=非表示です。
完全一致がダメな理由は存じ上げませんが、あいまい検索でも可能です。
下記に私が作成して動作したものを詳しくコメントも載せさせて頂きましたので、
丸コピせず、内容を理解してからご使用下さい。
erikaさま
お世話になっております。
詳細にご指摘・解説ありがとうございます。
で動くことを確認いたしました。
表示に関しては「キャンセル」を含む場合表示で正しいので変更せず利用しました。
ありがとうございました。