(57)【特許請求の範囲】
【請求項１】
ＣＰＵと、
ラベル記述言語で記述されたデータ定義部とデータセット部と印刷処理部とを含むソースファイルと、コンパイラと、データベースと、データマネージャと、ラベルマネージャと、インタプリタとが格納される記憶装置と、を有し、
該コンパイラは該ＣＰＵに対し、該ソースファイルの該データ定義部に基づいて変数名とデータ長と変数の内容とを対応させた変数テーブルを該記憶装置内に作成させ、該ソースファイルの該データセット部に記述された各データセット命令に基づいて該データベース内のファイル名とファイル内データ先頭位置と変数名とを対応させたデータセットテーブルを該記憶装置内に作成させ、該ソースファイルの該印刷処理部に記述された各命令を対応する中間コードに変換させて該記憶装置に格納させ、
該データマネージャは該ＣＰＵに対し、要求に応じてデータベースをアクセスさせ、
該ラベルマネージャは該ＣＰＵに対し、該コンパイラによる処理の終了後に、該データセットテーブルに基づき該データマネージャを介して、該データベース内の対応するデータを読み出させ、該読み出されたデータのうち該ファイル内データ先頭位置から、該データセットテーブル内で指定された変数名であって該変数テーブルに記述されたものに対応したデータ長だけ、該変数の内容として該変数テーブル内に格納させ、
該インタプリタは該ＣＰＵに対し、該ラベルマネージャによる処理の終了後に、該中間コード列の中間コードを解釈実行させる、
ことにより該変数テーブル内の変数の内容をラベルに印刷させることを特徴とするラベル印刷装置。
【請求項２】
（ａ）コンパイラがＣＰＵに対し、ラベル記述言語で記述されたデータ定義部とデータセット部と印刷処理部とを含むソースファイルの該データ定義部に基づいて変数名とデータ長と変数の内容とを対応させた変数テーブルを記憶装置内に作成させ、該ソースファイルの該データセット部に記述された各データセット命令に基づいてデータベース内のファイル名とファイル内データ先頭位置と変数名とを対応させたデータセットテーブルを該記憶装置内に作成させ、該ソースファイルの該印刷処理部に記述された各命令を対応する中間コードに変換させて該記憶装置に格納させ、
（ｂ）ラベルマネージャが該ＣＰＵに対し、該ステップ（ａ）の終了後に、該データセットテーブルに基づき、データマネージャを介して該データベース内の対応するデータを読み出させ、該読み出されたデータのうち該ファイル内データ先頭位置から、該データセットテーブル内で指定された変数名であって該変数テーブルに記述されたものに対応したデータ長だけ、該変数の内容として該変数テーブル内に格納させ、
（ｃ）インタプリタが該ＣＰＵに対し、該ステップ（ｂ）の終了後に、該中間コード列の中間コードを解釈実行させる、
ことにより該変数テーブル内の変数の内容をラベルに印刷させることを特徴とするラベル印刷方法。
【請求項３】
コンパイラと、データマネージャと、ラベルマネージャと、インタプリタとが記録されたコンピュータ読み取り可能な記録媒体であって、
該コンパイラは該ＣＰＵに対し、ラベル記述言語で記述されたデータ定義部とデータセット部と印刷処理部とを含むソースファイルの該データ定義部に基づいて変数名とデータ長と変数の内容とを対応させた変数テーブルを該記憶装置内に作成させ、該ソースファイルの該データセット部に記述された各データセット命令に基づいてデータベース内のファイル名とファイル内データ先頭位置と変数名とを対応させたデータセットテーブルを該記憶装置内に作成させ、該ソースファイルの該印刷処理部に記述された各命令を対応する中間コードに変換させて該記憶装置に格納させ、
該データマネージャは該ＣＰＵに対し、要求に応じてデータベースをアクセスさせ、
該ラベルマネージャは該ＣＰＵに対し、該コンパイラによる処理の終了後に、該データセットテーブルに基づき該データマネージャを介して、該データベース内の対応するデータを読み出させ、該読み出されたデータのうち該ファイル内データ先頭位置から、該データセットテーブル内で指定された変数名であって該変数テーブルに記述されたものに対応したデータ長だけ、該変数の内容として該変数テーブル内に格納させ、
該インタプリタは該ＣＰＵに対し、該ラベルマネージャによる処理の終了後に、該中間コード列の中間コードを解釈実行させる、
ことにより該変数テーブル内の変数の内容をラベルに印刷させることを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、各種物品に貼着されるラベルに文字、記号又はバーコードなどを印刷するラベル印刷方法及び装置並びにこの方法を実施するプログラムが記録されたコンピュータ読み取り可能な記録媒体に関する。
【０００２】
従来のラベル印刷装置では、Ｃ言語などの汎用言語でラベル印刷アプリケーションプログラムを作成していたのでプログラムが複雑になり、データベース内のデータを用いる場合に印刷すべきデータが変更になった場合、これに対応してアプリケーションプログラムを変更するのに長時間を要するという問題があった。
【０００３】
本発明の目的は、このような問題点に鑑み、ラベル記述言語を新設しこれを用いることによりデータベースのデータをラベル印刷用として容易に利用することができるラベル印刷方法及び装置並びにこの方法を実施するプログラムが記録されたコンピュータ読み取り可能な記録媒体を提供することにある。
【０００４】
本発明によるラベル印刷装置では、
ＣＰＵと、
ラベル記述言語で記述されたデータ定義部とデータセット部と印刷処理部とを含むソースファイルと、コンパイラと、データベースと、データマネージャと、ラベルマネージャと、インタプリタとが格納される記憶装置と、を有し、
該コンパイラは該ＣＰＵに対し、該ソースファイルの該データ定義部に基づいて変数名とデータ長と変数の内容とを対応させた変数テーブルを該記憶装置内に作成させ、該ソースファイルの該データセット部に記述された各データセット命令に基づいて該データベース内のファイル名とファイル内データ先頭位置と変数名とを対応させたデータセットテーブルを該記憶装置内に作成させ、該ソースファイルの該印刷処理部に記述された各命令を対応する中間コードに変換させて該記憶装置に格納させ、
該データマネージャは該ＣＰＵに対し、要求に応じてデータベースをアクセスさせ、
該ラベルマネージャは該ＣＰＵに対し、該コンパイラによる処理の終了後に、該データセットテーブルに基づき該データマネージャを介して、該データベース内の対応するデータを読み出させ、該読み出されたデータのうち該ファイル内データ先頭位置から、該データセットテーブル内で指定された変数名であって該変数テーブルに記述されたものに対応したデータ長だけ、該変数の内容として該変数テーブル内に格納させ、
該インタプリタは該ＣＰＵに対し、該ラベルマネージャによる処理の終了後に、該中間コード列の中間コードを解釈実行させる、
ことにより該変数テーブル内の変数の内容をラベルに印刷させる。
【０００７】
このラベル印刷装置によれば、ソースファイル内にデータ定義部及び印刷処理部のみならずデータセット部を記述し、コンパイラとは別のラベルマネージャがＣＰＵに対し、該ソースファイルをコンパイルすることにより得られた、該データ定義部及び該印刷処理部に対応した変数テーブル及びデータセットテーブルに基づいて、データマネージャを介しデータベース内から対応するデータを読み出させ該変数テーブル内に格納させるので、データベースのデータをラベル印刷用として容易に利用することができる。
【０００８】
本発明の他の目的、構成及び効果は以下の説明から明らかになる。
【０００９】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を説明する。
【００１０】
［第１実施形態］
図１は、本発明の一実施形態のラベル印刷装置を示す概略ブロック図である。
【００１１】
コンピュータ本体１０には、入力装置１１と、表示装置１２と、ラベル印刷に用いるデータベースＤＢが格納された外部記憶装置１３と、ラベル１４印刷用のプリンタ１５とが接続されている。コンピュータ本体１０では、記憶装置２０と、記憶装置２０に格納されたプログラムを実行するＣＰＵ２１と、ＲＳ２３２Ｃインタフェース２２とが、バス２３を介して接続されている。ＲＳ２３２Ｃインタフェース２２には、プリンタ１５、例えばドットプリンタ又はバーコードプリンタが接続されている。
【００１２】
図１では、記憶装置２０に格納された、ラベル印刷に関係したプログラム３０〜３７と、その相互関係とがブロック図で示されている。
【００１３】
ＯＳ３０は、例えばＭＳ−ＤＯＳ（登録商標）である。このＯＳプラットホーム上で、ラベル記述言語（Label Description Language, ＬＤＬ）で記述されたプログラムが動作して、ラベル印刷のための各種処理が行なわれる。
【００１４】
ＬＤＬソースファイル３１は、エディタ３２が動作しているときに、表示装置１２の表示を見ながら入力装置１１を操作することにより作成される。ＬＤＬソースファイル３１は、印刷プログラムとそのデータとを有する。
【００１５】
ＬＤＬコンパイラ３３は、ＬＤＬソースファイル３１を入力データとしてクラスファイル３４を作成する。クラスファイル３４は、仮想マシンコード列であるＬＤＬ中間コード列３４１と、これを実行する際に使用される印刷データが格納されたテーブル３４２とからなる。テーブル３４２には、印刷用のデータとして、外部記憶装置１３に格納されたデータベースＤＢ内のファイル名ＦＮ、このファイル名ＦＮのファイル内のデータの読み取り開始位置（オフセット値）ｐｏｓ、データ読み取り長さ（＝データが代入される変数のバイト長）Ｌが、ＬＤＬソースファイル３１内のデータセット命令及びデータ定義文に基づいてＬＤＬコンパイラ３３により、後述のようにして書き込まれている。
【００１６】
ラベルマネージャ３５は、ＬＤＬコンパイラ３３がテーブル３４２を作成した後に動作し、ファイル名ＦＮ、オフセット値ｐｏｓ及びデータ長Ｌをデータ切り出し情報としてデータマネージャ３６に供給してアクセスを要求する。データマネージャ３６はこれに応答して、データベースＤＢ内からこのファイル名ＦＮのファイル内のデータの該当部分を読み取り、ラベルマネージャ３５に渡す。ラベルマネージャ３５はこのデータをテーブル３４２内の、上記データセット命令で指定された変数にセットする。
【００１７】
クラスファイル３４の作成が完了した後に、仮想マシンであるＬＤＬインタプリタ３７により、ＬＤＬ中間コード列３４１からＬＤＬ中間コードが順次読み出されて、解釈され実行される。この実行において、テーブル３４２が使用される。ＬＤＬ中間コードは仮想マシン語であり、テーブル３４２内のデータは、この命令のオペランドの内容に相当している。ネイティブマシン、すなわちＣＰＵ２１から見れば、ＬＤＬ中間コードはサブルーチン又は関数の呼び出し命令であり、その引き数はテーブル３４２に含まれている。
【００１８】
ＬＤＬインタプリタ３７は、印刷命令を実行する場合、ＯＳ３０内の基本入出力ルーチンを介しＲＳ２３２Ｃインタフェース２２を制御する。これにより、プリンタ１５に制御データや印刷データが供給されて、ラベル１４が印刷される。
【００１９】
図２は、図１のＬＤＬソースファイル３１の構成を示しており、ＬＤＬソースファイル３１は、データ定義部４０と、データセット部４１と、印刷処理部４２とからなる。
【００２０】
１）．データ定義部４０
データ定義部４０では、制御データ及び印刷データのデータ名、データ長及び初期値を定義する。制御データ及び印刷データは、ＰＲＩＮＴ＿ＤＡＴＡ＿ＳＴＡＲＴタグに続いて定義される。
【００２１】
データ定義の書式は、
データ名（データ長，日本語データ名称，英語データ名称，初期値）
であり、ここに日本語データ名称及び英語データ名称は、人がデータの意味を容易に把握できるようにするための単なるコメントである。
【００２２】
以下にデータ定義部４０の具体例を挙げる。
ＰＲＩＮＴ＿ＤＡＴＡ＿ＳＴＡＲＴ
ｍｏｄｅｌ      （１０，  モデル，ｍｏｄｅｌ，ＴＥＳＴＤＡＴＡ９０）
ｄｅ＿Ｉｄ      （  ９，  識別ＩＤ，ＤＥ＿ＩＤ，００ＴＥＳＴ１２３）
上記の例では、以下のデータが定義されている。
【００２３】
データｍｏｄｅｌ：データ長１０バイト、初期値ＴＥＳＴＤＡＴＡ９０
データｄｅ＿Ｉｄ：データ長９バイト、初期直００ＴＥＳＴ１２３
２）．データセット部４１
データセット部４１では、データ定義部４０で定義されたデータに対して値をセットするデータセット命令を記述する。この命令は、ＬＤＬコンパイラ３３及びラベルマネージャ３５に対するものである。データセット部４１で変数に値がセットされない場合、この変数の値はデータ定義部４０で定義された初期値となる。
【００２４】
データセット部は、ＤＡＴＡ＿ＳＥＴ＿ＳＴＡＲＴタグに続いで記述される。
【００２５】
データセット部では、次の書式のデータセット命令が使用される。
【００２６】
ＳＥＴ  ＦＮ（ｐｏｓ）  ＴＯ  変数
これは、ファイル名ＦＮ内のデータのｐｏｓバイト目からを、データ定義部で定義された変数にセット（代入）するデータセット命令である。セットするバイト数は、データ定義部でこの変数について定められたデータ長に等しい。
【００２７】
例えば、
ＳＥＴ  ＭＩＬＣＬ２００（２６）  ＴＯ  ＳＨＩＰＭＥＮＴ＿ＩＤ；
は、ファイルＭＩＬＣＬ２００内のデータの先頭より２６バイト目から、変数ＳＨＩＰＭＥＮＴ＿ＩＤの定義で定められたデータ長だけ、変数ＳＨＩＰＭＥＮＴ＿ＩＤにセットすることを意味する。
【００２８】
３）．印刷処理部４２
印刷処理部４２では、ラベルフォーマット及び印刷条件を定める命令並びに印刷命令を記述する。
【００２９】
印刷処理部４２は、ＰＲＩＮＴ＿ＳＴＡＲＴタグに続いで記述される。
【００３０】
印刷処理部４２では、次の書式が使用される。
【００３１】
ＦＵＮＣ  （引数）
ＦＵＮＣは、ネイティブマシンに対する関数名であるとともに、仮想マシンに対する印刷処理命令である。
【００３２】
図３及び図４は、図２の印刷処理部４２で用いられるドットプリンタ用関数（命令）を示す。
【００３３】
例えば項１〜４はプリンタ制御命令であり、項５〜１０は書式命令であり、項１１及び１２は印字位置指定命令であり、項１３〜１６は印刷データセット命令であり、項１９〜２５は印刷命令である。
【００３４】
次に、ドットプリンタ用関数を説明する。
【００３５】
（１）ＤＯＴ＿ＳＥＴ＿ＰＲＩＮＴＥＲ＿ＴＹＰＥ（引数）
引数：利用可能なプリンタの機種を指定する整数
内容：ドットプリンタ機種を指定。（本関数は、ＤＯＴ＿ＰＲＩＮＴＥＲ＿ＯＰＥＮ前に呼ぶこと。）
（２）ＤＯＴ＿ＰＲＩＮＴＥＲ＿ＯＰＥＮ（）
引数：なし
内容：プリンタをテキストモードでオープン。
【００３６】
レフトマージンを０／１８０インチに設定。
【００３７】
プリンタをリセット。
【００３８】
（３）ＤＯＴ＿ＰＲＩＮＴＥＲ＿ＣＬＯＳＥ（）
引数：なし
内容：プリンタをリセット。
【００３９】
プリンタをクローズ。
【００４０】
（４）ＤＯＴ＿ＳＥＴ＿ＬＭＧＮ（引数）
引数：整数
内容：レフトマージンを１／１８０インチ単位で指定。
【００４１】
引数にマイナス値が指定された時は、０がセットされる。
【００４２】
例：ＤＯＴ＿ＳＥＴ＿ＬＭＧＮ（１０）
レフトマージンが、１０／１８０インチに設定される。
【００４３】
（５）ＤＯＴ＿ＰＩＴＣＨ＿ＲＥＤＵＣＴＩＯＮ（引数）
引数：整数
内容：半角文字印字ピッチを引数で次のように指定。
【００４４】
１３：ピッチ１３／１８０インチ・・・１２ＣＰＩ
１７：ピッチ１７／１８０インチ・・・１０ＣＰＩ
上記以外の値：ピッチ１８／１８０インチ・・・１０ＣＰＩ
（６）ＤＯＴ＿ＨＩＧＨ＿ＱＵＡＬＩＴＹ（引数）
引数：ＳＷＩＴＣＨ（２値であり、ＯＮ又はＯＦＦ、以下同様）
内容：文字品位を引数ＳＷＩＴＣＨで次のように指定。
【００４５】
ＯＮ：高品位印刷
ＯＦＦ：ドラフト印刷
（７）ＤＯＴ＿ＫＡＮＪＩ＿ＭＯＤＥ（引数）
引数：ＳＷＩＴＣＨ
内容：漢字モードを引数で次のように指定
ＯＮ：漢字モード
ＯＦＦ：ＡＮＫモード
（８）ＤＯＴ＿ＫＡＮＪＩ＿ＰＩＴＣＨ＿ＣＨＡＮＧＥ（引数）
引数：ＳＷＩＴＣＨ
内容：漢字ピッチを引数で次のように指定
ＯＮ：ピッチ３０／１８０インチ
ＯＦＦ：ピッチ２７／１８０インチ
（９）ＤＯＴ＿ＴＡＮＨＯＵＫＯＵ（引数）
引数：ＳＷＩＴＣＨ
内容：印刷方法を引数で次のように指定
ＯＮ：片方向印刷を行う。
【００４６】
ＯＦＦ：両方向印刷を行う。
【００４７】
例：ＤＯＴ＿ＴＡＮＨＯＵＫＯＵ（ＯＮ）
片方向印刷を行う。
【００４８】
（１０）ＤＯＴ＿ＡＮＫ＿ＤＯＵＢＬＥＷＩＤＥ（引数）
引数：ＳＷＩＴＣＨ
内容：ＡＮＫ文字拡大を引数で次のように指定
ＯＮ：ＡＮＫ倍幅拡大印刷を行う。
【００４９】
ＯＦＦ：ノーマル印刷を行う。
【００５０】
（１１）ＤＯＴ＿ＰＯＳ＿Ｘ（引数）
引数：整数
内容：Ｘ方向印刷位置の絶対指定。
【００５１】
単位は１／１８０インチ。
【００５２】
例：ＤＯＴ＿ＰＯＳ＿Ｘ（２０）
Ｘ方向印刷位置は２０／１８０インチになる。
【００５３】
（１２）ＤＯＴ＿ＰＯＳ＿Ｘ＿ＲＥＬＡＴＩＶＥ（引数）
引数：整数
内容：Ｘ方向印刷位置の相対指定。
【００５４】
単位は１／１８０インチ。
【００５５】
例：ＤＯＴ＿ＰＯＳ＿Ｘ＿ＲＥＬＡＴＩＶＥ（３０）
Ｘ方向印刷位置が現在位置から３０／１８０インチ移動。
【００５６】
（１３）ＤＯＴ＿Ｃ３９＿ＩＮＩＴ（）
引数：なし
内容：バーコードデータ関連の初期化
（バーコードデータを印字する前に、必ず呼ぶこと。）
チェックディジットなしに設定。
【００５７】
バーコード用左マージンを０／１８０に設定。
【００５８】
（１４）ＤＯＴ＿ＳＥＴ＿ＢＡＲＣＯＤＥ＿ＤＡＴＡ（引数）
引数：変数
内容：引数の内容をバーコード印刷データとして設定する。
【００５９】
チェックモードが、
０又は１のとき、引数の内容の末尾にＣＲを付加する。
【００６０】
２又は３のとき、引数の内容の末尾にＣＲを付加しない。
【００６１】
（１５）ＤＯＴ＿ＳＥＴ＿ＢＡＲＣＯＤＥ＿ＤＡＴＡ＿ＷＩＴＨ＿ＢＬＡＮＫ（引数）
引数：変数
内容：引数の内容をバーコード印刷データに設定する。
【００６２】
チェックモードが、
０又は１のとき、引数の内容の末尾にＣＲを付加して、バーコード印刷する。
【００６３】
２又は３のとき、引数の内容をそのままバーコード印刷する。
【００６４】
（１６）ＤＯＴ＿ＳＥＴ＿ＢＡＲＣＯＤＥ＿ＤＡＴＡ＿ＣＵＴ（引数）
引数：変数
内容：引数の内容をバーコード印刷データに設定する。
【００６５】
途中にブランクがある場合は、ブランク以後が印刷データから除去される。
【００６６】
チェックモードが、
０又は１のとき、引数の内容の末尾にＣＲを付加して、バーコード印刷する。
【００６７】
２又は３のとき、引数の内容をそのままバーコード印刷する。
【００６８】
（１７）ＤＯＴ＿ＳＥＴ＿ＢＡＲＣＯＤＥ＿ＬＭＧＮ（引数）
引数：整数
内容：バーコード用左マージンを１／１８０インチで設定
（１８）ＤＯＴ＿ＳＥＴ＿ＢＡＲＣＯＤＥ＿ＣＨＫ（引数）
引数：整数
内容：バーコード用チェックモードを引数で次のように設定。
【００６９】
０：チェックディジット無しで、フルアスキー変換を行う。
【００７０】
１：チェックデイジット有りで、フルアスキー変換を行う。
【００７１】
２：チェックデイジットなし。
【００７２】
３：チェックデイジットあり。
【００７３】
（１９）ＤＯＴ＿Ｃ３９＿ＰＲＩＮＴ（）
引数：なし
内容：バーコードの印刷を実行する。
【００７４】
（２０）ＤＯＴ＿ＰＲＩＮＴ＿ＯＵＴ（引数）
引数：変数
内容：引数の内容をテキスト印刷する。
【００７５】
頭部又は末尾にブランクがある場合は、ブランクが印刷データから除去される。
【００７６】
（２１）ＤＯＴ＿ＳＥＴ＿ＤＣＭＡＲＫ（引数）
引数：ＳＷＩＴＣＨ
内容：直後のＤＯＴ＿ＰＲＩＮＴ＿ＯＵＴ＿１６で"０"を直流記号に変換するかどうかを指定する。
【００７７】
ＯＮ：直流記号に変換。
【００７８】
ＯＦＦ：ブランクに変換。
【００７９】
（２２）ＤＯＴ＿ＰＲＩＮＴ＿ＯＵＴ＿１６（引数）
引数：変数
内容：引数の内容を１６ドットイメージでテキスト印刷する。
【００８０】
頭部又は末尾にブランクがある場合は、ブランクが印刷データから除去される。
【００８１】
（２３）ＤＯＴ＿ＰＲＩＮＴ＿ＯＵＴ＿ＣＡＴ＿ＤＡＴＥ１（引数）
引数：変数
内容：引数の内容がＹＹＹＹ＿ＭＭの形式になっていることを前提に、月度を英語に変換し、１６ドットイメージでテキスト印刷する。
【００８２】
月度と年度の間に１個のブランクがある。
【００８３】
例：ＤＯＴ＿ＰＯＳ＿Ｘ（１５７）；
ＤＯＴ＿ＰＲＩＮＴ＿ＯＵＴ＿ＣＡＴ＿ＤＡＴＥ１（ｄａｔｅ）；
ｄａｔｅの内容が"１９９８＿０９"の時、"ＳＥＰＴＥＭＢＥＲ．１９９８"が印刷される。
【００８４】
（２４）ＤＯＴ＿ＰＲＩＮＴ＿ＯＵＴ＿ＣＡＴ＿ＤＡＴＥ２（引数）
引数：変数
内容：引数の内容がＹＹＹＹ＿ＭＭの形式になっていることを前提に、月度を英語に変換し、１６ドットイメージでテキスト印刷する。
【００８５】
月度と年度の問にブランクがない。
【００８６】
例：ＤＯＴ＿ＰＯＳ＿Ｘ（５２７）；
ＤＯＴ＿ＰＲＩＮＴ＿ＯＵＴ＿ＣＡＴ＿ＤＡＴＥ２（ｄａｔｅ）；
ｄａｔｅの内容が"１９９８＿０９"の時、"ＳＥＰＴＥＭＢＥＲ．１９９８"が印刷される。
【００８７】
（２５）ＤＯＴ＿ＰＲＩＮＴ＿ＯＵＴ＿ＣＡＴ＿ＲＥＶ（引数）
引数：変数
内容：引数の内容を、１６ドットイメージでテキスト印刷する。但し、ＤＯＴ＿ＰＲＩＮＴ＿ＯＵＴ＿１６より文字間隔が５／１８０インチ広い。
【００８８】
（２６）ＤＯＴ＿ＦＥＥＤ（引数）
引数：整数
内容：１／１８０インチの単位で改行する。
【００８９】
例：ＤＯＴ＿ＦＥＥＤ（２３）；
２３／１８０インチ改行する。
【００９０】
（２７）ＤＯＴ＿ＬＩＮＥ＿ＦＥＥＤ（引数）
引数：整数
内容：２４／１８０インチ（１行）単位で改行する。
【００９１】
例：ＤＯＴ＿ＬＩＮＥ＿ＦＥＥＤ（３）；
７２／１８０インチ（３行）改行する。
【００９２】
（２８）ＤＯＴ＿ＳＵＰＥＲＳＣＲＩＰＴ（引数）
引数：ＳＷＩＴＣＨ
内容：上添え字で印刷するかどうか引数で次のように指定する。
【００９３】
ＯＮ：上添え字で印刷。
【００９４】
ＯＦＦ：上添え字印刷を解除。
【００９５】
（２９）ＤＯＴ＿ＰＲＩＮＴ＿ＯＵＴ＿ＲＥＶ（引数）
引数：変数
内容：引数の文字内容を左右リバースして印刷する。
【００９６】
例：ＤＯＴ＿ＰＲＩＮＴ＿ＯＵＴ＿ＲＥＶ（ｄａｔｅ）
ｄａｔｅの内容が"１９９８０９１６"のとき、"６１９０８９９１"が印刷される。
【００９７】
（３０）ＤＯＴ＿ＰＲＩＮＴ＿ＯＵＴ＿ＣＵＴ（引数）
引数：変数
内容：引数の内容を印刷する。
【００９８】
途中にブランクがある場合は、ブランク以後が印刷データから除去される。
【００９９】
（３１）ＤＯＴ＿ＣＡＴ＿ＩＮＩＴＩＡＬ（）
引数：なし
内容：ＣＡＴ用初期化。ＤＯＴ＿ＰＲＩＮＴ＿ＯＵＴ＿１６を使用するとき、ＤＯＴ＿ＰＲＩＮＴＥＲ＿ＯＰＥＮの直後に本関数を呼ぶこと。
【０１００】
図５及び図６は、図２の印刷処理部４２で用いられるバーコードプリンタ用関数（命令）を示す。
【０１０１】
次に、バーコードプリンタ用関数を説明する。
【０１０２】
（１）ＢＣ＿ＩＮＩＴ（）
引数：なし
内容：ラベル印刷情報の初期化（本関数は、最初に必ず呼ぶこと。）。
【０１０３】
初期化内容は、以下の通りである。
【０１０４】
ＲＳ２３２Ｃポート：ポート１
印刷枚数          ：１枚
レフトマージン    ：０ｍｍ
トップマージン    ：０ｍｍ
Ｘ方向印刷領域：１００ｍｍ
Ｙ方向印刷領域：５０ｍｍ
バーコード高さ    ：５ｍｍ
全ての印刷項目に対して、以下のように初期化
Ｘ方向印刷位置  ：０ｍｍ
Ｙ方向印刷位置  ：０ｍｍ
印刷タイプ      ：文字印刷
文字サイズ      ：４８ドット×４８ドット
文字ピッチ      ：０ｍｍ
単位            ：ｍｍ
（２）ＢＣ＿ＳＥＴ＿ＰＯＲＴ（引数）
引数：整数
内容：使用するＲＳ２３２Ｃポートナンバーを引数で指定。
【０１０５】
（３）ＢＣ＿ＳＥＴ＿ＳＵＵ（引数）
引数：整数
内容：ＢＣ＿ＥＸＥＣ＿ＰＲＩＮＴを一度実行した時の印刷枚数を指定。
【０１０６】
（４）ＢＣ＿ＳＥＴ＿ＬＨＩＧＨＴ（引数）
引数：整数
内容：Ｙ方向印刷領域を指定。（単位はｍｍ）
（５）ＢＣ＿ＳＥＴ＿ＬＷＩＤＴＨ（引数）
引数：整数
内容：Ｘ方向印刷領域を指定。（単位はｍｍ）
（６）ＢＣ＿ＳＥＴ＿ＢＨＩＧＧＴ
引数：整数
内容：バーコード高さを指定。（単位はｍｍ）
（７）ＢＣ＿ＳＥＴ＿ＬＭＧＮ（引数）
引数：整数
内容：レフトマージンを指定。（単位はｍｍ）
（８）ＢＣ＿ＳＥＴ＿ＴＭＧＮ（引数）
引数：整数
内容：トップマージンを指定。（単位はｍｍ）
（９）ＢＣ＿ＳＥＴ＿ＢＣＴＹＰＥ（引数）
引数：整数
内容：バーコードプリンタ機種を引数で指定
（１０）ＢＣ＿ＳＥＴ＿ＸＰＯＳ＿ＡＬＬ（引数）
引数：整数
内容：全ての印刷項目に対するＸ方向印刷位置の一括指定。
【０１０７】
（１１）ＢＣ＿ＳＥＴ＿ＹＰＯＳ＿ＡＬＬ（引数）
引数：整数
内容：全ての印刷項目に対するＹ方向印刷位置の一括指定。
【０１０８】
（１２）ＢＣ＿ＳＥＴ＿ＦＬＡＧ＿ＡＬＬ（引数）
引数：整数
内容：全ての印刷項目に対する印刷タイプを引数で一括指定。
【０１０９】
１：文字印刷
２：バーコード印刷
３：文字重ね印刷
４：バーコード重ね印刷
（１３）ＢＣ＿ＳＥＴ＿ＭＳＩＺＥ＿ＡＬＬ（引数）
引数：整数
内容：全ての印刷項目に対する文字サイズを引数で次のように一括指定。
【０１１０】
0003992916.tif 000002
例：ＢＣ＿ＳＥＴ＿ＭＳＩＺＥ＿ＡＬＬ（１）
各印刷内容について、この後に個別に文字サイズを指定しない場合、全て３２×４８ドットで印刷される。
【０１１１】
（１４）ＢＣ＿ＳＥＴ＿ＰＩＴＣＨ＿ＡＬＬ（引数）
引数：整数
内容：全ての印刷項目に対するピッチの一括指定。（単位はドット）
（１５）ＢＣ＿ＳＥＴ＿ＤＯＴ＿ＡＬＬ（引数）
引数：整数
内容：全ての印刷項目に対する印刷位置（Ｘ，Ｙ方向）の単位を引数で次のように一括指定。
【０１１２】
０：ｍｍ
０以外：ドット
（１６）ＢＣ＿ＳＥＴ＿ＸＰＯＳ（引数）
引数：整数
内容：各印刷項目に対するＸ方向印刷位置を指定。
【０１１３】
（１７）ＢＣ＿ＳＥＴ＿ＰＯＳ（引数）
引数：整数
内容：各印刷項目に対するＹ方向印刷位置を指定。
【０１１４】
（１８）ＢＣ＿ＳＥＴ＿ＦＬＡＧ（引数）
引数：整数
内容：各印刷項目に対する印刷タイプを引数で次のように指定。
【０１１５】
１：文字印刷
２：バーコード印刷
３：文字重ね印刷
４：バーコード重ね印刷
（１９）ＢＣ＿ＳＥＴ＿ＭＳＩＺＥ（引数）
引数：整数
内容：各印刷項目に対する文字サイズを引数で上記（１３）と同様に指定
（２０）ＢＣ＿ＳＥＴ＿ＰＩＴＣＨ（引数）
引数：整数
内容：各印刷項目に対するピッチを指定。（単位はドット）
（２１）ＢＣ＿ＳＥＴ＿ＤＯＴ（引数）
引数：整数
内容：各印刷項目に対する印刷位置（Ｘ，Ｙ方向）の単位を指定。
【０１１６】
０：ｍｍ
０以外：ドット
（２２）ＢＣ＿ＭＡＲＫ＿ＣＨＫ（引数）
引数：整数
内容：直前の印刷項目に０が含まれている時、０を直流記号に変換する。
【０１１７】
引数には、直前の印刷項目が左端から何文字離れているか指定する。
【０１１８】
（２３）ＢＣ＿ＭＡＲＫ＿ＹＰＯＳ（引数）
引数：整数
内容：ＢＣ＿ＭＡＲＫ＿ＣＨＫで生成された直流記号の"・・"と"‥"のＹ方向印刷位置を指定。（単位はドット）
必ず、ＢＣ＿ＭＡＲＫ＿ＣＨＫの直後に記述すること。
【０１１９】
（２４）ＢＣ＿ＤＲＡＷ＿ＲＥＣＴ（）
引数：なし
内容：を印刷する。
【０１２０】
（２５）ＢＣ＿ＳＥＴ＿ＤＡＴＡ（引数）
引数：変数
内容：引数の内容を印刷する。
【０１２１】
頭部又は末尾にブランクがある場合は、ブランクが印刷データから除去される。
【０１２２】
（２６）ＢＣ＿ＳＥＴ＿ＤＡＴＡ＿ＷＩＴＨ＿ＢＬＡＮＫ（引数）
引数：変数
内容：引数の内容を印刷する。
【０１２３】
頭部又は末尾にブランクがある場合は、ブランクが印刷データに含まれる。
【０１２４】
（２７）ＢＣ＿ＳＥＴ＿ＤＡＴＡ＿ＣＵＴ（引数）
引数：変数
内容：引数の内容を印刷する。
【０１２５】
途中にブランクがある場合は、ブランク以後が印刷データから除去される。
【０１２６】
（２８）ＢＣ＿ＳＥＴ＿ＤＡＴＡ＿ＲＥＶ（引数）
引数：変数
内容：引数の内容を左右リバースして印刷する。
【０１２７】
（２９）ＢＣ＿ＳＥＴ＿ＤＡＴＡ＿ＡＳＣ（引数）
引数：変数
内容：頭部又は末尾にブランクがある場合はブランクが除去され、末尾にＣＲが追加された後、フルアスキー変換され、印刷される。
【０１２８】
（３０）ＢＣ＿ＳＥＴ＿ＤＡＴＡ＿ＡＳＣ＿ＣＵＴ（引数）
引数：変数
内容：途中にブランクがある場合はブランク以後が除去され、末尾にＣＲが追加された後、フルアスキー変換され、印刷される。
【０１２９】
（３１）ＢＣ＿ＳＥＴ＿ＤＡＴＡ＿ＣＡＴ＿ＤＡＴＥ（引数）
引数：変数
内容：引数の内容がＹＹＹＹ＿ＭＭの形式になっていることを前提に、月度が英語に変換され、印刷される。
【０１３０】
（３２）ＢＣ＿ＥＸＥＣ＿ＰＲＩＮＴ（引数）
引数：整数
内容：印刷を開始する。
【０１３１】
引数でバーコード比率を次のように設定する。
【０１３２】
０：      ２：５
０以外：  ３：７
以上の命令のソースコードは、図１のＬＤＬコンパイラ３３により、ＬＤＬ中間コードに変換される。
【０１３３】
図７は、図１のＬＤＬコンパイラ３３の処理を示すジェネラルフローチャートである。
【０１３４】
（Ｓ１０）ＬＤＬソースファイル３１から１行のソースコードを読み取る。
【０１３５】
（Ｓ１１）ステップＳ１０において、ファイルの最後に到達しているため読み取るべき行がなければ、処理を終了し、そうでなければステップＳ１２へ進む。
【０１３６】
（Ｓ１２）ソースコードから、記号「；」以降のコメント文を削除する。
【０１３７】
（Ｓ１３）削除したためにソースコードが空文になった場合には、ステップＳ１０へ戻る。
【０１３８】
（Ｓ１４）ソースコードがＰＲＩＮＴ＿ＤＡＴＡ＿ＳＴＡＲＴであればステップＳ１５へ進み、そうでなければステップＳ１６へ進む。
【０１３９】
（Ｓ１５）処理モードＰＭに値１をセットし、ステップＳ１０へ戻る。
【０１４０】
（Ｓ１６）ソースコードがＰＲＩＮＴ＿ＳＥＴ＿ＳＴＡＲＴであればステップＳ１７へ進み、そうでなければステップＳ１８へ進む。
【０１４１】
（Ｓ１７）処理モードＰＭに値２をセットし、ステップＳ１０へ戻る。
【０１４２】
（Ｓ１８）ソースコードがＰＲＩＮＴ＿ＳＴＡＲＴであればステップＳ１９へ進み、そうでなければステップＳ２０へ進む。
【０１４３】
（Ｓ１９）処理モードＰＭに値３をセットし、ステップＳ１０へ戻る。
【０１４４】
（Ｓ２０）ＰＭ＝１であればステップＳ２１へ進み、そうでなければステップＳ２２へ進む。
【０１４５】
（Ｓ２１）後述のように変数又は定数のデータ定義処理を行い、ステップＳ１０へ戻る。
【０１４６】
（Ｓ２２）ＰＭ＝２であればステップＳ２３へ進み、そうでなければステップＳ２４へ進む。
【０１４７】
（Ｓ２３）後述のデータセット処理を行い、ステップＳ１０へ戻る。
【０１４８】
（Ｓ２４）ＰＭ＝３であればステップＳ２５へ進み、そうでなければステップＳ１０へ戻る。
【０１４９】
（Ｓ２５）後述のように命令をコンパイル（ソースコードを中間コードに変換）し、ステップＳ１０へ戻る。
【０１５０】
図８（Ａ）は、図７のステップＳ２１のより詳細な処理を示すフローチャートである。
【０１５１】
（Ｓ２１１）ソースコードが、定められた文法を満たしていればステップＳ２１２へ進み、そうでなければステップＳ２１３へ進む。
【０１５２】
（Ｓ２１２）ソースコードに含まれている変数名、データ長及び初期値を抽出して変数テーブルＶＴにセットする。図８（Ｂ）、はこの変数テーブルＶＴの具体例を示す。変数テーブルＶＴは、図１のテーブル３４２に含まれている。次に、図７のステップＳ１０へ戻る。
【０１５３】
（Ｓ２１３）文法エラーの内容を表示装置１２に表示し、エディタ３２を起動してエディットモードに移行し、ＬＤＬコンパイラ３３の動作を中止する。操作者は、この表示を見て文法エラーを訂正し、再度ＬＤＬコンパイラ３３を起動させる。
【０１５４】
図９（Ａ）は、図７のステップＳ２３のより詳細な処理を示すフローチャートである。
【０１５５】
（Ｓ２３１）ソースコードが、定められた文法を満たしているかどうかを判断する。満たしていればステップＳ２３２へ進み、そうでなければステップＳ２３５へ進む。
【０１５６】
（Ｓ２３２）ソースコードからオペランドＯＰ１、オフセット値ｐｏｓ及びオペランドＯＰ２を抽出する。
【０１５７】
（Ｓ２３３）オペランドＯＰ２が図８（Ｂ）の変数テーブルＶＴに登録済であればステップＳ２３４へ進み、そうでなければステップＳ２３５へ進む。
【０１５８】
（Ｓ２３４）オペランドＯＰ１、オフセット値ｐｏｓ及びオペランドＯＰ２を、図９（Ｂ）に示すようなデータセットテーブルＤＳＴにセットする。このデータセットテーブルＤＳＴは、図１のテーブル３４２に含まれている。次に、図７のステップＳ１０へ戻る。
【０１５９】
（Ｓ２３５）図８のステップＳ２１３と同様の処理が行なわれる。
【０１６０】
図１０は、図７のステップＳ２５のより詳細な処理を示すフローチャートである。
【０１６１】
（Ｓ２５１）ソースコードが、定められた文法を満たしていればステップＳ２５２へ進み、そうでなければステップＳ２５６へ進む。
【０１６２】
（Ｓ２５２）ソースコードから関数名ＦＮＣ及びその引き数を抽出する。
【０１６３】
（Ｓ２５３）ソースコードに記述された関数名ＦＮＣが予め登録されたものであるかどうかを、図１１（Ａ）に示すような関数テーブルＦＴ内の関数名と比較して調べる。この関数テーブルＦＴのレコードは、関数名ＦＮＣと、引き数のデータ型と、この関数を実行する処理ルーチンへのポインタとを含んでいる。登録された関数であればステップＳ２５４へ進み、そうでなければステップＳ２５６へ進む。
【０１６４】
（Ｓ２５４）関数テーブルＦＴを参照して、この関数の引き数が変数であるかどうかを調べ、変数であれば図８（Ｂ）の変数テーブルＶＴに登録されたものであるかどうかを調べる。登録されたものであればステップＳ２５５へ進み、そうでなければステップＳ２５６へ進む。
【０１６５】
（Ｓ２５５）関数名ＦＮＣと引数とを含むソースコードを、中間コードに変換する。この中間コードは、関数テーブルＦＴ内の該関数名に対応する項の値と、変数テーブルＶＴ内の、該引数の変数名に対応する項の値とで表される。図１１（Ｂ）は、ＬＤＬ中間コード列３４１を示す。例えば、第３項（行）の（４，３）は、命令が関数テーブルＦＴ内の項３のＢＣ＿ＳＥＴ＿ＤＡＴＡで、その引数が変数テーブルＶＴ内の項３の変数ＷＯＲＤであることを示している。
【０１６６】
引き数が有るか無いか、引き数が変数であるか値であるかについては、関数毎に予め定められており、呼び出された関数側でこれらが判断される。
【０１６７】
図１２は、図１のラベルマネージャ３５及びデータマネージャ３６の処理を示すフローチャートである。
【０１６８】
（Ｓ３５１）図９（Ｂ）に示すようなデータセットテーブルＤＳＴから、１レコード読み取る。
【０１６９】
（Ｓ３５２）読み取るべきレコードが無ければ処理を終了し、有った場合にはステップＳ３５３へ進む。
【０１７０】
（Ｓ３５３）オペランドＯＰ２のデータ長Ｌを、図８（Ｂ）の変数テーブルＶＴから取得する。例えばオペランドＯＰ２がＷＯＲＤである場合、Ｌ＝５である。
【０１７１】
（Ｓ３５４）ラベルマネージャ３５は、データベースＤＢに対する最初のアクセス前に、データマネージャ３６に対しこのデータベースをオープンさせる。ラベルマネージャ３５はまた、ファイル名ＯＰ１が出現したのが初回であるかどうかを判定し、初回であればデータマネージャ３６に対しこのファイルをオープンさせる。これにより、データベースＤＢ内のデータに対するアクセス手続きをＬＤＬソースファイル３１に記述する必要が無くなるので、データアクセスが簡単になる。
【０１７２】
ラベルマネージャ３５は、データマネージャ３６に対し、ファイル名ＯＰ１（＝ＦＮ）、例えばファイル名ＡＰＬ＿ＤＡＴＡのファイル内の、先頭よりｐｏｓバイトの位置からＬバイト（以下、これを（ＯＰ１，ｐｏｓ，Ｌ）で表す。）のデータを要求する。
【０１７３】
（Ｓ３６１〜Ｓ３６３）データマネージャ３６は、データベースＤＢに対し、ファイル名ＯＰ１を検索し、ＯＰ１が見つかればさらに（ＯＰ１，ｐｏｓ，Ｌ）を取得しようとする。取得できればその内容をラベルマネージャ３５へ渡し、取得できなければそのことを示すエラー情報をラベルマネージャ３５へ渡す。
【０１７４】
（Ｓ３５５〜Ｓ３５７）ラベルマネージャ３５はこれに応答して、エラーがなければ図８（Ｂ）の変数テーブルＶＴのオペランドＯＰ２に（ＯＰ１，ｐｏｓ，Ｌ）の内容をセットし、エラーがあれば図８のステップＳ２１３と同様の処理を行なう。
【０１７５】
図１３は、図１のＬＤＬインタプリタ３７の処理を示すフローチャートである。
【０１７６】
（Ｓ３７１）ＬＤＬ中間コード列３４１から次の中間コードを読み取る。
【０１７７】
（Ｓ３７２）読み取るべき中間コードが無ければ処理を終了し、有ったならばステップＳ３７３へ進む。
【０１７８】
（Ｓ３７３）図１１（Ａ）の関数テーブルＦＴ及び図８（Ｂ）の変数テーブルＶＴを参照して、中間コードに対応した関数を実行する。次に、ステップＳ３７１へ戻る。
【０１７９】
このような処理により、ラベル１４に所望の文字、記号又はバーコードが印刷される。
【０１８０】
図１４は、ＬＤＬを用いた以下のソースコード列のＬＤＬソースファイルを上述のように処理し実行して得られたラベル１４を示す。
PRINT_DATA_START
de_id     (13,     識別ID,           ID,   00TEST1234567)
de_type   ( 6,    de_type,      de_type,          00TEST)
id_dat    (15,     出荷ID,  SHIPMENT_ID, CATEST12345678%)
model_C   ( 5,     モデル,        MODEL,           MODEL)
model     (15,     モデル,        MODEL, TESTDATA9012345)
f_id_C    ( 3,     工場ID,   FACTORY_ID,              ID)
f_id      ( 2,     工場ID,   FACTORY_ID,              FJ)
rating    (21,    レイティング,       RATING, 12V{}0.28A  5V{}0.35A)
zuban_C   ( 8,       図番,      PART_NO,         PARTNO.)
zuban     (12,       図番,      PART_NO,    XXXX_YYYY#ZZ)
date_C    (12,       日付,          DAY,    MANUFACTURED)
date      ( 7,       日付,          DAY,         2000-09)
serial_C  (10, 工場ID号機,    SERIAL_NO,          SER.NO)
Serial    ( 9, 工場ID号機,    SERIAL_NO,       A12345678)
rev_no_C  ( 7,      版数1,    REVISION1,          REV.NO)
rev_no1   ( 1,      版数1,    REVISION1,               A)
rev_no2   (10,      版数1,    REVISION1,      0123456789)
rev_dt    (11,      版数2,    REVISION2,     ===========)
made_in   (20,    made_in,      made_in,   MADE IN JAPAN)
aster     ( 1,      aster,        aster,               *)
model_CJ  ( 1,      aster,        aster,         機種名:)
serial_CJ ( 1,      aster,        aster,          号 機:)
m_new     (11,      aster,        aster,     修理名:新作)
m_modify  (11,      aster,        aster,     修理名:修理)
;
DATA_SET_START
SET MILCLO21 (43) TO model
SET MILCL021 (19) TO zuban
SET MILCL101 (50) TO rev_no1
SET MILCL101 (51) TO rev_dt
SET MILCL101 (83) TO rating
SET MILCL200 ( 1) TO de_id
SET MILCL200 ( 1) TO de_type
SET MILCL200 (26) TO id_dat
SET SYSDEF   (47) TO f_id
SET SERIAL   ( 1) TO serial
SET DATE     ( 1) TO date
;
PRINT START
DOT_SET_PRINTER_TYPE (0);
DOT_PRINTER_OPEN ();
DOT_CAT_INITIAL ();
DOT_SET_LMGN (145);
DOT_FEED (4);
DOT_POS_X (0);
DOT_PRINT_OUT_16 (model_C);
DOT_POS_X (107);
DOT_PRINT_OUT_16 (model)
DOT_POS_X (520);
DOT_PRINT_OUT_16 (de_id);
DOT_FEED (26);
DOT_POS_X (0);
DOT_PRINT_OUT_16 (zuban_C);.
DOT_POS_X (107);
DOT_PRINT_OUT_16 (zuban);
DOT_POS_X (520);
DOT_PRINT_OUT_16 (id_dat);
DOT_FEED (26);
DOT_POS_X (0);
DOT_PRINT_OUT_16 (serial_C);
DOT_POS_X (107);
DOT_PRINT_OUT_16 (serial);
DOT_FEED (26);
DOT_POS_X (0);
DOT_PRINT_OUT_16 (date_C);
DOT_POS_X (157);
DOT_PRINT_OUT_CAT_DATEL (date);
DOT_FEED (26);
DOT_POS_X (0);
DOT_PRINT_OUT_16 (rev_no_C);
DOT_POS_X (107);
DOT_PRINT_OUT_16 (rev_no1);
DOT_POS_X (126);
DOT_PRINT_OUT_CAT_REV (rev_no2);。
【０１８１】
DOT_POS_X (126);
DOT_PRINT_OUT_CAT_REV (rev_dt);
DOT_POS_X (324);
DOT_SET_DCMARK (ON);
DOT_PRINT_OUT_16 (rating);
DOT_FEED (77);
DOT_POS_X (180);
DOT_PRINT_OUT_16 (made_in);
DOT_FEED (25);
DOT_PITCH_REDUCTION (0);
DOT_POS_X (0);
DOT_PRINT_OUT (aster);
DOT_PRINT_OUT (de_type);
DOT_PRINT_OUT (aster);
DOT_POS_X (520);
DOT_PRINT_OUT (mode1_CJ);
DOT_PRINT_OUT (model);
DOT_FEED (26);
DOT_C39_INIT ();
DOT_SET_BARCODE_DATA (de_id);
DOT_C39_PRINT ();
DOT_FEED (23);
DOT_C39_PRINT ();
DOT_POS_X (520);
DOT_PRINT_OUT (serial_CJ);
DOT_PRINT_OUT (scrial);
DOT_FEED (23);
DOT_C39_PRINT ();
DOT_FEED (26);
DOT_PITCH_REDUCTION (13);
DOT_HIGH_QUALITY (ON);
DOT_POS_X (520);
DOT_PRINT_OUT (m_new);
DOT_HIGH_QUALITY (OFF);
DOT_PITCH_REDUCTION (18);
DOT_FEED (142);
DOT_PRINTER_CLOSE ();
従来法で図１４のラベルを得るには、上記ソースコード列よりも遙かに複雑なソースファイルを作成する必要があり、ラベルの印刷フォーマットがさらに複雑になると、ソースファイルが極めて複雑になった。
【０１８２】
これに対し、本実施形態によれば、上述のようなラベル記述言語を用いてＬＤＬソースファイル３１が作成され、変数テーブルＶＴ内の変数に、データセットテーブルＤＳＴで指定されたデータベース内データがラベルマネージャＬＭ及びデータマネージャＤＭにより格納されるので、印刷すべきデータが変更になっても、比較的容易にＬＤＬソースファイル３１を変更してこれに対応することができる。
【０１８３】
また、ＬＤＬソースファイル３１がデータセット部を有し、ＬＤＬコンパイラ３３がこれに基づいてデータセットテーブルＤＳＴを作成し、ラベルマネージャ３５がこのデータセットテーブルＤＳＴに基づいてデータマネージャ３６を介しデータを取得し、これを変数にセットするので、データベースＤＢのデータをラベル印刷用として容易に利用することができる。
【０１８４】
なお、本発明には外にも種々の変形例が含まれ、以下にこれを説明する。
【０１８５】
（１）データ定義部４０において、制御データと印刷データの定義領域を分割してもよい。例えば、制御データは、ＣＯＮＴＲＯＬ＿ＤＡＴＡ＿ＳＴＡＲＴタグに続いで定義される。
【０１８６】
（２）データセット部４１において、次のような書式のデータセット命令を追加してもよい。
【０１８７】
ＳＥＴ  "テキスト"  ＴＯ  変数
これは、具体的な"テキスト"データを、データ定義部で定義された変数にセット（代入）するデータセット命令である。
【０１８８】
ＳＥＴ  変数ｌ＋変数２  ＴＯ  変数３
これは、文字列の変数１と変数２とを結合したものを、変数３にセットするデータセット命令である。
【０１８９】
（２）データセット命令のオペランドＯＰ１でデータベース名とその中のファイル名ＦＮとを指定するようにしてもよい。また、データベース内のテーブル名、テーブル内の主キー及びフィールドをデータセット命令のオペランドＯＰ１で指定するようにしてもよい。これらの場合、図９（Ｂ）のデータセットテーブルＤＳＴにこれら追加されたデータベース名等のフィールドを追加する。
【０１９０】
（３）データ定義部４０、データセット部４１又は印刷処理部４２においてＩＦ文を用い、条件式が成立する場合のみそれぞれＩＦ文内のデータ定義文、データセット命令又は印刷処理命令を実行するようにしてもよい。
【０１９１】
例えば、データセット部４１に次のような書式のＩＦ文を追加する。
【０１９２】
ＩＦ  ＯＰｌ  関係演算子  ＯＰ２
データセット命令
ＥＮＤＩＦ
この場合、条件式が成立するときのみ、データセット命令が実行される。ＩＦ文は入れ子になっていてもよい。ここに、
ＯＰｌ：制御データ又は印刷データ
ＯＰ２：制御データ又は印刷データ
関係演算子
＝＝：ＯＰ１の内容とオペランドＯＰ２の内容が等しい
！＝：ＯＰ１の内容とオペランドＯＰ２の内容が異なる
＜＝：ＯＰ１の内容がオペランドＯＰ２の内容以下
＞＝：ＯＰ１の内容がオペランドＯＰ２の内容以上
＜＜：ＯＰ１の内容がオペランドＯＰ２の内容より小さい
＞＞：ＯＰ１の内容がオペランドＯＰ２の内容より大きい
である。
【０１９３】
例えば、
ＩＦ  ＹＥＡＲ  ＞＝  Ｙ＿１９９６；
ＳＥＴ  "１９９６"  ＴＯ  ＹＥＡＲ；
ＥＮＤＩＦ
と記述する。これは、変数ＹＥＡＲの内容が変数Ｙ１９９６の内容以上の場合、データ値"１９９６"を変数ＹＥＡＲにセットすることを意味する。
【０１９４】
（３）印刷処理部４２にデバッグ用のＦＩＮＩＳＨ文を挿入するようにしてもよい。ＬＤＬインタプリタ３７はこのＦＩＮＩＳＨ文を読み出すと、処理を終了し、その時のテーブル３４２の内容の一部又は全部を表示装置１２に表示させる。
【０１９５】
（４）上記実施形態では、印刷処理部４２には予め定義された関数しか用いることができないが、ユーザが自由に関数を定義してこれを用いることができるようにしてもよい。
【０１９６】
（５）データ定義文で、データベースＤＢ内のファイル又はテーブルにデータを登録できるようにしてもよい。
【図面の簡単な説明】
【図１】本発明の一実施形態のラベル印刷装置を示す概略ブロック図である。
【図２】図１のＬＤＬソースファイルの構成を示す図である。
【図３】図２の印刷処理部で用いられるドットプリンタ用関数（１／２）を示す表である。
【図４】図２の印刷処理部で用いられるドットプリンタ用関数（２／２）を示す表である。
【図５】図２の印刷処理部で用いられるバーコードプリンタ用関数（１／２）を示す表である。
【図６】図２の印刷処理部で用いられるバーコードプリンタ用関数（２／２）を示す表である。
【図７】図１のＬＤＬコンパイラの処理を示すジェネラルフローチャートである。
【図８】図７のステップＳ２１のより詳細な処理を示すフローチャートである。
【図９】図７のステップＳ２３のより詳細な処理を示すフローチャートである。
【図１０】図７のステップＳ２５のより詳細な処理を示すフローチャートである。
【図１１】（Ａ）及び（Ｂ）はそれぞれ関数テーブル及びＬＤＬ中間コード列の説明図である。
【図１２】図１のラベルマネージャ及びデータマネージャの処理を示すフローチャートである。
【図１３】図１のＬＤＬインタプリタの処理を示すフローチャートである。
【図１４】明細書の実施形態に記載のＬＤＬソースファイルに基づいて得られたラベルを示す図である。
【符号の説明】
１０  コンピュータ本体
１１  入力装置
１２  表示装置
１３  外部記憶装置
１４  ラベル
１５  プリンタ
２０  記憶装置
２１  ＣＰＵ
２２  ＲＳ２３２Ｃインタフェース
２３  バス
３０  ＯＳ
３１  ＬＤＬソースファイル
３２  エディタ
３３  ＬＤＬコンパイラ
３４  クラスファイル
３４１  ＬＤＬ中間コード列
３４２  テーブル
３５  ラベルマネージャ
３６  データマネージャ
４０  データ定義部
４１  データセット部
４２  印刷処理部
ＤＢ  データベース
【図１】
0003992916.tif 000003
【図２】
0003992916.tif 000004
【図３】
0003992916.tif 000005
【図４】
0003992916.tif 000006
【図５】
0003992916.tif 000007
【図６】
0003992916.tif 000008
【図７】
0003992916.tif 000009
【図８】
0003992916.tif 000010
【図９】
0003992916.tif 000011
【図１０】
0003992916.tif 000012
【図１１】
0003992916.tif 000013
【図１２】
0003992916.tif 000014
【図１３】
0003992916.tif 000015
【図１４】
0003992916.tif 000016