テーブル内にある日付フィールドのうち、Max日付を「直近訪問日」フィールドに表示したいです。
空欄の場合もありますので、空欄の場合は除外した中でMax日付、すべて空欄の場合は「直近訪問日フィールド」も空欄にしたいです。
教えてください!
テーブル内にある日付フィールドのうち、Max日付を「直近訪問日」フィールドに表示したいです。
空欄の場合もありますので、空欄の場合は除外した中でMax日付、すべて空欄の場合は「直近訪問日フィールド」も空欄にしたいです。
教えてください!
テーブル内をfor文にしてループさせ、日付の値を比較してはどうでしょうか。
日付が空欄でなかったら、前日付と比較、今回のほうが値が大きければ変数latest_visitに代入といった感じです。
(function () {
"use strict";
kintone.events.on(['app.record.edit.submit', 'app.record.create.submit'], function (event) {
var record = event.record;
var table_date = null;
var latest_visit = null;
var Table = record.Table.value
for (var i = 0; i < Table.length; i++) {
if (Table[i].value.日付.value != null) {
table_date = Table[i].value.日付.value;
if (latest_visit == null) {
latest_visit = table_date;
} else {
if (latest_visit < table_date) {
latest_visit = table_date;
}
}
}
}
record.直近訪問日.value = latest_visit;
return event;
})
})();
ご回答ありがとうございます。
そのままアプリのjavascriptに適用してみましたが、直近訪問日に何も表示されませんでした・・・。
エラーも何も出ないのですが、どこかに問題ありそうでしょうか?
・編集保存の時に動くスクリプトですが、編集保存されましたか?
・各フィールドコードはあっていますか?
この辺りが大丈夫なら動くと思うのですが、ご確認いただけますか?
>・編集保存の時に動くスクリプトですが、編集保存されましたか?
はい、保存まで行いました。
>・各フィールドコードはあっていますか?
はい、3つともフィールドコードは修正してあります。
ちなみに、直近訪問日はTableの中の項目ではありません。(Table外に設けた日付型の項目)
それは問題ないでしょうか?
Table[i].value.日付.valueが機能していないような気がしています。
2件ほどTableの日付を登録して
alert(Table[0].value.日付.value);
でアラート画面を出そうとすると、アラート画面が表示されません。
ちなみに、アラート中身を下記に変更すると表示されます。
alert(“hello”);
となると、問題はこの変数かと思いますが、いかがでしょうか?
foopii様
ご連絡遅くなりまして申し訳ありません。
ちなみに私の環境では上記JSで動くのですよ。このような感じなのですが、違うところ思い当たりますか?
あとはChromeの開発者ツールでデバッグして、うまく行かないところを調査するのはどうでしょうか。
Aiko Yamamoto様
ご連絡ありがとうございます。
chromeのディベロッパーツールでjsを開こうと思いましたが、何も選択できない状況です。
kintoneの設定画面では確かにjsは登録されておりますが、うまく動作しないことに何か関係はありますでしょうか?
foopi様
本当ですね、JSが出てこないですね。
レコードの編集中に、ディベロッパーツールを開いても出てこないのはおかしいですね。ということはJS自体が読み込めてないのかな。。
ちなみに、alert(“hello”)のスクリプトを書いたとの事でしたが、その時はJS見えるのでしょうか。
他に思いつく事と言えば、設定画面でJSを登録した後アプリの更新ボタンの押し忘れぐらいでしょうか。(私、時々やるミスなので)
他にもJSの読み込みでご苦労されている投稿もありました。
このような事態に陥ったことが無く、内容のあるヘルプができず申し訳ありません。
Aiko Yamamoto様
何度もありがとうございます。
>ちなみに、alert(“hello”)のスクリプトを書いたとの事でしたが、その時はJS見えるのでしょうか。
こちらの時はjsは見えています。
こちらは、cybozuに問い合わせた方が良いですか?
いただいた投稿をみましても、最終的には「問い合わせ」をしているようでしたので。
アプリ設定画面の青いボタン(アプリを更新)の押し忘れは無いですか?
設定画面を開いてボタンが青くなっていたら、未更新の設定があるという意味です。
おかしいですね。
あとは、
ぐらいですかね。確認されましたでしょうか?
ありがとうございます。
>文字コードがUTF-8(BOMなし)になっているか
文字コードがSJISになっていまして、修正したらできました!
※ただ、実行できた、alert(“hello”)のjsファイルもSJISでした…なぜ実行できたのか・・・
ひとまず期待通りの結果が得られました!
Aiko Yamamoto様、Shotaro Matsuda様
ありがとうございました!
やはり!笑
うまくいったようで何よりです。
特に試行錯誤する開発の時は、ファイルアップロードではなく、JSEditを使うのが、安心かつ間違いが少ないと思いますよ。
ちなみに、うまくいってたのは、たまたま文字コードによって影響を受けない文字だけだったのかもですね。
このJSをKREWSHEET上で、再現したい場合のコードはどのようになりますでしょうか。
御教授頂けますと幸いです。