DataTablesを使って多機能な一覧画面を作ろう!

DataTablesは、手軽に多機能なテーブルを作成できるjQueryプラグインです。 キー入力で反応する絞り込み機能等を備えているので、大量のデータを扱うのに便利です。 DataTables及びjQueryはCybozu CDNにてサポートされているので、ご利用ください。

サンプル

DataTablesを用いてカスタマイズビューを作成しました。

※サンプルに用いたデータはなんちゃって個人情報にて作成したものです。実在の人物とは関係ありません。

コード

HTML(一覧名: DataTables)

\<tableid="myTable"\>\</table\>

JavaScript

下記を順に読みます.

・sample.js

(function () {
  "use strict";
  kintone.events.on(['app.record.index.show'], function (event) {
    if (event.viewName !== 'DataTables') return;
    // 表示するフィールドをフィールドコードで指定
    var columns = ['名前', 'ふりがな', 'アドレス', '性別', '年齢', '誕生日', '婚姻', '携帯', 'カレーの食べ方',];
    kintoneUtility.rest.getAllRecordsByQuery({
      app: kintone.app.getId()
    }).then(function (response) {
      $('#myTable').DataTable({
        data: response.records.map(function (record) {
          return columns.reduce(function (data, column) {
            data[column] = record[column].value;
            return data;
          }, {
            レコード番号: '<a href="show#record=' + record.レコード番号.value + '">' + record.レコード番号.value + '</a>'
          });
        }),
        columns: ['レコード番号'].concat(columns).map(function (column) {
          return {
            title: column,
            data: column
          };
        })
      });
    });
  });
})();

 

CSS

下記を読みます.

※2020/07/15修正.

ゲストスペースで同じように機能させるにはどのようにすれば良いものでしょうか?

なぜかゲストスペースではできないのです。

RYOSUKE様

お世話になっております。
cstapの江田です。

ゲストスペース内で利用する場合は、kintoneUtility.rest.getAllRecordsByQuery()のパラメータisGuestをtrueにしてください。https://github.com/kintone/kintoneUtility/blob/master/guides/rest_doc.md#getAllRecordsByQuery

...
kintoneUtility.rest.getAllRecordsByQuery({app:kintone.app.getId()}).then(function(response){  
...

...
kintoneUtility.rest.getAllRecordsByQuery({app:kintone.app.getId(),  
isGuest: true}).then(function(response){  
...

cstapの江田さまへ

ありがとうございましたm( _ )m

全くの初心者です。このコードをJSeditを使い反映させるさせるにはどうしたらいいですか?

上のjavascriptのコードのコピーだけではだめでしょうか?

小田研人様

お世話になっております.

読み込みが必要なライブラリを追記しました.

「アプリの設定 > JavaScript / CSSでカスタマイズ」でライブラリを読み込んでください.
JSEditで作成したコードが既に読み込まれていると思うので,ドラッグアンドドロップでライブラリが先に読み込まれるよう設定してください.

https://jp.cybozu.help/k/ja/user/app_settings/js_customize.html

素晴らしい機能だと思います。

初心者で、完コピーしてもうまくいかなかった-_-

江田篤史

こんにちは、とても素晴らし機能だと思いました。

URL等を手順通りに読み込んだのですが上手く反映されませんでした。

JSにてフィールドコード以外に書き換えの必要な箇所があるのでしょうか、またJS以外の箇所にて問題があるのでしょうか。

 

ご教示いただけると幸いです。

 

(function () {
  "use strict";
  kintone.events.on(['app.record.index.show'], function (event) {
    if (event.viewName !== 'DataTables') return;
    // 表示するフィールドをフィールドコードで指定
    var columns = ['階・号室', 'テナント名', '入金日', '入金情報', '入金金額',];///書き換え箇所
    kintoneUtility.rest.getAllRecordsByQuery({
      app: kintone.app.getId()
    }).then(function (response) {
      $('#myTable').DataTable({
        data: response.records.map(function (record) {
          return columns.reduce(function (data, column) {
            data[column] = record[column].value;
            return data;
          }, {
            レコード番号: '<a href="show#record=' + record.レコード番号.value + '">' + record.レコード番号.value + '</a>'
          });
        }),
        columns: ['レコード番号'].concat(columns).map(function (column) {
          return {
            title: column,
            data: column
          };
        })
      });
    });
  });
})();

何の解決策も提示できませんが、

こちらが上手くいかない理由はUSL指定で3つめに読み込んでいる

https://kintone.github.io/kintoneUtility/kintoneUtility.min.js

のリンクが切れているから、だと思います(2022/6/16 AM時点)。

これが復活しない限りは、おそらくこのプラグインは使えないですね・・・。自分も残念です。

 

903631009806 さん

7535163418777 さん

↓こちらからダウンロードできそうですよ!?

https://developer.cybozu.io/hc/ja/articles/900003738746-kintone-Utility-for-JavaScript-%E3%81%AE-URL-%E3%81%A7%E3%81%AE%E9%85%8D%E4%BF%A1%E5%81%9C%E6%AD%A2%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6

ただ、だいぶ前から「非推奨」なので

↓こちらに乗り換え(&コードも書き換え必要)することはオススメしたいです
https://developer.cybozu.io/hc/ja/articles/900000767263

Y.Kami様

お世話になっております。返信遅くなりすみません。

リンクが切れてしまっていたのですね…

教えて頂きありがとうございます。

 

らいと

お世話になっております。返信遅くなりすみません。

 

ダウンロード可能なサイト及び乗り換えのリンクのご提示ありがとうございます。

二つ目のリンクを参考にコードの書き換えを行っていこうと思います。

 

解決対策のご教授ありがとうございました。