レコード追加画面で、他のレコードの編集を行いたいと考えています。
スペースフィールドを使用して、アプリ内のレコードをテーブルで表示し、
編集したい項目にはテキストボックスを置いています。
追加画面の保存ボタンを押下した際に、該当レコードの値をテキストボックスの
入力値に変更したいと考えているのですが可能でしょうか。
また、他のフィールドで入力、選択された値によって、
表示するテーブルの行を絞り込みたいと考えています。
絞り込みは、「レコード追加画面のフィールド値変更イベント」を使おうと思っています。
その際に、絞り込んだ後も絞り込む前の入力値を保持し、保存ボタン押下時には
絞り込む前の入力値も送信される様にしたいです。
これらが可能かどうか、また、可能であればその方法をご教授頂きたいです。
宜しくお願い致します。
higuchi様
cstapの落合です。
やりたいと思われていることは、標準的なAPIの使い方で実現可能です。
>追加画面の保存ボタンを押下した際に、該当レコードの値をテキストボックスの入力値に変更したいと考えているのですが可能でしょうか。
submitイベントでkintone.apiにより一括登録(編集)することができます。
https://cybozudev.zendesk.com/hc/ja/articles/201941984#step2
https://cybozudev.zendesk.com/hc/ja/articles/202166310-kintone#step1
https://cybozudev.zendesk.com/hc/ja/articles/202166160#step2
>その際に、絞り込んだ後も絞り込む前の入力値を保持し、保存ボタン押下時には絞り込む前の入力値も送信される様にしたいです。
表示する可能性のあるレコードは、レコード追加画面の表示イベントで全て取得しておき、必要なレコードのみを表示するようにしてはどうでしょう?
https://cybozudev.zendesk.com/hc/ja/articles/201941984#step1
https://cybozudev.zendesk.com/hc/ja/articles/202166310-kintone#step1
https://cybozudev.zendesk.com/hc/ja/articles/202331474#step2
以上、参考になりますでしょうか?
落合様
ご回答ありがとうございました。
入力値の保持・登録に関して、標準のAPIで実現出来そうです。
大変参考になりました。
レコードの一括更新関してなのですが、
以下のように記述したのですが更新が出来ませんでした。
kintone.events.on('app.record.create.submit', function (event) {
var insert = new Array ();
for(var i = 0; records.length > i; i++){
insert.push('{id:'+records[i]["レコード番号"]["value"]+',record : {数量1 : {value : "'+records[i]["数量1"]["value"]+'"}}}');
}
kintone.api('/k/v1/records', 'PUT', {app :36,records : insert}, function(resp) {
alert("更新しました。");
});
});
初歩的なミスをしているのだと思うのですが、
間違っている部分をご教授頂けないでしょうか。
また、レコード追加画面で保存ボタンを押した時には、
入力値の更新だけを行いたく、レコードの追加は行いたくないのですが、
こちらに関しても良い方法が有りましたら、ご教授頂きたいです。
初歩的な質問ばかりで申し訳有りません。
宜しくお願い致します。
>入力値の更新だけを行いたく、レコードの追加は行いたくない
これは、「レコードの登録はせずに、テーブルで編集できるようにしている他のレコードの更新のみを行いたい」という認識でよろしいでしょうか?
kintoneのsubmitイベントには、登録をキャンセルする機能がありません。
そのため、上記の場合でしたらsubmitイベントを利用するのは適切ではないかと思います。
メニューの右側の空白部分に、onclickイベントで他のレコードの更新を行う「更新用のボタン」を設置する方法も可能です。
参考になるページは以下になります。
https://cybozudev.zendesk.com/hc/ja/articles/201942014#step5
https://cybozudev.zendesk.com/hc/ja/articles/201941984#step1
https://cybozudev.zendesk.com/hc/ja/articles/201952870
プログラムでは、recordsとinsertの値にしようとしているようなので
kintone.api(‘/k/v1/records’, ‘PUT’, {app: 36, records: records}, function(resp) {
alert(“更新しました。”);
});
でもよいのではないでしょうか?
ちなみにrecords変数は、グローバル変数として定義されているという認識でよろしいでしょうか?
落合様
ご回答ありがとうございました。
Submitイベントではなく、ボタンを作成し、クリック時のイベントで
入力値の登録を行おうと思います。
一括更新に関して、落合様のご回答のようにrecordsをそのまま使用してみたのですが、
やはり上手くいきませんでした。
recordsはグローバルで定義しています。
試しに、insertの中身をそのままパラメータとして記述した所、更新がされました。
何処か間違っている点が有りましたら、ご指摘頂きたいです。
度々すみません。宜しくお願い致します。
度々すみません。
レコードの一括更新の件は解決する事が出来ました。
お手数をお掛け致しました。
ありがとうございました。