(57)【要約】【課題】  伝票番号を構成する要素又は桁数の変更を容易に行えるようにする。【解決手段】  伝票番号の発番条件項目として、伝票番号の構成要素に日付データを含ませるか否かを識別する日付有無情報を設定記憶する。外部から伝票番号の発番要求があると、日別有無情報を判別する。日別有無情報が日付データを含ませる設定のとき、最新の発番済伝票番号から日付データとシーケンス番号とを取得し、日付データによって特定される日付が当日の場合はシーケンス番号に所定値を加算した値と当日の日付データとから新規の伝票番号を発番し、当日以外の場合はシーケンス番号の初期値と当日の日付データとから新規の伝票番号を発番する。日別有無情報が日付データを含ませない設定のとき、最新の発番済伝票番号に所定値を加算した値を新規の伝票番号として発番する。【選択図】      図４
2012155474.tif 000002
【特許請求の範囲】
【請求項１】
伝票番号の発番条件項目として、前記伝票番号の構成要素に日付データを含ませるか否かを識別する日付有無情報を設定記憶する伝票発番条件記憶手段と、
最新の発番済の伝票番号を記憶する伝票番号記憶手段と、
外部から前記伝票番号の発番要求があると前記伝票発番条件記憶手段で記憶した前記日別有無情報を判別する日付判別手段と、
前記日別判別手段により前記日別有無情報が日付データを含ませる設定のとき、前記伝票番号記憶手段で記憶した伝票番号から日付データとシーケンス番号とを取得し、日付データによって特定される日付が当日の場合はシーケンス番号に所定値を加算した値と当日の日付データとから新規の伝票番号を発番し、日付データによって特定される日付が当日以外の場合はシーケンス番号の初期値と当日の日付データとから新規の伝票番号を発番する第１の発番手段と、
前記日別判別手段により前記日別有無情報が日付データを含ませない設定のとき、前記伝票番号記憶手段で記憶した伝票番号に所定値を加算した値を新規の伝票番号として発番する第２の発番手段と、
前記第１または第２の発番手段により発番した新規の伝票番号を、前記外部へ通知する伝票番号通知手段と、
を具備したことを特徴とする伝票番号発番装置。
【請求項２】
前記伝票発番条件記憶手段は、さらに前記伝票番号の構成要素であるシーケンス番号の最大値を設定記憶し、
前記第１または第２の発番手段は、前記シーケンス番号に所定値を加算した値が前記最大値を超える場合には前記シーケンス番号を初期値にリセットすることを特徴とする請求項１記載の伝票番号発番装置。
【請求項３】
前記伝票発番条件記憶手段は、さらに前記伝票番号の構成要素としてシーケンス番号の初期値を設定記憶し、
前記第１または第２の発番手段は、前記伝票発番条件記憶手段で記憶したシーケンス番号の初期値にリセットすることを特徴とする請求項２記載の伝票番号発番装置。
【請求項４】
前記伝票発番条件記憶手段は、さらに前記伝票番号の構成要素として誤り検出符号を付加するか否かを識別する符号有無情報を設定記憶し、
外部から前記伝票番号の発番要求があると前記伝票発番条件記憶手段で記憶した前記符号有無情報を判別する符号判別手段、をさらに具備し、
前記第１または第２の発番手段は、前記符号判別手段により前記符号有無情報が誤り検出符号を付加する設定のときには新規の伝票番号に誤り検出番号を付加し、誤り検出符号を付加しない設定のときには新規の伝票番号に誤り検出番号を付加しないことを特徴とする請求項１乃至３のうちいずれか１記載の伝票番号発番装置。
【請求項５】
伝票発番条件記憶手段が、伝票番号の発番条件項目として、前記伝票番号の構成要素に日付データを含ませるか否かを識別する日付有無情報を設定記憶し、
伝票番号記憶手段が、最新の発番済の伝票番号を記憶し、
外部から前記伝票番号の発番要求があると、制御手段が、前記伝票発番条件記憶手段で記憶した前記日別有無情報を判別し、前記日別有無情報が日付データを含ませる設定のとき、前記伝票番号記憶手段で記憶した伝票番号から日付データとシーケンス番号とを取得し、日付データによって特定される日付が当日の場合はシーケンス番号に所定値を加算した値と当日の日付データとから新規の伝票番号を発番し、日付データによって特定される日付が当日以外の場合はシーケンス番号の初期値と当日の日付データとから新規の伝票番号を発番し、前記日別有無情報が日付データを含ませない設定のとき、前記伝票番号記憶手段で記憶した伝票番号に所定値を加算した値を新規の伝票番号として発番し、発番した新規の伝票番号を、前記外部へ通知することを特徴とする伝票番号発番方法。
【請求項６】
伝票番号の発番条件項目として、前記伝票番号の構成要素に日付データを含ませるか否かを識別する日付有無情報を設定記憶する伝票発番条件記憶手段、及び、最新の発番済の伝票番号を記憶する伝票番号記憶手段、にアクセス可能なコンピュータを、
外部から前記伝票番号の発番要求があると前記伝票発番条件記憶手段で記憶した前記日別有無情報を判別する日付判別手段、
前記日別判別手段により前記日別有無情報が日付データを含ませる設定のとき、前記伝票番号記憶手段で記憶した伝票番号から日付データとシーケンス番号とを取得し、日付データによって特定される日付が当日の場合はシーケンス番号に所定値を加算した値と当日の日付データとから新規の伝票番号を発番し、日付データによって特定される日付が当日以外の場合はシーケンス番号の初期値と当日の日付データとから新規の伝票番号を発番する第１の発番手段、
前記日別判別手段により前記日別有無情報が日付データを含ませない設定のとき、前記伝票番号記憶手段で記憶した伝票番号に所定値を加算した値を新規の伝票番号として発番する第２の発番手段、及び、
前記第１または第２の発番手段により発番した新規の伝票番号を、前記外部へ通知する伝票番号通知手段、
として機能させるための発番プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、発注伝票，納品伝票，返品伝票等の伝票に対して付与される伝票番号の発番技術に関する。
【背景技術】
【０００２】
流通小売業で使用される発注伝票，納品伝票，返品伝票等の伝票に対して付与される伝票番号は、日付コードにシーケンス番号を付加し、さらにチェックデジットを付加して構成されることがある。日付コードは、通常、暦の特定日（例えば１月１日）を“００１”とし、この特定日から１日が経過する毎に“１”ずつ増加するコード、いわゆるジュリアンデート（００１〜３６６）である。このため、伝票番号の桁数は、シーケンス番号の桁数にジュリアンデートの３桁とチェックデジットの１桁とを加えた数に固定される。また、日付コードやチェックデジットが不要な場合も、省略するためにはプログラムの変更が必要であり、容易には対処できない。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−１１０５７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、伝票番号を構成する要素又は桁数の変更が容易な発番装置，発番方法及び発番プログラムを提供しようとするものである。
【課題を解決するための手段】
【０００５】
一実施形態の発番装置は、伝票発番条件記憶手段と、伝票番号記憶手段と、日付判別手段と、第１，第２の発番手段と、伝票番号通知手段とを備える。伝票発番条件記憶手段は、伝票番号の発番条件項目として、伝票番号の構成要素に日付データを含ませるか否かを識別する日付有無情報を設定記憶する。伝票番号記憶手段は、最新の発番済の伝票番号を記憶する。日付判別手段は、外部から伝票番号の発番要求があると伝票発番条件記憶手段で記憶した日別有無情報を判別する。第１の発番手段は、日別判別手段により日別有無情報が日付データを含ませる設定のとき、伝票番号記憶手段で記憶した伝票番号から日付データとシーケンス番号とを取得し、日付データによって特定される日付が当日の場合はシーケンス番号に所定値を加算した値と当日の日付データとから新規の伝票番号を発番し、日付データによって特定される日付が当日以外の場合はシーケンス番号の初期値と当日の日付データとから新規の伝票番号を発番する。第２の発番手段は、日別判別手段により日別有無情報が日付データを含ませない設定のとき、伝票番号記憶手段で記憶した伝票番号に所定値を加算した値を新規の伝票番号として発番する。伝票番号通知手段は、第１または第２の発番手段により発番した新規の伝票番号を外部へ通知する。
【図面の簡単な説明】
【０００６】
【図１】一実施形態である伝票発行システムの全体構成図。
【図２】同システムにおける伝票管理サーバの要部構成を示すブロック図。
【図３】同伝票管理サーバが備える伝票管理テーブルのデータ構造を示す模式図。
【図４】同伝票管理サーバが備える伝票発番条件設定テーブルのデータ構造を示す模式図。
【図５】同伝票管理サーバのディスプレイに表示される伝票発番条件設定画面のレイアウトを示す平面図。
【図６】同伝票管理サーバのＣＰＵが発番プログラムに従って実行する情報処理手順の一部を示す流れ図。
【図７】同情報処理手順のステップＳＴ９にて“ＹＥＳ”と判定された後の手順を示す流れ図。
【図８】同情報処理手順のステップＳＴ１６にて“ＮＯ”と判定された後の手順を示す流れ図。
【図９】同情報処理手順のステップＳＴ１６にて“ＹＥＳ”と判定された後の手順を示す流れ図。
【発明を実施するための形態】
【０００７】
以下、伝票番号発番装置の一実施形態を、図面を用いて説明する。  
図１は、伝票番号発番装置の一態様である伝票管理サーバ１０を備えた伝票発行システム１の全体構成図である。本システム１は、前記伝票管理サーバ１０に、ＬＡＮ（Local Area Network）等の通信ネットワーク１１を介して、複数台の伝票発行端末１２を接続してなる。
【０００８】
各伝票発行端末１２は、発注伝票，納品伝票，返品伝票等の種々の伝票の作成及び印刷に特化したコンピュータ端末である。なお、伝票発行端末１２が印刷機能を有さず、別途、専用の伝票プリンタを通信ネットワーク１１に接続して、各端末１２で作成した伝票を前記伝票プリンタで印刷するようにしてもよい。
【０００９】
図２は、伝票管理サーバ１０の要部構成を示すブロック図である。伝票管理サーバ１０は、制御部本体としてＣＰＵ（Central Processing Unit）２１を搭載している。そしてこのＣＰＵ２１に、アドレスバス，データバス等のバスライン２２を介して、ＲＯＭ（Read Only Memory）２３、ＲＡＭ（Random Access Memory）２４、ＨＤＤ（Hard Disk Drive）２５、時計部２６、通信インターフェイス２７及びＩ／Ｏ（Input/Output）機器インターフェイス２８を接続している。
【００１０】
ＲＯＭ２３は、ＣＰＵ２１を伝票管理サーバ１０として動作させるための基本プログラムを記憶する。また、ＣＰＵ２１を伝票管理サーバ１０として動作させるために必要な種々の固定的な設定データを記憶する。
【００１１】
ＲＡＭ２４は、ＣＰＵ２１の情報処理によって発生する種々のデータを一時的に保存するためのワークエリアとしての領域を有する。また、ＨＤＤ２５から読み込んだプログラムを展開するメモリ領域等も有する。
【００１２】
ＨＤＤ２５は、伝票管理サーバ１０が備える種々の機能をＣＰＵ２１に実現させるための制御プログラムを保存する。また、上記機能をＣＰＵ２１に実現させるために必要な設定データを保存する。
【００１３】
時計部２６は、現在の日付及び時刻を計時する。通信インターフェイス２７は、各伝票発行端末１２との間で通信ネットワーク１１を介して行うデータ通信を制御する。Ｉ／Ｏ機器インターフェイス２８は、キーボード３１、ディスプレイ３２、マウス３３等の各種Ｉ／Ｏ機器との間で行うデータ信号の送受信を制御する。
【００１４】
かかる構成の伝票管理サーバ１０は、図３に示すデータ構造の伝票管理テーブル４０をＲＡＭ２４に形成する。図３に示すように、伝票管理テーブル４０は、一意の伝票種別コード毎に、伝票番号データと排他フラグとを記憶する。伝票種別コードは、発注伝票，納品伝票，返品伝票等の種々の伝票に対して個々に設定される固有のコードである。本実施形態では、伝票種別コード“０”を発注伝票のコード、“１”を納品伝票のコード、“２”を返品伝票のコード、“３”を移動伝票のコードとする。
【００１５】
伝票番号データは、対応する伝票種別コードによって特定される伝票に対して発番された最新の伝票番号である。なお、この最新の伝票番号には、チェックデジットは付加されていない。排他フラグは、対応する伝票種別コードによって特定される伝票に対する伝票番号を発番中のとき“１”にセットされる。伝票管理サーバ１０のＣＰＵ１１は、排他フラグが“０”にリセットされている伝票の伝票番号発番要求を伝票発行端末１２から受信すると、当該排他フラグを“１”にセットして、他の伝票発行端末１２からの同伝票に対する伝票番号発番要求を受け付けないようにする。  
ここに、伝票管理テーブル４０は、伝票番号記憶手段に相当する。なお、説明の便宜上、以下では最新の伝票番号を最終伝票番号と称する。
【００１６】
伝票管理サーバ１０は、図４に示すデータ構造の伝票発番条件設定テーブル５０をＨＤＤ２５で保存する。図４に示すように、伝票発番条件設定テーブル５０は、前記伝票種別コード毎に、発番条件項目としてＭＡＸ番号、ＭＩＮ番号、日付有無フラグ及びＣ／Ｄ有無フラグを記憶する。
【００１７】
ＭＡＸ番号及びＭＩＮ番号は、対応する伝票種別コードによって特定される伝票に対して発番される伝票番号の一要素であるシリアル番号の最大値及び最小値である。
【００１８】
日付有無フラグは、対応する伝票種別コードによって特定される伝票の伝票番号に日付コードを含ませるか否かを識別するための情報である。本実施形態では、日付コードを含ませる場合には“１”にセットされ、含ませない場合には“０”にリセットされる。日付コードは、暦の特定日（例えば１月１日）を“００１”とし、この特定日から１日が経過する毎に“１”ずつ増加するコード、いわゆるジュリアンデート（００１〜３６６）である。
【００１９】
Ｃ／Ｄ有無フラグは、対応する伝票種別コードによって特定される伝票の伝票番号に、誤り検出符号であるチェックデジットを付加するか否かを識別するための情報である。本実施形態では、チェックデジットを付加する場合には“１”にセットされ、付加しない場合には“０”にリセットされる。
【００２０】
上記伝票発番条件設定テーブル５０に対する各種発番条件項目のデータ設定は、設定プログラムによって制御されるＣＰＵ１１によって実現される。すなわち、伝票管理サーバ１０のディスプレイ３２に表示される初期業務メニューのなかから、例えばマウス３３の操作により伝票発番条件の設定業務が選択されると、上記設定プログラムが起動する。この設定プログラムが起動すると、ディスプレイ３２に伝票発番条件設定画面６０が表示されるので、設定作業者はこの画面６０を用いて、伝票毎に発番条件項目のデータを設定する。
【００２１】
本実施形態における伝票発番条件設定画面６０のレイアウトを図５に示す。この画面６０は、伝票種別コードの選択領域６１と、ＭＡＸ番号の入力領域６２と、ＭＩＮ番号の入力領域６３と、日付有無フラグの選択領域６４と、Ｃ／Ｄ有無フラグの選択領域６５とを有する。また、設定ボタン６６と終了ボタン６７とを表示する。
【００２２】
選択領域６１は、各種の伝票名が表示されるプルダウンメニューのなかから、マウスによってクリックされた伝票名を表示する。入力領域６２及び６３は、キーボード３１のテンキーによって置数されたデータを表示する。なお、入力領域６２に入力される数値Ａと入力領域６３に入力される数値Ｂとの間には、［Ａ＞Ｂ］の関係が成立する。選択領域６４は、メニュー項目「選択する」または「選択しない」のプルダウンメニューの中から、マウスによってクリックされた項目を表示する。選択領域６５は、メニュー項目「付加する」または「付加しない」のプルダウンメニューの中から、マウスによってクリックされた項目を表示する。
【００２３】
ディスプレイ３２に伝票発番条件設定画面６０を表示させたＣＰＵ１１は、設定ボタン６６がクリックされると、選択領域６１に表示されている伝票名の伝票種別コードを認識する。そして、伝票発番条件設定テーブル５０の当該伝票種別コードに対応するＭＡＸ番号領域及びＭＩＮ番号領域に、入力領域６２及び６３に表示されている数値Ａ，Ｂをセットする。また、伝票発番条件設定テーブル５０の当該伝票種別コードに対応する日付有無フラグを、選択領域６４に表示されている項目が「選択する」の場合は“１”、「選択しない」の場合は“０”とする。さらに、伝票発番条件設定テーブル５０の当該伝票種別コードに対応するＣ／Ｄ有無フラグを、選択領域６５に表示されている項目が「付加する」の場合は“１”、「付加しない」の場合は“０”とする。
【００２４】
なお、終了ボタン６７がクリックされた場合、ＣＰＵ１１は、伝票発番条件設定画面６０を消去する。
【００２５】
ここに、伝票発番条件設定テーブル５０は、伝票発番条件記憶手段に相当する。ＭＡＸ番号は、シーケンス番号の最大値に相当する。ＭＩＮ番号は、シーケンス番号の初期値に相当する。日付有無フラグは、日付有無情報に相当する。Ｃ／Ｄ有無フラグは、符号有無情報に相当する。
【００２６】
伝票発番条件設定テーブル５０に対して各種の伝票毎に伝票発番条件が設定されると、伝票管理サーバ１０は伝票番号の発番機能が可能となる。この機能は、伝票発行端末１２からの発番要求に対して伝票番号を発番する機能であり、ＲＯＭ２３またはＨＤＤ２５に記憶された発番プログラムによって実現される。
【００２７】
図６〜図９の流れ図は、発番プログラムに従って動作するＣＰＵ１１の処理手順を示す。すなわち、発番プログラムが起動すると、制御手段であるＣＰＵ１１は、伝票発行端末１２からの発番要求を待機する（ＳＴ１）。通信インターフェイス２７を介していずれかの伝票発行端末１２から発番要求コマンドを受信すると（ＳＴ１のＹＥＳ）、ＣＰＵ１１は、時計部２６に計時されている現在の日付から、ジュリアンデートである日付コードＤを取得し、ワークエリアに格納する（ＳＴ２）。また、ＣＰＵ１１は、受信した発番要求コマンドを解析して、発番要求のあった伝票の種別コードを認識する（ＳＴ３）。そしてＣＰＵ１１は、認識した伝票種別コードで伝票管理テーブル４０を検索して、当該伝票種別コードに対応する排他フラグをチェックする（ＳＴ４）。
【００２８】
ここで、排他フラグが“１”にセットされていた場合（ＳＴ４のＹＥＳ）、ＣＰＵ１１は、今回の発番要求コマンドを無視して、この処理を終了する。このとき、ＣＰＵ１１は、伝票発行端末１２に、他の伝票発行端末で発番中等のメッセージを送信するとよい。
【００２９】
排他フラグが“０”にリセットされていた場合（ＳＴ４のＮＯ）、ＣＰＵ１１は、その排他フラグを“１”にセットする（ＳＴ５）。またＣＰＵ１１は、伝票管理テーブル４０から当該伝票種別コードに対応して記憶されている伝票番号データ（最終伝票番号）を読み込み、ワークエリアに格納する（ＳＴ６）。
【００３０】
次いで、ＣＰＵ１１は、伝票発番条件設定テーブル５０を検索して、当該伝票種別コードに対応する伝票発番条件項目のデータ、すなわちＭＡＸ番号、ＭＩＮ番号、日付有無フラグ、Ｃ／Ｄ有無フラグを読み込み、ワークエリアに格納する（ＳＴ７）。そしてＣＰＵ１１は、日付有無フラグをチェックする（ＳＴ８：日付判別手段）。
【００３１】
ここで、日付有無フラグが“０”にリセットされていた場合（ＳＴ８のＮＯ）、ＣＰＵ１１は、Ｃ／Ｄ有無フラグをチェックする（ＳＴ９：符号判別手段）。
【００３２】
ここで、Ｃ／Ｄ有無フラグが“０”にリセットされていた場合（ＳＴ９のＮＯ）、ＣＰＵ１１は、ワークエリアに格納した伝票番号データに所定値“１”を加算して、新規の伝票番号を生成する（ＳＴ１０）。そしてＣＰＵ１１は、この新規の伝票番号が、ワークエリアに格納したＭＡＸ番号を超えたか否かを判別する（ＳＴ１１）。新規の伝票番号がＭＡＸ番号を超えた場合（ＳＴ１１のＹＥＳ）、ＣＰＵ１１は、ワークエリアに格納したＭＩＮ番号に所定値“１”を加算した数を新規の伝票番号とする（ＳＴ１２）。新規の伝票番号がＭＡＸ番号を超えていない場合には（ＳＴ１１のＮＯ）、ＣＰＵ１１は、上記ステップＳＴ１２の処理を実行しない（第２の発番手段）。
【００３３】
しかる後、ＣＰＵ１１は、この新規の伝票番号を、発番要求コマンド送信元の伝票発行端末１２に対し、通信インターフェイス２７を介して送信する（ＳＴ１３：伝票番号通知手段）。またＣＰＵ１１は、伝票管理テーブル４０の当該伝票種別コードに対応する伝票番号データを、新規伝票番号に上書き更新する（ＳＴ１４）。さらにＣＰＵ１１は、伝票管理テーブル４０の当該伝票種別コードに対応する排他フラグを“０”にリセットする（ＳＴ１５）。以上で、ＣＰＵ１１は、今回の発番要求コマンドの受信処理を終了する。
【００３４】
前記ステップＳＴ９において、Ｃ／Ｄ有無フラグが“１”にセットされていた場合（ＳＴ９のＹＥＳ）、ＣＰＵ１１は、図７に示すように、ワークエリアに格納した伝票番号データに“１”を加算して、新規の伝票番号を生成する（ＳＴ２１）。そしてＣＰＵ１１は、この新規の伝票番号が、ワークエリアに格納したＭＡＸ番号を超えたか否かを判別する（ＳＴ２２）。新規の伝票番号がＭＡＸ番号を超えた場合（ＳＴ２２のＹＥＳ）、ＣＰＵ１１は、ワークエリアに格納したＭＩＮ番号に“１”を加算した数を新規の伝票番号とする（ＳＴ２３）。新規の伝票番号がＭＡＸ番号を超えていない場合には（ＳＴ２２のＮＯ）、ＣＰＵ１１は、上記ステップＳＴ２３の処理を実行しない。
【００３５】
ＣＰＵ１１は、新規の伝票番号からチェックデジットの値を算出し、このチェックデジットの値を新規の伝票番号の最下位桁に付加する（ＳＴ２４：第２の発番手段）。ＣＰＵ１１は、発番要求コマンド送信元の伝票発行端末１２に対し、通信インターフェイス２７を介してチェックデジット付の伝票番号を送信する（ＳＴ２５：伝票番号通知手段）。
【００３６】
しかる後、ＣＰＵ１１は、伝票管理テーブル４０の当該伝票種別コードに対応する伝票番号データを、新規伝票番号に上書き更新する（ＳＴ１４）。またＣＰＵ１１は、伝票管理テーブル４０の当該伝票種別コードに対応する排他フラグを“０”にリセットする（ＳＴ１５）。以上で、ＣＰＵ１１は、今回の発番要求コマンドの受信処理を終了する。
【００３７】
前記ステップＳＴ８において、日付有無フラグが“１”にセットされていた場合（ＳＴ８のＹＥＳ）、ＣＰＵ１１は、Ｃ／Ｄ有無フラグをチェックする（ＳＴ１６）。
【００３８】
ここで、Ｃ／Ｄ有無フラグが“０”にリセットされていた場合（ＳＴ１６のＮＯ）、ＣＰＵ１１は、図８に示すように、ワークエリアに格納した伝票番号データを日付コードｄとシーケンス番号ｎとに分解する。すなわち、伝票番号データの上位３桁を日付コードｄとして抽出し、残りをシーケンス番号ｎとして抽出する（ＳＴ３１）。
【００３９】
次に、ＣＰＵ１１は、ワークエリアに格納した日付コードＤと伝票番号データから抽出した日付コードｄとを照合する（ＳＴ３２）。ここで、日付コードＤが日付コードｄと一致しない場合（ＳＴ３２のＮＯ）、ＣＰＵ１１は、シーケンス番号ｎを初期値“１”として（ＳＴ３３）、ステップＳＴ３７の処理に進む。
【００４０】
これに対し、日付コードＤが日付コードｄと一致する場合には（ＳＴ３２のＹＥＳ）、ＣＰＵ１１は、伝票番号データから抽出したシーケンス番号ｎに所定値“１”を加算する（ＳＴ３４）。そしてＣＰＵ１１は、このシーケンス番号ｎが、ワークエリアに格納したＭＡＸ番号を超えたか否かを判別する（ＳＴ３５）。
【００４１】
シーケンス番号ｎがＭＡＸ番号を超えた場合（ＳＴ３５のＹＥＳ）、ＣＰＵ１１は、ワークエリアに格納したＭＩＮ番号に“１”を加算した数をシーケンス番号ｎとする（ＳＴ３６）。そしてＣＰＵ１１は、ステップＳＴ３７の処理に進む。これに対し、シーケンス番号ｎがＭＡＸ番号を超えていない場合には（ＳＴ３５のＮＯ）、ＣＰＵ１１は、上記ステップＳＴ３６の処理を実行せずに、ステップＳＴ３７の処理に進む。
【００４２】
ステップＳＴ３７では、ＣＰＵ１１は、日付コードＤに、１０のｃ乗（ｃは、シーケンス番号ｎの桁数）を乗算する。そしてこの積にシーケンス番号ｎを加算した値を、新規の伝票番号とする（第１の発番手段）。ＣＰＵ１１は、この新規の伝票番号を、発番要求コマンド送信元の伝票発行端末１２に対し、通信インターフェイス２７を介して送信する（ＳＴ３８：伝票番号通知手段）。またＣＰＵ１１は、伝票管理テーブル４０の当該伝票種別コードに対応する伝票番号データを、新規伝票番号に上書き更新する（ＳＴ１４）。さらにＣＰＵ１１は、伝票管理テーブル４０の当該伝票種別コードに対応する排他フラグを“０”にリセットする（ＳＴ１５）。以上で、ＣＰＵ１１は、今回の発番要求コマンドの受信処理を終了する。
【００４３】
前記ＳＴ１６の処理において、Ｃ／Ｄ有無フラグが“１”にセットされていた場合（ＳＴ１６のＹＥＳ）、ＣＰＵ１１は、図９に示すように、ワークエリアに格納した伝票番号データを日付コードｄとシーケンス番号ｎとに分解する。すなわち、伝票番号データの上位３桁を日付コードｄとして抽出し、残りをシーケンス番号ｎとして抽出する（ＳＴ４１）。
【００４４】
次に、ＣＰＵ１１は、ワークエリアに格納した日付コードＤと伝票番号データから抽出した日付コードｄとを照合する（ＳＴ４２）。ここで、日付コードＤが日付コードｄと一致しない場合（ＳＴ４２のＮＯ）、ＣＰＵ１１は、シーケンス番号ｎを初期値“１”として（ＳＴ４３）、ステップＳＴ４７の処理に進む。
【００４５】
これに対し、日付コードＤが日付コードｄと一致する場合には（ＳＴ４２のＹＥＳ）、ＣＰＵ１１は、伝票番号データから抽出したシーケンス番号ｎに所定値“１”を加算する（ＳＴ４４）。そしてＣＰＵ１１は、このシーケンス番号ｎが、ワークエリアに格納したＭＡＸ番号を超えたか否かを判別する（ＳＴ４５）。
【００４６】
シーケンス番号ｎがＭＡＸ番号を超えた場合（ＳＴ４５のＹＥＳ）、ＣＰＵ１１は、ワークエリアに格納したＭＩＮ番号に“１”を加算した数をシーケンス番号ｎとして（ＳＴ４６）、ステップＳＴ４７の処理に進む。これに対し、シーケンス番号ｎがＭＡＸ番号を超えていない場合には（ＳＴ４５のＮＯ）、ＣＰＵ１１は、上記ステップＳＴ４６の処理を実行せずに、ステップＳＴ４７の処理に進む。
【００４７】
ステップＳＴ４７では、ＣＰＵ１１は、日付コードＤに、１０のｃ乗（ｃは、シーケンス番号ｎの桁数）を乗算する。そしてＣＰＵ１１は、この積にシーケンス番号ｎを加算した値を、新規の伝票番号とする。
【００４８】
ＣＰＵ１１は、新規の伝票番号からチェックデジットの値を算出し、このチェックデジットの値を新規の伝票番号の最下位桁に付加する（ＳＴ４８：第２の発番手段）。ＣＰＵ１１は、発番要求コマンド送信元の伝票発行端末１２に対し、通信インターフェイス２７を介してチェックデジット付の新規の伝票番号を送信する（ＳＴ４９：伝票番号通知手段）。
【００４９】
しかる後、ＣＰＵ１１は、伝票管理テーブル４０の当該伝票種別コードに対応する伝票番号データを、新規伝票番号に上書き更新する（ＳＴ１４）。またＣＰＵ１１は、伝票管理テーブル４０の当該伝票種別コードに対応する排他フラグを“０”にリセットする（ＳＴ１５）。以上で、ＣＰＵ１１は、今回の発番要求コマンドの受信処理を終了する。
【００５０】
今、営業日９月２１日（１月１日を基準日とするジュリアンデートは“２６４”）において、伝票管理テーブル４０と伝票発番条件設定テーブル５０とには、それぞれ図３及び図４に示すデータが記憶されているものとする。なお、排他フラグは全て“０”にリセットされているものと仮定する。
【００５１】
この状態で、伝票発行端末１２から、伝票種別コード“０”の発番要求コマンドを受信すると、伝票管理サーバ１０は、先ず、伝票種別コード“０”の伝票番号データ“２６３０８９”を取得する。また、発番条件項目として、ＭＡＸ番号“９９９”、ＭＩＮ番号“０”、日付有無フラグ“１”、Ｃ／Ｄ有無フラグ“１”を取得する。すなわち、伝票種別コード“０”の発注伝票は、日付コードを含み、チェックデジットを付加した７桁の伝票番号を使用する。
【００５２】
この場合、伝票管理サーバ１０は、図９のステップＳＴ４１〜ＳＴ４９の処理を実行する。すなわち伝票管理サーバ１０は、伝票番号データ“２６３０８９”を、日付コード“２６３”とシーケンス番号“０８９”とに分解する。ここで、日付コード“２６３”は、ジュリアンデート“２６４”と一致しない。したがって、シーケンス番号ｎは“００１”となる。かくして、ジュリアンデート“２６４”に１０の３乗を乗算した積“２６４０００”にシーケンス番号“００１”を加算し、さらに、そのチェックデジットを付加した値“２６４００１C/D”を、伝票管理サーバ１０は発注伝票の伝票番号として発番する。伝票管理サーバ１０は、この伝票番号をコマンド送信元の伝票発行端末１２に送信する。
【００５３】
伝票発行端末１２から、伝票種別コード“１”の発番要求コマンドを受信すると、伝票管理サーバ１０は、先ず、伝票種別コード“１”の最終伝票番号“２６４００９９９”を取得する。また、発番条件項目として、ＭＡＸ番号“９９９９９”、ＭＩＮ番号“０”、日付有無フラグ“１”、Ｃ／Ｄ有無フラグ“０”を取得する。すなわち、伝票種別コード“１”の納品伝票は、日付コードを含み、チェックデジットを付加しない８桁の伝票番号を使用する。
【００５４】
この場合、伝票管理サーバ１０は、図８のステップＳＴ３１〜ＳＴ３８の処理を実行する。すなわち伝票管理サーバ１０は、伝票番号データ“２６４００９９９”を、日付コード“２６４”とシーケンス番号“００９９９”とに分解する。ここで、日付コード“２６４”は、ジュリアンデート“２６４”と一致する。したがって、シーケンス番号ｎは“０１０００”となる。かくして、ジュリアンデート“２６４”に１０の５乗を乗算した積“２６４０００００”にシーケンス番号“０１０００”を付加した値“２６４０１０００”を、伝票管理サーバ１０は納品伝票の伝票番号として発番する。伝票管理サーバ１０は、この伝票番号をコマンド送信元の伝票発行端末１２に送信する。
【００５５】
伝票発行端末１２から、伝票種別コード“２”の発番要求コマンドを受信すると、伝票管理サーバ１０は、先ず、伝票種別コード“２”の伝票番号データ“４２０８”を取得する。また、発番条件項目として、ＭＡＸ番号“９９９９”、ＭＩＮ番号“４０００”、日付有無フラグ“０”、Ｃ／Ｄ有無フラグ“１”を取得する。すなわち、伝票種別コード“２”の返品伝票は、日付コードを含まず、チェックデジットを付加した５桁の伝票番号を使用する。
【００５６】
この場合、伝票管理サーバ１０は、図７のステップＳＴ２１〜ＳＴ２５の処理を実行する。すなわち伝票管理サーバ１０は、伝票番号データであるシーケンス番号“４２０８”に“１”を加算して、シーケンス番号“４２０９”を算出する。そして伝票管理サーバ１０は、このシーケンス番号“４２０９”のチェックデジットを算出し、そのチェックデジットをシーケンス番号“４２０９”に付加した値“４２０９C/D”を、返品伝票の伝票番号として発番する。伝票管理サーバ１０は、この伝票番号をコマンド送信元の伝票発行端末１２に送信する。
【００５７】
伝票発行端末１２から、伝票種別コード“３”の発番要求コマンドを受信すると、伝票管理サーバ１０は、先ず、伝票種別コード“３”の伝票番号データ“９９９９９８”を取得する。また、発番条件項目として、ＭＡＸ番号“９９９９９８”、ＭＩＮ番号“３００００”、日付有無フラグ“０”、Ｃ／Ｄ有無フラグ“０”を取得する。すなわち、伝票種別コード“３”の移動伝票は、日付コードを含まず、チェックデジットを付加しない６桁の伝票番号を使用する。
【００５８】
この場合、伝票管理サーバ１０は、図６のステップＳＴ１０〜ＳＴ１３の処理を実行する。すなわち伝票管理サーバ１０は、伝票番号データであるシーケンス番号“９９９９９８”に“１”を加算して、シーケンス番号“９９９９９”を算出する。ここで、シーケンス番号“９９９９９９”はＭＡＸ番号“９９９９９８”を超えているので、シーケンス番号はＭＩＮ番号“３０００００”に“１”を加算した値“３００００１”にリセットされる。伝票管理サーバ１０は、このシーケンス番号“３０００００１”を移動伝票の伝票番号として発番する。伝票管理サーバ１０は、この伝票番号をコマンド送信元の伝票発行端末１２に送信する。
【００５９】
このように、本実施形態によれば、伝票発番条件設定テーブル５０における日付有無フラグの設定如何により、伝票番号を構成する要素に日付データを含ませるか否かを容易に設定することができる。また、伝票発番条件設定テーブル５０におけるＣ／Ｄ有無フラグの設定如何により、伝票番号を構成する要素に誤り検出符号であるチェックデジットを付加するか否かを容易に設定することができる。
【００６０】
また、伝票発番条件設定テーブル５０におけるＭＡＸ番号及びＭＩＮ番号の設定如何により、伝票番号を構成する一要素であるシーケンス番号の最大値及び最小値を設定できる。その結果、伝票番号の桁数を容易に変更できる効果を奏する。
【００６１】
以下、前記実施形態の変形例について説明する。  
例えば前記実施形態では、伝票発番条件設定テーブル５０の発番条件項目としてＭＡＸ番号、ＭＩＮ番号、日付有無フラグ及びＣ／Ｄ有無フラグを示したが、ＭＩＮ番号を全て“０”と固定することによって、ＭＩＮ番号を省略することは可能である。また、誤り検出符号であるチェックデジットを必ず付加するものと仮定した場合は、Ｃ／Ｄ有無フラグを省略できる。
【００６２】
また、前記実施形態では、時計部２６に計時されている現在の日付からジュリアンデートである日付コードＤを取得したが、日付コードＤは、他の方ほうで取得してもよい。例えば、日付に係らず開店時刻から閉店時刻までを一営業日として、ジュリアンデートである日付コードＤを取得してもよい。
【００６３】
また、前記実施形態は、シーケンス番号に加算する所定値を“１”としたが、所定値は“１”に限定されるものではない。“２”以上の値を所定としてもよい。
【００６４】
また、前記実施形態は、サーバ１０の内部のＨＤＤ２５に発明の機能を実現させる制御プログラムが予め記録されているものとした。しかしこれに限らず、同様のプログラムがネットワークからサーバ１０にダウンロードされてもよい。あるいは、記録媒体に記録された同様のプログラムが、サーバ１０にインストールされてもよい。記録媒体は、ＣＤ−ＲＯＭ，メモリカード等のようにプログラムを記憶でき、かつ装置が読み取り可能であれば、その形態は問わない。また、プログラムのインストールやダウンロードにより得る機能は、サーバ内部のＯＳ（オペレーティング・システム）等と協働してその機能を実現させるものであってもよい。
【００６５】
この他、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００６６】
１０…伝票管理サーバ、１２…伝票発行端末、２１…ＣＰＵ、２３…ＲＯＭ、２４…ＲＡＭ、２５…ＨＤＤ、２６…時計部、２７…通信インターフェイス、２８…Ｉ／Ｏ機器インターフェイス、３１…キーボード、３２…ディスプレイ、３３…マウス、４０…伝票管理テーブル、５０…伝票発番条件設定テーブル。
【図１】
2012155474.tif 000003
【図２】
2012155474.tif 000004
【図３】
2012155474.tif 000005
【図４】
2012155474.tif 000006
【図５】
2012155474.tif 000007
【図６】
2012155474.tif 000008
【図７】
2012155474.tif 000009
【図８】
2012155474.tif 000010
【図９】
2012155474.tif 000011