年次(ドロップダウン)ごとの自動採番の設定について

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

タイトルの件について、年次ごとの自動採番を行うワザを参考に年次ごとの自動採番の設定をしたいと考えています。

現在、下記のフィールドがあり、

・年度(ドロップダウン)H23年度~H30年度

・区分(ラジオボタン)区分1・区分2

・No(文字列)

ドロップダウンの年度ごとに

S00001・・K00002・・K00003・・S00004と連番を振り、年度が変われば

値がリセットし、00001から連番を振りたいと考えております。

下記コードで設定しております。

(function() {
    "use strict";
    kintone.events.on(["app.record.create.show","app.record.index.edit.show","app.record.edit.show"],
    function(e) {
        var record = e.record;
        record['No']['disabled'] = true;
        return e;
    });
    kintone.events.on('app.record.create.submit', function(e) {
        var recNo = 1;
        var record = e.record;
        var appUrl = kintone.api.url('/k/v1/records', true) + '?app=' + kintone.app.getId() + '&query=' + encodeURI('order by $id desc limit 1 offset 0');
        var xmlHttp = new XMLHttpRequest();
        xmlHttp.open("GET", appUrl, false);
        xmlHttp.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
        xmlHttp.send(null);
        if (xmlHttp.status === 200) {
            if (window.JSON) {
                var obj = JSON.parse(xmlHttp.responseText);
                console.log(obj.records.length);
                if (obj.records.length > 0) {
                    try {
                        var recNoText = obj.records[0]['No'].value;
                        recNo = parseInt(('00000' + recNoText).slice(-5), 10) + 1;
                    } catch(e) { e.error = 'Noが取得できません。'; }
                }
                var kubun = {'区分1':'S','区分2':'K'}
                var autoEstNo = kubun[record.区分.value] + ('00000' + recNo).slice(-5);
                record['No']['value'] = autoEstNo;
            } else { e.error = xmlHttp.statusText; }
        } else { record['No'].error = 'Noが取得できません。'; }
        return e;
    });
})();

参考のトピックスでは、日付フィールドの値を取得し、queryを設定しているのですが、

ドロップダウンでも設定は可能でしょうか。

お手数でございますが、ご教授いただければ幸いでございます。

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

Nao さん

対象年度のレコードを抽出して、 No の先頭1桁を外してカウントアップすると、対応できると思います。

var query = ‘年度 = "’ + record[‘年度’].value + ‘" order by $id desc limit 1 offset 0’;
var appUrl = kintone.api.url(‘/k/v1/records’, true) + ‘?app=’ + kintone.app.getId() + ‘&query=’ + encodeURI(query);

var recNoText = obj.records[0][‘No’].value.slice(1);

 

rex0220様

ご返信ありがとうございます。

ご教授いただいたようの設定し、年度ごとの自動採番が出来ました。

ありがとうございます。