テーブル内の添付ファイルとルックアップも一緒にソートしたい

何を実現したいのかを書きましょう

サブテーブルには添付ファイルとルックアップの2つの列を設定しており、その他の列はテキスト入力欄となっております。サブテーブルに設定された日付項目を使用して、サブテーブル内のデータを並べ替えたいです。

発生した問題やエラーメッセージを具体的に書きましょう

ソート自体はうまくいっているのですが、添付ファイルとルックアップはソートかからない状態になってるみたいです:sweat_drops:

開発者画面では、データのIDとvalueがソートをかけられているように見えますが、画面上に表示される内容では、人の名前(ルックアップ)の部分と添付ファイルが並び替えられていませんでした。

おわかりになる方いらっしゃいましたら、 ご教示のほど、よろしくお願いいたします

実行したコードをコピー&ペーストしましょう

jQuery.noConflict();
(function sortData() {
  "use strict";
  // 登録、編集時の処理

  //古物許可番号
  kintone.events.on(
    ["app.record.edit.submit", "app.record.create.submit"],
    function (event) {
      var table = event.record.古物許可番号.value;
      //console.log(table);
      sortTable(table, "古物許可番号_選任日", true); //降順

      return event;
    }
  );

  var sortTable = function (table, orderBy, isDesc) {
    table.sort(function (a, b) {
      var fieldType = a.value[orderBy].type;
      var v1 = a.value[orderBy].value;
      var v2 = b.value[orderBy].value;

      // 数値と日時は変換してから比較
      switch (fieldType) {
        case "DATE":
          var a1 = new Date(v1).getTime();
          var a2 = new Date(v2).getTime();
          break;
      }
      //condition ? exprIfTrue : exprIfFalse
      //var pos = isDesc ? -1 : 1;  
      var pos = isDesc ? -1 : 1;
      if (v1 > v2) {
        return pos;
      }
      if (v1 < v2) {
        return pos * -1;
      }
    });
  };
})(jQuery);

うろ覚えですみませんが、
保存前のタイミング(submit)の時点では添付ファイルのファイルキー持っていなかったはずなので出来てないのかなと思います。

なので保存後のタイミング(submit.success)でeventのレコードを取得し並び替える。
その際、return eventでは更新はできないので(保存後なので)別途同一のレコードに対してrest api介して更新してあげるのが良かった記憶です。

※違うような気がしてきたのですが、以前やったのはこのような形でした

1 Like

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