お世話になります。
初めて質問をさせて頂きます。
現在、Aアプリに関連レコード一覧を設置し、
「日付」と「作成者」をキーとしてBアプリの内容を表示したいと考えています。
関連レコード一覧は“表示するレコードの条件”を1つしか設定できないので、
AアプリとBアプリの双方に「日付&作成者」の計算コントロールを設置し、
キー条件としています。
この方法ですと、Aアプリ詳細画面にて「日付」を変更したタイミングで関連レコード一覧が更新されません。(保存を行うことで更新されます)
更新を行う方法が何かありましたら、ご教授願います。
よろしくお願いします。
“表示するレコードの条件”項目からフォーカスが外れることで、
関連レコード一覧の更新が行われることは確認しました。
①「日付&作成者」項目を文字列とし、JavaScriptで計算を行う。
②「日付」の変更イベントでフォーカス移動処理を行う。
という手順で実装できないかとも考えましたが、②が実現できていない状況です。
Legacy_Account1395
(cybozu.com Development team(Legacy Account))
2
Mas 様
DOM操作を使用するためおすすめではありませんが、
changeイベントでfocus()、setTimeoutで一定時間後に
blur()する方法ではいかがでしょうか?
簡単にサンプルを作りましたのでよろしければご参考にしてください。
(function() {
'use strict';
var el;
kintone.events.on('app.record.edit.change.rank', function(event) {
var rec = event.record;
var str = rec.name.value + rec.rank.value;
rec.cname.value = str;
el = document.getElementsByTagName('input');
el[1].focus();
setTimeout(function() {
el[1].blur();
}, 500);
return event;
});
})();
こんにちは。
②ができたらうまくいきそうとの事ですのでそちらについて微力ながらコメントさせて頂きます。
②のフォーカスを外す処理ですが、以下のような形ではどうでしょうか。
<pre>
var date = kintone.app.record.getFieldElement(‘日付’);
date.blur();
</pre>
これで外れなかったら、ちょっとムリヤリですがbodyにフォーカスを当てちゃうとか。
<pre>
var body = document.getElementsByTagName(“name”);
body[0].focus();
</pre>
お試しください。
>Sada Nishio様
サンプルコードまで提示して頂き、ありがとうございます。
この方法で実現することが出来ました!
inputタグ項目の配列取得で項目指定が出来るのですね。
ありがとうございました。
>カキ氷様
コメントいただき、ありがとうございます。
bodyにフォーカスを当てる方法も試してみたいと思います。
なお、getFieldElementですが、現在はレコード詳細画面でのみ使用できるようです(レコード編集画面では使用できない)。ご確認下さい。
https://cybozudev.zendesk.com/hc/ja/articles/201942014-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E8%A9%B3%E7%B4%B0%E6%83%85%E5%A0%B1%E5%8F%96%E5%BE%97#step3
以前、この点を見落とし、1時間ほどハマったことがありました…