過去の桐井戸端BBS (桐ver.5)
14557 桐5でチェックキャラクタの表示をしたい 松尾 2001/12/20-10:14
桐5を使っています
得意先の要望で13桁のJANコードを伝票に表示するようにいわれています
ウィンドウズ版桐の チェックキャラクタのような関数はv5にはないのでしょうか
また他にチェックキャラクタを表示させる方法はないでしょうか
よろしくおねがいします
14562 Re:桐5でのチェックキャラクタの表示 悲しげ 2001/12/20-11:27
記事番号14557へのコメント
どもっ、松尾さん

以下に、DOS桐時代のチェックデジット算出用の計算式の例を挙げます。
私はこの式を項目計算式に設定して使っていました。
元となる項目は、この場合は[JN]ですね。
「\」は除去して下さい、当然ながら。(^^;)

#PROGN(#SETQ(&合計値,#NUM(#SSTR([JN],1,-1))\
+#NUM(#SSTR([JN],3,-1))\
+#NUM(#SSTR([JN],5,-1))\
+#NUM(#SSTR([JN],7,-1))\
+#NUM(#SSTR([JN],9,-1))\
+#NUM(#SSTR([JN],11,-1))\
+(#NUM(#SSTR([JN],2,-1))\
+#NUM(#SSTR([JN],4,-1))\
+#NUM(#SSTR([JN],6,-1))\
+#NUM(#SSTR([JN],8,-1))\
+#NUM(#SSTR([JN],10,-1))\
+#NUM(#SSTR([JN],12,-1)))*3)\
,#切り上げ(&合計値,-2)-&合計値)

DOS版でも、印刷に使うだけなら、チェックデジットは桐の方で自動算出してくれます。
この度の「伝票に表示するように」とは印刷伝票ではなくて「画面に」と云うことですね?

14564 Re:桐5でのチェックキャラクタの表示 松尾 2001/12/20-13:23
記事番号14562へのコメント
悲しげさん早速ありがとうございます
じつは画面上もなんですが、伝票にもJANコードの数字だけを13桁でプリントせよとの要望です
教えていただいた計算式を商品リストに入れてみます
ありがとうございました
14567 Re:桐5でチェックキャラクタ HERB 2001/12/20-17:13
記事番号14557へのコメント
松尾さん、HERBです。

私はV8SP6で、コンビニ決済用として郵便振替用紙兼用で、JANバーコードをレポートで印字してます。

JANのチェックキャラクターを求めるには計算式でできます、が、#チェックキャラクター関数はV5にもあるはずです。

以下、V8SP6関数一覧から。

その他
#チェックキャラクタ( 【 str | num 】 , sw )

バーコードのチェックキャラクタを文字列で求めます。

引数#タ説明
str バーコードの番号を文字列で指定します。
num バーコード番号を数値で指定します。
sw バーコードの種類を指定します。

値#タ戻り値
0 CODE39 のチェックキャラクタ文字を返します。
1 JAN コードのチェックキャラクタ文字を返します。

サンプル
「WINDOWS」から CODE39 のチェックキャラクタを求めます。

JAN コード「490165541000」のチェックキャラクタを求めます。

#チェックキャラクタ( 490165541000 , 1 ) → 7

関数一覧、その他にあるはずです、もう一度調べてみてください。

私の記憶違いで#チェックキャラクター関数がなければ、計算式でもなんとかなります。

14568 Re:Re:自己レスです HERB 2001/12/20-17:21
記事番号14567へのコメント
既に解答がでてました、失礼しました。
14569 Re:Re:自己レスです 悲しげ 2001/12/20-17:50
記事番号14568へのコメント
どもっ、HERBさん(^^;)
私の曖昧な記憶によれば、#チェックキャラクタ関数が初登場したのは
確か桐ver.6の時だったような・・・・。(^^;)
ver.5の時には「隠し」関数ですらなかったと想像しています。

14583 Re:Re:勘違いしていました HERB 2001/12/23-13:29
記事番号14569へのコメント
悲しげさん、HERBです大きな勘違いをしていました。
>どもっ、HERBさん(^^;)
>私の曖昧な記憶によれば、#チェックキャラクタ関数が初登場した
>のは確か桐ver.6の時だったような・・・・。(^^;)
>ver.5の時には「隠し」関数ですらなかったと想像しています。

10年位前のモノクロ液晶DOSノートパソコン、バッテリーはだめになりましたけど、ACアダプターをつなげばまだ使えます。

ver.5をインストールしてあったのを思い出し、桐を立ち上げ関数を調べました、
どこを捜しても#チェックキャラクター関数はありませんでした、すいません。

大分前からあったと聞いていたのでver.5にも当然あるとばかり独りよがりの思いこみをしていました。

悲しげさんの計算式ほどスマートではありませんが、当時、私が考えた計算式、チェックデジットの求め方です、
何かのお役になればよいです。

以下、JAN13桁バーコード703162096134のチェックデジット。

@ 偶数の桁の数字を合計する
A @の合計数を3倍する
B 奇数の桁の数字を合計する
C AとBの数字を合計する
D Cの数字の下1桁を10から引いた数値がチェックデジット

@ O+1+2+9+1+4=17
A 17×3       =51
B 7+3+6+0+6+3=25
C 51+25      =76
D 10−6       = 4

12桁+チェックデジットで7031620961344となる。

以下、上の公式を参考に考えた計算式。

#文字列(#MOD(10-#MOD((#数値(#部分列([バーコード],2,1))+#数値
(#部分列([バーコード],4,1))+#数値(#部分列([バーコード],6,1))
+#数値(#部分列([バーコード],8,1))+#数値(#部分列([バーコード]
,10,1))+#数値(#部分列([バーコード],12,1)))×3+(#数値(#部分列
([バーコード],1,1))+#数値(#部分列([バーコード],3,1))+#数値(#
部分列([バーコード],5,1))+#数値(#部分列([バーコード],7,1))+#
数値(#部分列([バーコード],9,1))+#数値(#部分列([バーコード],1
1,1))),10),10))

改行を無視してつないでください。

8桁バーコードのチェックデジットも計算方法は同じ、私が桐から
印字しているバーコードは3段で、1段目8桁、2、3段は13桁です。

1段目の8桁バーコードの7桁目に、2、3段目の奇数、偶数数字
全てを計算式から求めた数字を挿入し、さらにチェックデジットを
足して8桁バーコードとします。

3段のバーコードをスキャンして、トータルであっているかをチェックしているようです。

Win桐には#チェックキャラクター関数があるので、複雑な式を
書く手間はありません、
ただ当時、関数そのものを知らなかったのでまず公式に基づいた計算式を考えました、
以上、ご参考まで。

14598 Re:Re:バーコード情報 HERB 2001/12/24-10:35
記事番号14569へのコメント
HERBです。

以下、アドレスにバーコードについての解説がありました。

http://www.technical.or.jp/handbook/

主要なバーコードの種類と特徴
4-1.JAN(EAN)-8/13(2001年1月改正)
PUTとNON-PLU
ソースマーキングとインストアマーキング
4-2.CODE39
4-3.lndustial 2 of 5
4-4.ITF(lnterleaved 2 of 5)
4-5.NW-7(CODABAR)
4-6.UPC-A/E
4-7.CODE93
4-8.CODE128
4-9.バーコドを選ぶポイント
4-10.チェックデジット算出方法

以上、参考まで。

戻る

戻る