テーブルの内容のバーコード作成

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

 

申込管理アプリでテーブルに注文内容を登録しています。

テーブル内の各JANコードのバーコードを作成したいのですが、

いい案が思いつきません。(詳細は下図の赤枠です)

テーブル外の空白スペースにバーコードを表示するにも、テーブルのレコードが何レコードになるかわからないので、スペースを事前に用意するにも数がわからず…

テーブルに空白スペースの列を作れたらよいですが、作れず…

何かいい案はございますでしょうか。

ご教授いただければ幸いです。

面白そうでしたの試してみました。ただJANコードで調べたところJANでの生成が見つからず、EANと互換しているとはありましたがあまり詳しくなく期待と違いましたら申し訳ありません。。

https://github.com/lindell/JsBarcode

のライブラリを使用しました。

①CDNとして、

https://cdn.jsdelivr.net/npm/jsbarcode@3.11.0/dist/JsBarcode.all.min.js

をアプリのJSカスタマイズに差し込みJsBarCodeを使用しました。

②テーブルに文字列2つ(数値で有効桁数限界あるよう?だったので文字列で)を用意しました。

フィールドコードは

テーブル:table

バーコードの数値用文字列:code

バーコードの表示用文字列:そのまま

③targetClassNameには表示用の文字列に与えられた クラス名 を与えてください。

文字列のフィールドを右クリック検証して、td下divに設定されていると思います。(行は何行目でも)

結構強引な表示になりますが。。

(function () {
      kintone.events.on(["app.record.detail.show"],
              function (event) {
                      let record = event.record
                      let table = record["table"].value
                      // 描写用の文字列に与えられているクラス名から設定
                      let targetClassName = ".field-54321"
                      // サブテーブル画面描写後に走らせる
                      setTimeout(() => {
                              let dom = document.querySelectorAll(targetClassName)
                              // テーブル数分回す
                              table.map((row, index) => {
                                      // code数値の読み込み
                                      let code = row.value["code"].value
                                      // 文字列の位置へバーコード表示させるため、該当位置の中のspanを取得
                                      let target = dom[index].children[0].children[0]
                                      // svgタグの生成
                                      let svg = document.createElementNS("http://www.w3.org/2000/svg", "svg")
                                      target.appendChild(svg)
                                      // JsBarcodeで描写。
                                      JsBarcode(svg, Number(code),{format: "EAN13"});
                                })
                      }, 1000)
                      return event;
              }
      );
})()

@nabe さま

ご教授いただきありがとうございました。

問題なく実装できました。

生成されたバーコードもスキャンすることができました。

ありがとうございました。

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