お世話になっております。
交通費・通勤費精算アプリを作成しております。
現在、申請区分が「事前申請」か「事後申請」かで、フィールドコード[請求書or領収書添付]にファイルが添付されているかどうかのチェックを実施したいと考えております。
新規レコード追加画面において、申請区分が「事後申請」の場合、[請求書or領収書添付]にファイル添付は必須となります。
ファイル名をDOMで取得して、0の場合にエラーメッセージを表示させたいのですが、エラーメッセージがうまく表示されませんので、下記ソースで間違っている部分をご指摘いただけますでしょうか。
(function() {
"use strict";
kintone.events.on([
"app.record.create.submit"
], function(event) {
var record = event.record;
// 添付ファイルのファイル名を取得
var count = document.getElementsByClassName('plupload_file_name').length;
// 申請区分が事後申請の場合
if(record.申請区分.value == '事後申請'){
// ファイル無し=配列数0の場合は添付ファイルフィールドにエラー表示
if (count == 0) {
record[請求書or領収書添付].error = '添付ファイルを登録してください';
}
}
return event;
});
})();
if文が通っていることは確認できたので、record[請求書or領収書添付].error = '添付ファイルを登録してください';の部分が悪いのではないかと思うのですが、過去の投稿を読むなどしてみて書き換えてもうまくいきません。ご教授ください。
また、申請区分が「事前申請」の場合、ステータスが「精算まち」の際にレコード詳細画面で「精算完了」のボタンを押そうとすると添付ファイルが存在するかチェックを実施して、なければエラーメッセージが表示されるというものも作成したいのですが、そちらは可能でしょうか?
もし可能であれば、イベント発火時の書き方をお教えいただけますと幸いです。(別で投稿したほうがよろしければ、そちらもご指摘願います。すみません。)
4件のコメント
YYMA さま
count == "0"
上記の""の追加と
};
};
の;を追加すれば動くと思います。ご確認下さい。
(function() {
"use strict";
kintone.events.on([
"app.record.create.submit"
], function(event) {
var record = event.record;
// 添付ファイルのファイル名を取得
var count = document.getElementsByClassName('plupload_file_name').length;
// 申請区分が事後申請の場合
if(record.申請区分.value == '事後申請'){
// ファイル無し=配列数0の場合は添付ファイルフィールドにエラー表示
if (count == "0") {
record[請求書or領収書添付].error = '添付ファイルを登録してください';
};
};
return event;
});
})();
申請区分が「事前申請」の場合、ステータスが「精算まち」、、、
のステータスの意味が多分ワークフローのようなものを動かすときのものだと思いますか゛、当方初心者のため扱ったことがなくわかりません。また、"「精算完了」のボタン"は詳細画面にカスタマイズしたボタンを設置したものと理解しますが、カスタマイズをクリックしたときのイベントは確か? 何かやり方があったと思いますかすが、また、調べてみます。
イベント発火時の書き方ですが、ボタンクリック時のイベント?は、
自作イベントの中で、画面情報を取得したい – cybozu developer network
に参考情報があります。以前見たのですが、結局うまくいかずあきらめました。素人かんがえだと上記とif文でできると思いますが、もっとスマートな方法があると思います。新規で投稿すれば専門家からアドバイスがあると思います。
ボタンを押したらテーブルのルックアップが更新されるようにしたい – cybozu developer network
https://developer.cybozu.io/hc/ja/community/posts/10941797508505
を参考にすればできそうですね。
Whiteさま
ご回答ありがとうございます。反応が大変遅くなり申し訳ございません。
いただいた情報をもとに修正し、無事想定通り動くようになりました。ありがとうございます。
今後チェックを怠らないようにいたします。大変失礼いたしました。