テーブル内に配置した日付選択の初期値をJavaScriptでカスタマイズする方法

背景・実現したいこと

 テーブル内に配置した日付選択について、新規作成時やレコード再利用時に、初期設定として申請日の翌月日付を表示させたいのですが、どこかが間違っているようでコード全体が動きません。(それぞれのフィールドコードが正しいことは確認できています。)お手数ですが、ご教授頂けますでしょうか。プログラミングド素人のため、説明が分かりにくい場合はご連絡頂ければと思います。

利用したソースコード

(function() {
“use strict”;
//PC版

//レコードの追加で適用する
var events = [‘app.record.create.show’];

kintone.events.on(events, function(event) {

var record = event.record;

// データ追加時時に申請日と支払期日に当日日付を入れる。
// レコードが再利用された時を考慮し、初期設定では無く本プログラムで
// 日付をセットする

//申請日には、フォームを追加もしくは再利用した当日日付を入れる
var dt = new Date();
dt = moment(dt).format(‘YYYY-MM-DD’);
record[‘SHINSEIBI’].value = dt;

//支払期日には月末日を入れる
//var dt = new Date();
//dt = moment(dt).endOf(‘month’).format(‘YYYY-MM-DD’);

//2020.7.27 支払期日のデフォルトを当月末日とする
dt = moment(dt).add(‘months’,0).endOf(‘month’).format(‘YYYY-MM-DD’);

record[‘KIJITSU’].value = dt;

//恐らく以下の2行が正しくないと思われます。
dt = moment(dt).add(‘months’,1).firstOf(‘month’).format(‘YYYY-MM-DD’);

tableRecords[‘SHUTOKU’].value = dt;

//2020.7.27 レコード追加(再利用時)に経理財務使用欄を初期化する
record[‘KEIRITANTO’].value = [];
record[‘KEIRISTATSU’].value = “”;
record[‘KEIRISHIHARAISTATUS’].value = “”;
record[‘KEIRIPAYDAY’].value = “”;
record[‘KEIRICOMMENT’].value = “”;
record[‘KEIRISHIHARAISAKIMEI’].value = “”;
record[‘KEIRI_SHIHARAI_CHECK’].value = “”;

return event;

});

})();

ドキュメントにてテーブルの「登録・更新時のリクエストデータ」について改めて確認されるとよいかと思います。

https://developer.cybozu.io/hc/ja/articles/202166330

 

テーブルのフィールドコードを仮に「subtable」として19行目は

record['subtable'].value[0].value['SHINSEIBI'].value = dt

このような形になると思います。

 

ブラウザの開発者ツールを使用し、デバッグしてeventの中身など確認しながら進めていただくと、

より理解が深まるかと思います。

https://developer.cybozu.io/hc/ja/articles/360038920252-kintone%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA%E3%81%AE%E5%9F%BA%E6%9C%AC%E7%9A%84%E3%81%AA%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%E3%81%AE%E6%B5%81%E3%82%8C%E3%82%92%E8%BA%AB%E3%81%AB%E3%81%A4%E3%81%91%E3%82%88%E3%81%86

 

以上ご参考になれば幸いです。

373750444551 さま

ご回答ならびにアドバイスいただきまして誠にありがとうございます。

色々トライしてみましたが、私が入力方法を間違っているからか動かないこともあり、再度説明も含めて質問させていただきます。m(__)m

【やりたいこと】

  • レコード追加画面、レコード再利用画面で「申請日」フィールド(フィールドタイプ: 日付)に入力されている値を利用して、
    「取得日」フィールド(フィールドタイプ: 日付)に翌月の月初の日付をセットしたい。例えば、申請日が2020/12/1だった場合、取得日は2021/1/1がデフォルトで表示されるようにしたいです。
  • 「取得日」フィールドはテーブルの中に入っているフィールドです。テーブルのフィールドコードは「SHUTOKU」です。
  • (テーブルのフィールドコードは「TABLE」となっております。)

その上で、上記に記載していますコードで、以下の部分が無い場合は、エラー無く動いているため、こちらに間違いがあることは間違いないと思っています。

dt = moment(dt).add(‘months’,1).firstOf(‘month’).format(‘YYYY-MM-DD’);

tableRecords[‘SHUTOKU’].value = dt;

お手数をおかけしますが、どうぞよろしくお願いいたします。

tableRecords

こちらの変数はどこで定義されていますか?

いただいた情報からすると、正しくは下記のようになるかと思います。

record[‘TABLE’].value[0].value[‘SHUTOKU’].value = dt

 

また、エラー文を教えていただけるとより回答がしやすいです。

以上宜しくお願いいたします。

373750444551 さま

早速ご回答頂きありがとうございました。

記載いただいた通りに入力したところ、想定通り動くことを確認できました。大変感謝しております。

また、今後コミュニティに投稿することがありましたら、エラー文も一緒に添付して、回答される方が分かりやすいように心がけます。

よろしくお願いいたします。