1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

kintone アプリで、サブテーブルのブランクレコードを削除して保存してみた

Last updated at Posted at 2018-09-05

0.はじめに

以前、こちらの投稿をやってみましたが、

kintone アプリで、
サブテーブルを設定して、レコードを作成・編集すると、
ブランクレコードであっても…、
サブテーブルに必ずレコードが一つ保存されてしまうみたいなので、
レコード保存時に、サブテーブルのブランクレコードを削除したいな、

と思い、やってみました。

1.JavaScript ファイルを作成する

  1. 以下の JavaScript ファイルを作成し、以下の部分を修正します。
    • [サブテーブルのフィールドコード名] : サブテーブルのフィールドコード名
    • ※ 以降は、サブテーブルの中の項目のフィールドコードで、ブランクレコードか判定し、削除する条件になります。
    • ![サブテーブルのフィールドコード名][i].value.[サブテーブル項目①のフィールドコード名].value
    • [サブテーブルのフィールドコード名][i].value.[サブテーブル項目②のフィールドコード名].value.length == 0
      • 配列の場合は、上記の条件式になります。
    • ![サブテーブルのフィールドコード名][i].value.[サブテーブル項目③のフィールドコード名].value

Kintone_ClearSubTableBlankRecord.js
//
// サブテーブル空白レコードクリアプログラム
//
// Copyright (c) 2018 KUSOKAMAYAROU
//
// Licensed under the MIT License
//

(function () {
    "use strict";

    // 「【Kintone】Javascriptカスタマイズ event(インベト)を使いこなせ!」
    // http://infosys.tokyo/kin_171030
    // 「Javascriptで指定した配列の要素を削除する - Qiita」
    // https://qiita.com/Sekky0905/items/598b47fea2106b8c140e

    kintone.events.on(['app.record.create.submit','app.record.edit.submit','app.record.index.edit.submit'], function(event) {
        var record = event.record;
        var [サブテーブルのフィールドコード名] = record.[サブテーブルのフィールドコード名].value;
        for (var i = [サブテーブルのフィールドコード名].length - 1; i > -1; i--) {
            if (![サブテーブルのフィールドコード名][i].value.[サブテーブル項目のフィールドコード名].value
                && [サブテーブルのフィールドコード名][i].value.[サブテーブル項目のフィールドコード名].value.length == 0
                && ![サブテーブルのフィールドコード名][i].value.[サブテーブル項目のフィールドコード名].value) {
                [サブテーブルのフィールドコード名].splice(i, 1);
            }
        }
        return event;
    });

})();

2.JavaScript ファイルをアップロードする

  1. まず、アプリの設定画面を開き、「設定」タブの「JavaScript / CSSでカスタマイズ」リンクをクリックします。


    • 0001.png
       
  2. 「JavaScript / CSSでカスタマイズ」画面が開くので、「PC用のJavaScriptファイル」の「アップロードして追加」ボタンを押下し、作成した JavaScript ファイル (Kintone_ClearSubTableBlankRecord.js) をアップロードします。

* ![0002.png](https://qiita-image-store.s3.amazonaws.com/0/161939/d945cac3-1a42-468e-31a0-37f9ad2c946a.png)

99.ハマりポイント

  • それほど困ったことはありませんでしたが…、


  • ブランクレコードか判定し、削除する条件で、配列の場合の条件式に多少時間を食いました。

XX.まとめ

kintone を使っていると、

意外にこういう細かい機能が欲しくなります。

参考になれば♪


1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?