スペースフィールドのボタン表示・非表示について

(function() {
“use strict”;

// mobile.app.record.create.showとmobile.app.record.edit.showイベントに対するハンドラを設定
kintone.events.on(
[“mobile.app.record.create.show”, “mobile.app.record.edit.show”],
function(event) {
// 任意のスペースフィールドにボタンを設置
var mySpaceFieldButton = document.createElement(“button”);
mySpaceFieldButton.id = “my_space_field_button”;
mySpaceFieldButton.innerHTML = “作業開始”;
mySpaceFieldButton.style.width = “80px”;
mySpaceFieldButton.style.height = “50px”;
mySpaceFieldButton.onclick = function() {
var tableFieldCode = “作業実績_0”; // 作業実績のテーブルフィールドコード
var startDateFieldCode = “作業開始”; // 作業開始日付フィールドコード
var endDateFieldCode = “作業終了”; // 作業終了日付フィールドコード
var resultFieldCode = “作業実績”; // 作業実績のドロップダウンフィールドコード
var noteFieldCode = “備考欄”; // 備考欄のフィールドコード

    var record = kintone.mobile.app.record.get();
    var table = record.record[tableFieldCode].value;

    // 空白の作業開始フィールドを探す
    var emptyRowIndex = -1;
    for (var i = 0; i < table.length; i++) {
      if (!table[i].value[startDateFieldCode].value) {
        emptyRowIndex = i;
        break;
      }
    }

    if (emptyRowIndex !== -1) {
      // 空白の作業開始フィールドが見つかった場合
      table[emptyRowIndex].value[startDateFieldCode].value = moment().format(
        "YYYY-MM-DDTHH:mm"
      );
    } else {
      // 空白の作業開始フィールドが見つからなかった場合、新しい行を追加
      var newRow = {};
      newRow[startDateFieldCode] = {
        type: "DATETIME",
        value: moment().format("YYYY-MM-DDTHH:mm"),
      };
      newRow[endDateFieldCode] = {
        type: "DATETIME",
        value: "",
      }; // 作業終了日付フィールドを空白に設定
      newRow[resultFieldCode] = {
        type: "DROP_DOWN",
        value: "",
      }; // 作業実績ドロップダウンを空白に設定
      newRow[noteFieldCode] = {
        type: "MULTI_LINE_TEXT",
        value: "",
      }; // 備考欄を空白に設定
      table.push({ value: newRow }); // 新しい行をテーブルの末尾に追加
    }

    kintone.mobile.app.record.set(record);
    alert("作業開始!\n保存を押してください!");
  };

  // レコードの情報を取得
  var record = kintone.mobile.app.record.get().record;
  var startDateFieldValue = record["作業開始"].value;

  // 現在の日時を取得
  var currentDate = moment();

  // 作業開始日時フィールドの日付が現在の日付以前の場合、作業開始ボタンを非表示にする
  if (
    startDateFieldValue &&
    moment(startDateFieldValue).isAfter(currentDate)
  ) {
    mySpaceFieldButton.style.display = "none";
  }

  var spaceElement = kintone.mobile.app.record.getSpaceElement(
    "my_space_field"
  );
  spaceElement.innerHTML = "";
  spaceElement.appendChild(mySpaceFieldButton);
}

);
})();

作業開始日時フィールドの日付が現在時刻以前の場合は、非表示に
作業開始日時フィールドの日付が現在時刻以前の場合は、表示にしたいのですが
うまくいきません。どこが誤っているのでしょうか?

うまくいかない、というのは具体的にどのようにうまくいかないのか示したほうが回答は付きやすいかとおもいます!

一度エラーがでてないか確認していただき、エラーの内容を示してくださると回答もしやすいです。
こちらの記事を確認いただき、エラーが出ていないかをまずは確認ください。
mobile版の利用想定のコードに見受けられますが、下記URLであればPCブラウザからアクセスできます
https://sample.cybozu.com/k/m/{appId}

1 Like

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。