js實現字母+5位數的編號,滿99999自動變字母

Roy155發表於2020-12-02

目標:

實現字母+5位數自增編號,當編號滿99999時轉到下一個字母,如A00001,...,A99999,B00001,...,B99999,C00001,...

準備工作:

在白碼無程式碼平臺建立參數列記錄當前的字母數值和編號數值。為了實現字母自增,用數值來代表字母,A的10進位制數為10。

實現步驟:

1、建立功能,並建立“資料-獲取-參數列”步驟從參數列獲取引數

2、建立“程式設計”步驟,獲取上一步的編號引數

  //獲取編號引數
    let param = await $model.getValue("5fbf6e0a787a613b49d004d7");
    let start = new Number(param["5fbf6d9e787a613b49d004ce"]);//字母數值
    let end = new Number(param["5fbf6da8787a613b49d004d3"]);//編號數值

3、引數值的自增

    //引數值增長
    if (end == 99999) {
        end = 1;//編號值重置為1
        start++;//字母值+1
    } else {
        end++;//編號值+1
    }

4、儲存自增後的引數值

 
   //更新引數
    await $plugin.data.updateData("5fbf6d728aa7c03b4fe8c53f", param._id, {
        "5fbf6d9e787a613b49d004ce": start,
        "5fbf6da8787a613b49d004d3": end
    });

5、拼接編號

  //字母:數值轉16進位制,再轉大寫字母
    start = start.toString(16).toLocaleUpperCase();
    //5位的編號:左邊補5個0,再從右往左取5位
    end = "00000" + end;
    end = end.substr(end.length - 5, 5);
    //組合成編號
    let code = start + end;

6、儲存此編號

    //儲存編號
    await $plugin.data.saveData("5fbf6db28aa7c03b4fe8c540", {
        "5fbf6db88aa7c03b4fe8c541": code
    });
}

效果:

1、數值自增

2、字母自增

為了方便,先到資料庫把編號數值直接改到99998

效果如下:

完整程式碼:

async function runProcess($model = model, $plugin = plugin, $params) {
    //獲取編號引數
    let param = await $params.param;
    let start = new Number(param["5fbf6d9e787a613b49d004ce"]);//字母數值
    let end = new Number(param["5fbf6da8787a613b49d004d3"]);//編號數值
 
    //引數值增長
    if (end == 99999) {
        end = 1;
        start++;
    } else {
        end++;
}
 
    //更新引數
    await $plugin.data.updateData("5fbf6d728aa7c03b4fe8c53f", param._id, {
        "5fbf6d9e787a613b49d004ce": start,
        "5fbf6da8787a613b49d004d3": end
});
 
    //字母:數值轉16進位制,再轉大寫字母
    start = start.toString(16).toLocaleUpperCase();
    //5位的編號:左邊補5個0,再從右往左取5位
    end = "00000" + end;
    end = end.substr(end.length - 5, 5);
    //組合成編號
let code = start + end;
 
    //建立編號
    await $plugin.data.saveData("5fbf6db28aa7c03b4fe8c540", {
        "5fbf6db88aa7c03b4fe8c541": code
    });
}


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69981626/viewspace-2738922/,如需轉載,請註明出處,否則將追究法律責任。

相關文章