本発明の実施形態について、図面を参照して説明する。図1を参照し、印刷システム1の概要について説明する。印刷システム1は、印刷装置4、及び、PC5を備えている。印刷装置4及びPC5は、ケーブル3を介して接続される。印刷装置4及びPC5は、ケーブル3を介して通信を行うことができる。
印刷装置4は、テープに複数のドットを形成させて印刷を行い、ラベルを作成することが可能なテーププリンタである。印刷装置4は、PC5から受信されたテンプレートデータ431(図4参照)、及び、データベース(以下、DBという。)ファイル432(図2参照)をCSV形式で示したファイル(以下、「CSVファイル」という。)に基づいて、装着されたテープカセットからテープを繰り出し、テンプレート印刷を実行する。テンプレート印刷の詳細は後述する。PC5は、入力部56に対する入力操作に応じ、印刷装置4が印刷処理を実行するために必要なテンプレートデータ431、及び、CSVファイルの基となるDBファイル432の作成、編集を行う。PC5は、テンプレートデータ431及びCSVファイルを印刷装置4に送信し、印刷装置4にテンプレート印刷を実行させることができる。
印刷装置4の電気的構成について説明する。印刷装置4は、CPU41、RAM42、フラッシュROM43、EEPROM44、通信部45、入力部46、表示部47、サーマルヘッド48、ローラ49を備える。CPU41は、印刷装置4の制御を行う。CPU41は、RAM42、フラッシュROM43、EEPROM44、通信部45、入力部46、表示部47、サーマルヘッド48、ローラ49と電気的に接する。RAM42は、種々の一時データを記憶する。フラッシュROM43には、CPU41が印刷装置4を制御するために実行するプログラムが記憶される。又、フラッシュROM43には、PC5から受信したテンプレートデータ431及びCSVファイルが記憶される。EEPROM44には、各種キャラクタやバーコードを印刷するための印刷用ドットパターンデータが、書体やサイズ毎に分類されて記憶される。通信部45は、PC5と通信を実行するためのコントローラである。入力部46はタッチパネルである。表示部47はLCDである。サーマルヘッド48は、CPU41からの信号に応じて発熱し、テープに印刷を行う。ローラ49は、テープを送るテープ送りローラである。
PC5の電気的構成について説明する。PC5は、CPU51、RAM52、ROM53、HDD54、通信部55、入力部56、表示部57を備える。CPU51は、PC5の制御を行う。CPU51は、RAM52、ROM53、HDD54、通信部55、入力部56、表示部57と電気的に接続する。RAM52は、種々の一時データを記憶する。ROM53は、BIOS等を記憶する。HDD54には、CPU51がPC5を制御するために実行するプログラム、及びOSが記憶される。又、HDD54には、テンプレートデータ431及びDBファイル432が記憶される。通信部55は、印刷装置4と通信を実行するためのコントローラである。入力部56はキーボード及びマウスである。表示部57はLCDである。
図2を参照し、テンプレートの作成、編集が可能なアプリケーションがPC5のCPU51によって実行された場合に表示部57に表示される編集画面571について説明する。編集画面571は、第1領域571A、第2領域571B、第3領域571Cを含む。以下、それぞれについて説明する。
第1領域571Aには、テンプレート20が表示される。テンプレート20は、複数のオブジェクトが配置された特定の領域21を示す。図2の場合、「豚ばら」の文字列を含むオブジェクト22A、バーコード221を含むオブジェクト22B、「価格(円)」の文字列を含むオブジェクト22C、及び、「300」の数字を含むオブジェクト22Dが、領域21内に配置されている。テンプレート20は、印刷装置4によってテープに印刷される印刷イメージを示す。CPU51は、入力部56に対する入力操作に応じて、領域21内に配置させるオブジェクトの種類を変更したり、領域21内に配置させたオブジェクト22A〜22Dの位置を移動させたりできる。このためユーザは、テンプレート20を見ながら入力部56に対して入力操作を行うことによって、テープに印刷される印刷イメージを調整できる。
なお、オブジェクト22Bに含まれるバーコード221は、商店等が任意に付番できるコード(インストアコード)である。例えばインストアコードは、生鮮食品の値段表、ポイントカードなどの会員証等に利用される。インストアコードは、その商店等でのみ通用し、他店では通用しない。図3に示すように、バーコード221の場合、対象となる商品の種別221A「20」、商品コード221B「12345」、及び、価格221C「00300」を含む。
図2に示すように、第2領域571Bには、テンプレート20の領域21に配置されたオブジェクト22A〜22Dのそれぞれに含まれる文字列、数字、バーコード、及び、それぞれのオブジェクトの名称(以下、「オブジェクト名」という。)が表示される。図2の場合、オブジェクト22Aに対応する「豚ばら」及びオブジェクト名「商品名」、オブジェクト22Bに対応するバーコード221及びオブジェクト名「_AABBBBBDDDDD_」、オブジェクト22Cに対応する「価格(円)」及びオブジェクト名「ラベル1」、並びに、オブジェクト22Dに対応する「300」及びオブジェクト名「値段」が示されている。オブジェクト名は、テンプレート20の領域21に含めるオブジェクトがユーザによって設定されたときに、ユーザによって設定される。
第3領域571Cには、テンプレート20にリンクさせることが可能なDBファイル432を示す表40が表示される。表40のうち、最も上側の行の「A」「B」「C」「D」「E」は、対応するDBファイル432のそれぞれの列(以下、「フィールド」ともいう。)を識別する情報(以下、「フィールドID」という。)である。フィールドIDの下側の「category」「Code」「Item」「Price」、及び、「Barcode」は、それぞれのフィールドの名称(以下、「フィールド名」ともいう。)を示す。最も左側の列(「1」「2」「3」)は、行番号を示す。DBファイル432の1行分のデータは、レコードに相当する。行番号「1」に付された三角形は、対応する行番号のレコードが選択されていることを示す。ユーザは、特定のレコードの特定のフィールドを選択して値を入力する操作を入力部56に対して行うことによって、DBファイル432の特定のデータを変更できる。
ここで、DBファイル432のうちフィールドID「E」(フィールド名「Barcode」)のデータは、フィールドID「A」(フィールド名「Category」)のデータ2桁分、フィールドID「B」(フィールド名「Code」)のデータ5桁分、及び、フィールドID「D」(フィールド名「Price」)のデータ5桁分を順番に結合することによって生成されるように設定されている。従って例えば、行番号「1」且つフィールドID「D」(フィールド名「Price」)のデータが「300」から「450」に変更された場合、CPU51は、行番号「1」且つフィールドID「E」(フィールド名「Barcode」)のデータを、「201234500300」から「201234500450」に変更する。
ユーザは、テンプレート20の領域21に含まれるオブジェクト22A〜22Dに、DBファイル432の特定のフィールドをリンク付けるための設定を行うことができる。図2の場合、オブジェクト22A(オブジェクト名「商品名」)に、DBファイル432のフィールドID「C」(フィールド名「Item」)がリンク付けられている。オブジェクト22B(オブジェクト名「_AABBBBBDDDDD_」)に、DBファイル432のフィールドID「E」(フィールド名「Barcode」)がリンク付けられている。オブジェクト22D(オブジェクト名「値段」)に、DBファイル432のフィールドID「D」(フィールド名「Price」)がリンク付けられている。
上記のように設定されたテンプレート20のデータ(以下、「テンプレートデータ431」という。)、及び、DBファイル432のCSVファイルが、印刷装置4に送信された場合を例に挙げる。この場合、印刷装置4のCPU41は、受信したテンプレートデータ431及びCSVファイルを、フラッシュROM43に記憶する。CPU41は、テンプレートデータ431に基づき、CSVファイルのうちフィールドID「C」に対応する複数のデータをオブジェクト22Aの位置に配置させ、フィールドID「E」に対応する複数のデータをオブジェクト22Bの位置に配置させ、フィールドID「D」に対応する複数のデータをオブジェクト22Dの位置に配置させた、複数の印刷イメージを生成できる。このためユーザは、PC5によってテンプレート20を1つ作成するだけで、異なる複数の印刷イメージを印刷装置4に印刷させることができる。なお、このような印刷をテンプレート印刷という。
具体的には、領域21内のオブジェクト22A、22B、22Dの位置に、行番号「1」且つフィールドID「C」「E」「D」に対応する「豚ばら」、「201234500300(のバーコード)」「300」が配置された第1の印刷イメージが生成される。又、行番号「2」且つフィールドID「C」「E」「D」に対応する「牛ロース」、「201234600450(のバーコード)」「450」が配置された第2の印刷イメージが生成される。又、行番号「3」且つフィールドID「C」「E」「D」に対応する「鳥もも」、「201234700198(のバーコード)」「198」が配置された第3の印刷イメージが生成される。
以下、CSVファイルに含まれる複数のデータを、「オブジェクトデータ」という。複数のオブジェクトが結合されたオブジェクトデータ(フィールドID「E」のオブジェクトデータ)を、「結合オブジェクトデータ」ともいい、それ以外のオブジェクトデータ(フィールドID「A」〜「D」のオブジェクトデータ)を「単体オブジェクトデータ」ともいう。単体オブジェクトデータがリンク付けられたオブジェクト(オブジェクト22A、22D)を、「単体オブジェクト」ともいう。結合オブジェクトデータがリンク付けられたオブジェクト(オブジェクト22B)を、「結合オブジェクト」ともいう。
図4は、PC5から印刷装置4に対して送信されるテンプレートデータ431を示す。テンプレートデータ431は、編集画面571(図2参照)を介して作成されたテンプレート20に応じて1つ作成される。テンプレートデータ431は、テンプレート名、テンプレート番号、背景画像、用紙、DBファイル名、及び、複数のオブジェクト情報を含む。複数のオブジェクト情報の数は、テンプレート20の領域21に含まれるオブジェクト22A〜22Dの数に対応する。それぞれのオブジェクト情報は、オブジェクト名、種別、配置/サイズ/フォント、初期値、及び、フィールドIDを含む。以下、複数のオブジェクト情報のそれぞれを、オブジェクト情報[0]〜[N−1](Nは、オブジェクト情報の最大数、図2のテンプレート20の場合、N=4)という。
テンプレート名は、テンプレートデータ431の名称である。テンプレート番号は、テンプレートデータ431を示す識別番号である。テンプレート番号は、PC5によってテンプレートデータ431が作成される毎に、1から1ずつ加算して付与される値である。背景画像は、テンプレートデータ431に基づいて生成される印刷イメージの背景の画像を示す。用紙は、印刷イメージが印刷されるテープの種別を示す。DBファイル名は、テンプレート20のオブジェクト22A、22B、22Dにリンク付けられているDBファイル432のCSVファイルのファイル名である。
オブジェクト情報[0]〜[N−1]のそれぞれは、オブジェクト22A〜22Dのそれぞれに対応する情報を含む。種別は、対応するオブジェクトの種別を示す。オブジェクトの種別の具体例は、「日付」「価格」「商品名」「バーコード」「図形」等である。配置は、領域21内でのオブジェクトの位置を示す。サイズは、オブジェクトのサイズを示す。フォントは、オブジェクトに含まれるデータが文字列又は数字の場合、文字列又は数字のフォントを示す。初期値は、オブジェクトの初期値を示す。フィールドIDは、DBファイル432のCSVファイルのうち、リンク付けられたフィールドのフィールドIDを示す。なお、リンク付けの設定が行われないオブジェクト22Cに対応するオブジェクト情報には、フィールドIDは含まれない。
印刷装置4は、フラッシュROM43に記憶されたCSVデータを編集する機能を有する。印刷装置4によってCSVファイルの編集が行われる場合に表示部47に表示される編集画面60(図5参照)について説明する。以下では、複数のテンプレートデータ431、及び、複数のテンプレートデータ431にリンク付けられたCSVデータが受信され、フラッシュROM43に記憶されていることを前提とする。
なお、印刷装置4によるCSVファイルの編集が行われる場合、図6に示すワンタッチパネル68が入力部46(図1参照)上に載置される。ワンタッチパネル68には、複数の指示ボタン68A(「BACK」「UP」「DOWN」「OK」及び「PRINT」ボタン)及びテンキーボタン68B(「0」〜「9」ボタン)が描かれている。入力部46は、ワンタッチパネル68が載置された状態で、ワンタッチパネル68の上側からユーザによってタッチ操作が行われたときに、タッチされた位置を検出できる。CPU41は、入力部46によって検出された位置と、ワンタッチパネル68上における複数の指示ボタン68A及びテンキーボタン68Bの位置とに基づいて、複数のボタンの何れがタッチされたかを特定できる。
図5に示すように、編集画面60として、アイドル画面61、レコード選択画面62、フィールド選択画面63、オブジェクト編集画面64の何れかが表示される。それぞれの画面には、テンプレート番号60A、テンプレート名60B、行番号60C、及び、オブジェクトデータ60Dが含まれる。テンプレート番号60A及びテンプレート名60Bとして、フラッシュROM43に記憶された複数のテンプレートデータ431の何れかのテンプレート番号及びテンプレート名が表示される。行番号60Cとして、CSVファイルを表形式で示したときの複数の行のうち特定の行が番号で表示される。オブジェクトデータ60Dとして、行番号によって示されるCSVファイルの行の複数のオブジェクトデータの何れかが表示される。
以下、「CSVファイルを表形式で示したときの行(又はレコード)」を、「CSVファイルの行(又はレコード)」と言い換える。「CSVファイルを表形式で示したときの列(又はフィールド)」を、「CSVファイルの列(又はフィールド)」と言い換える。CSVファイルの複数の列のそれぞれを識別するIDとして、フィールドIDを用いる。フィールドIDは、「A」「B」「C」・・・、又は、「1」「2」「3」・・・で示される。フィールドID「A」と「1」、「B」と「2」、「C」と「3」・・・は、それぞれ、同一のCSVファイルの列を示す。
CSVファイルの編集が開始された場合、はじめに、アイドル画面61が表示部47に表示される。アイドル画面61では、テンプレート番号60Aに初期値「01」が表示され、行番号60Cに初期値「00001」)が表示される。又、テンプレート名60Bとして、テンプレート番号60A「1」に対応するテンプレート名「肉類」が表示される。オブジェクトデータ60Dとして、CSVファイルのうち、行番号「1」及びフィールドID「A」に対応するオブジェクトデータ「20」(図2参照)が表示される。
アイドル画面61は、テンプレート番号60Aを選択することが可能な画面である。アイドル画面61の場合、テンプレート番号60Aが選択可能であることを示すために、テンプレート番号60Aに下線が付されている。又、テンプレート番号60Aの左側に、選択可能であることを示す矢印61Aが表示される。この状態で、ユーザによって「DOWN」ボタンがタッチされた場合、テンプレート番号60Aは「01」から「02」に変更される。テンプレート名60Bは、変更後のテンプレート番号60A「02」に対応するテンプレート名に変更される。行番号60Cに初期値「00001」が表示される。オブジェクトデータ60Dとして、CSVファイルのうち、行番号「1」及びフィールドID「A」に対応するオブジェクトデータが表示される。
アイドル画面61が表示された状態で「OK」ボタンがタッチされた場合、レコード選択画面62が表示される。レコード選択画面62は、行番号60Cを選択することが可能な画面である。レコード選択画面62の場合、行番号60Cが選択可能であることを示すために、行番号60Cに下線が付されている。又、行番号60Cの左側に、選択可能であることを示す矢印62Aが表示される。この状態で、ユーザによって「DOWN」ボタンがタッチされた場合、行番号60Cは「00001」から「00002」に変更される。テンプレート番号60A「01」及びテンプレート名60B「肉類」は変更されない。オブジェクトデータ60Dとして、CSVファイルの行番号「2」及びフィールドID「A」に対応するオブジェクトデータ「21」(図2参照)が表示される。
レコード選択画面62が表示された状態で「OK」ボタンがタッチされた場合、フィールド選択画面63(フィールド選択画面63A〜63E)が表示される。フィールド選択画面63は、フィールドIDを選択することが可能な画面である。フィールド選択画面63Aが表示された状態で、ユーザによって「DOWN」ボタンがタッチされた場合、フィールド列は「A」から「B」に変更される。テンプレート番号60A「01」、テンプレート名60B「肉類」、及び、行番号60C「00001」は変更されない。オブジェクトデータ60Dとして、CSVファイルの行番号「1」及びフィールドID「B」に対応する単体オブジェクトデータ「12345」(図2参照)が表示される(フィールド選択画面63B)。フィールド選択画面63Bが表示された状態で、ユーザによって「DOWN」ボタンがタッチされた場合、フィールド列は「B」から「C」に変更される。オブジェクトデータ60Dとして、CSVファイルの行番号「1」及びフィールドID「C」に対応するオブジェクトデータ「豚ばら」(図2参照)が表示される(フィールド選択画面63C)。
ユーザによって「DOWN」ボタンがタッチされる度に、フィールド列は「D」「E」の順に変更される。オブジェクトデータ60Dとして、CSVファイルの行番号「1」及びフィールドID「D」「E」に対応するオブジェクトデータ「300」(フィールド選択画面63D)(図2参照)、「201234500300」(フィールド選択画面63E)(図2参照)が表示される。
フィールド選択画面63Dが表示された状態で「OK」ボタンがタッチされた場合を例に挙げる。この場合、オブジェクト編集画面64が表示される。オブジェクト編集画面64は、CSVファイルのうちオブジェクトデータ60Dとして表示されたオブジェクトデータを編集するための画面である。オブジェクト編集画面64の場合、オブジェクトデータ60Dを編集可能であることを示すために、オブジェクトデータ60Dに下線が付されている。
「3」「2」「0」ボタンが順にタッチされた場合を例に挙げる。オブジェクト編集画面64においてオブジェクトデータ60Dとして表示された「300」は、「320」に変更される。この状態で「OK」ボタンがタッチされた場合、フィールド選択画面63Fが表示される。又、CSVファイルのうち、行番号「1」及びフィールドID「D」に対応するオブジェクトデータが「300」から「320」に変更される。フィールド選択画面63Fでは、オブジェクトデータ60Dとして、変更後の「320」が表示される。
ここで、CSVファイルのうちフィールドID「E」に対応するオブジェクトデータは、元々、フィールドID「A」「B」「D」の単体オブジェクトデータを結合することによって生成された結合オブジェクトデータである。このため上記において、フィールドID「D」のオブジェクトデータが「300」から「320」に変更された場合、フィールドID「E」のオブジェクトデータも、「201234500300」から「201234500320」に変更されなければならない。しかしながら、フィールドID「E」のオブジェクトデータが結合オブジェクトデータであることを示す情報は、CSVファイルに含まれていない。このためCPU41は、CSVファイルに基づいて結合オブジェクトデータを特定できない。
これに対し、本実施形態においてCPU41は、CSVファイルのフィールドID「E」がリンク付けられたオブジェクト22Bのオブジェクト名「_AABBBBBDDDDD_」の構成に基づいて、対応するオブジェクトが結合オブジェクトであると判断する。具体的には、CPU41は、CSVファイルのうち編集対象のオブジェクトデータがリンク付けられたオブジェクトのオブジェクト名を特定し、特定したオブジェクト名の先頭と末尾が「_」である場合、対応するオブジェクトが結合オブジェクトであると判断する。
又、CPU41は、オブジェクト名「_AABBBBBDDDDD_」の構成に基づいて、結合オブジェクトデータの基となる複数の単体オブジェクトデータのそれぞれのフィールドを判断する。具体的には次の通りである。CPU41は、オブジェクト名の「_」を除く構成「AABBBBBDDDDD」を抽出する。抽出された構成のうち先頭から1〜2番目の文字は、何れもフィールドID「A」と一致するので、CPU41は、結合オブジェクトデータのうち1〜2番目の文字は、CSVファイルのうちフィールドID「A」の単体オブジェクトデータに対応すると判断する。又、3〜7番目の文字は、何れもフィールドID「B」と一致するので、CPU41は、結合オブジェクトデータのうち3〜7番目は、CSVファイルのうちフィールドID「B」の単体オブジェクトデータに対応すると判断する。又、8〜12番目の文字は、何れもフィールドID「D」と一致するので、CPU41は、結合オブジェクトデータのうち8〜12番目は、CSVファイルのうちフィールドID「D」の単体オブジェクトデータに対応すると判断する。
以上のように判断することによって、CPU41は、結合オブジェクトデータの基となる複数の単体オブジェクトデータの何れかが変更された場合でも、変更内容が反映された結合オブジェクトデータを生成できる。又、詳細は後述するが、CPU41は、結合オブジェクトデータが変更された場合も、基となる複数の単体オブジェクトデータに変更内容を反映させることができる。ユーザは、編集画面571を介してオブジェクト毎に設定可能なオブジェクト名を、上記のルールに従って決定することによって、CSVファイルのうち結合オブジェクトデータを印刷装置4に認識させることができる。
なお、テンプレート20に含まれるオブジェクト22A〜22Dにオブジェクト名を設定する機能は、テンプレート20を作成可能な周知のアプリケーションに実装されている。又、PC5から印刷装置4に送信されるテンプレートデータのオブジェクト情報には、通常、オブジェクト名が含まれる。このため印刷装置4のCPU41は、周知のアプリケーションをそのまま使用して作成されたテンプレート20に対応するテンプレートデータに基づいて、結合オブジェクトデータを認識できる。従ってユーザは、結合オブジェクトデータを印刷装置4に認識させる場合に、周知のアプリケーションをそのまま使用でき、特別なアプリケーションを使用する必要がない。
図7を参照し、PC5のCPU51によって実行される処理について説明する。PCメイン処理は、編集画面571(図2参照)を介して作成されたテンプレート20のテンプレートデータ431、及び、DBファイル432のCSVファイルを印刷装置4に送信するための操作が、入力部56を介して検出された場合に、HDD54に記憶されたプログラムをCPU51が実行することによって開始される。
CPU51は、編集画面571を介して作成されたテンプレート20の名称を、テンプレート名として取得する。CPU51は、作成されたテンプレート20の番号を、テンプレート番号として取得する。CPU51は、設定された領域21の背景の画像を、背景画像として取得する。CPU51は、設定された印刷対象となるテープの種別を、用紙として取得する(S1)。CPU51は、取得したテンプレート名、テンプレート番号、背景画像、及び用紙を、RAM52に記憶する。
CPU51は、テンプレート20にリンクされたDBファイル432のCSVファイルのファイル名を、DBファイル名として取得する(S3)。CPU51は、取得したDBファイル名をRAM52に記憶する。
CPU51は、テンプレート20に含まれるオブジェクト22A〜22Dのそれぞれに対応するオブジェクト情報を取得する(S5)。具体的には次の通りである。CPU51は、オブジェクト22A〜22Dに対応するオブジェクト名として、「商品」「_AABBBBBDDDDD_」「ラベル1」「値段」を取得する。CPU51は、オブジェクト22A〜22Dに対応する種別として、「文字列」「バーコード」「文字列」「金額」を取得する。CPU51は、オブジェクト22A〜22Dに対応する配置として、領域21(図2参照)内のオブジェクト22A〜22Dの位置を特定可能な座標情報を取得する。CPU51は、オブジェクト22A〜22Dに対応するサイズとして、オブジェクト22A〜22Dの縦方向及び横方向の長さを取得する。CPU51は、オブジェクト22A、22C、22Dに対応するフォントとして、オブジェクト22A、22C、22Dに含まれる「豚ばら」「価格(円)」「300」のフォントを取得する。CPU51は、オブジェクト22A〜22Dに対応する初期値として、第1領域571Aに表示されたオブジェクト22A〜22Dに含まれる「豚ばら」「バーコード221」「価格(円)」「300」を取得する。CPU41は、オブジェクト22A、22B、22Dに対応するフィールドIDとして、フィールドID「C」「E」「D」を取得する。CPU51は、取得したオブジェクト22A〜22Dのオブジェクト情報[0]〜[N−1(N=4)]を、RAM52に記憶する。
CPU51は、S1、S3、S5の処理によって取得した上記のデータを、RAM52から読み出す。CPU51は、RAM52から読み出したデータを含むテンプレートデータ431(図4参照)を作成する(S7)。CPU51は、DBファイル432(図2参照)のCSVファイルを作成する(S7)。CPU51は、作成したテンプレートデータ及びCSVファイルを、ケーブル3を介して接続した印刷装置4に送信する(S9)。CPU51は、PCメイン処理を終了させる。
図8〜図26を参照し、印刷装置4のCPU41によって実行される印刷装置第1メイン処理(図8参照)、印刷装置第2メイン処理(図9参照)、及び、印刷装置第3メイン処理(図10〜図26参照)について説明する。印刷装置第1メイン処理、印刷装置第2メイン処理、及び、印刷装置第3メイン処理は、並列して実行される。以下では、複数のテンプレートデータ(テンプレート番号:「1」「2」・・・)及び1つのCSVファイルがフラッシュROM43に記憶されることを前提とする。又、複数のテンプレートデータの全てのDBファイル名として、1つのCSVファイルのファイル名が含まれていることを前提とする。
CPU41は、印刷装置第1メイン処理〜印刷装置第3メイン処理において、RAM42に記憶された整数型の変数Tnum、Rnum、ObjNum、状態情報、フラグ情報を使用する。Tnumは、「UP」「DOWN」ボタンがタッチされることによって選択されたテンプレート番号を示す。Rnumは、「UP」「DOWN」ボタンがタッチされることによって選択された行番号を示す。ObjNumは、「UP」「DOWN」ボタンがタッチされることによって選択されたフィールドIDを数字で示す。状態情報は、印刷装置第3メイン処理の状態に応じて、アイドル「0」、レコード選択「1」、フィールド選択「2」、及び、オブジェクト編集「3」の何れかが設定される。又、CPU41は、RAM42に記憶された整数型の変数num、Digit、FiedNum、Fnum、count1、count2、count3、count4、count5、count6を使用する。又、CPU41は、RAM42に記憶された文字型の変数Result、ObjName、Char、TempValue、fvalを使用する。
又、詳細は後述するが、RAM42には、文字型の変数として、オブジェクト情報[m].オブジェクトデータ(m=0、1、・・・N−1)が記憶される。オブジェクト情報[m].オブジェクトデータ(m=0、1、・・・N−1)は、オブジェクト毎にオブジェクトデータが格納される。オブジェクト情報[m].オブジェクトデータ(m=0、1、・・・N−1)は、印刷イメージが作成される時に参照される。
以下、テンプレート番号がTnumのテンプレートデータを、テンプレートデータ[Tnum]という。CSVファイルのうち行番号がRnumのレコードを、レコード[Rnum]という。フラッシュROM43から読み出されてRAM42に記憶されたCSVファイルのうち、行番号がRnum且つフィールドIDがObjNumのオブジェクトデータを、CSV[Rnum][ObjNum]という。2つのフィールドIDが比較対象とされる時、「A」と「1」、「B」と「2」、「C」と「3」等はそれぞれ同一であると判断される。
図8を参照し、印刷装置4のCPU41によって実行される印刷装置第1メイン処理について説明する。印刷装置第1メイン処理は、PC5から送信されたテンプレートデータ431及びCSVファイルを受信してフラッシュROM43に記憶するための処理である。印刷装置第1メイン処理は、ケーブル3を介して接続したPC5からテンプレートデータ431及びCSVファイルが送信された場合に、フラッシュROM43に記憶されたプログラムをCPU41が実行することによって開始される。CPU41は、PC5から送信されたテンプレートデータ431及びCSVファイルを受信する(S11)。CPU41は、受信したテンプレートデータ431及びCSVファイルを、フラッシュROM43に記憶する(S13)。CPU41は、印刷装置第1メイン処理を終了させる。
図9を参照し、印刷装置4のCPU41によって実行される印刷装置第2メイン処理について説明する。印刷装置第2メイン処理は、Tnum、Rnum、ObjNum、状態情報に基づいて、編集画面60(図5参照)を表示部47に表示させるための処理である。印刷装置第2メイン処理は、CSVファイルの編集を開始させるための操作が、入力部46を介して行われた場合に、フラッシュROM43に記憶されたプログラムをCPU41が実行することによって開始される。
CPU41は、状態情報に応じた編集画面60を表示部47に表示させる(S87)。具体的には、CPU41は、状態情報がアイドル「0」の場合、アイドル画面61を表示させる。CPU41は、状態情報がレコード選択「1」の場合、レコード選択画面62を表示させる。CPU41は、状態情報がフィールド選択「2」の場合、フィールド選択画面63を表示させる。CPU41は、状態情報がオブジェクト編集「3」の場合、オブジェクト編集画面64を表示させる。
CPU41は、テンプレート番号60AとしてTnumを表示させる。テンプレート名60Bとして、フラッシュROM43から読み出されてRAM42に記憶されたテンプレートデータ(テンプレートデータ[Tnum])に含まれるテンプレート名を表示させる。CPU41は、行番号60CとしてRnumを表示させる(S88)。CPU41は、オブジェクトデータ60Dとして、CSV[Rnum][ObjNum]を表示させる(S89)。
CPU41は、CSVファイルの編集を終了させるための操作が、入力部46を介して行われたか判断する(S90)。CPU41は、編集を終了させる操作が行われていないと判断した場合(S90:NO)、処理をS87に戻す。CPU41は、編集を終了させる操作が行われたと判断した場合(S90:YES)、印刷装置第2メイン処理を終了させる。
図10から図26を参照し、印刷装置4のCPU41によって実行される印刷装置第3メイン処理について説明する。印刷装置第3メイン処理は、CSVファイルの編集を開始させるための操作が、入力部46を介して行われた場合に、フラッシュROM43に記憶されたプログラムをCPU41が実行することによって開始される。
CPU41は、Tnum、Rnum、ObjNumに1を設定して初期化する(S21)。初期化の理由は、編集画面60の最初の画面(アイドル画面61、図5参照)において、テンプレート番号60A「01(=Tnum)」、行番号60C「00001(=Rnum)」、及び、オブジェクトデータ60D「CSV[1(=Rnum)][1(=ObjNum)]」を表示させるためである。
CPU41は、テンプレートデータ[Tnum]を取得し、且つ、テンプレートデータ[Tnum]のオブジェクト情報[0]〜[N−1]のそれぞれに対応するオブジェクトデータ(オブジェクト情報[0].オブジェクトデータ〜オブジェクト情報[N−1].オブジェクトデータ)をCSVファイルから取得するために、テンプレート切替処理(図11参照)を実行する(S23)。
図11を参照し、テンプレート切替処理を説明する。CPU41は、テンプレートデータ[Tnum]を取得するために、テンプレートロード処理(図12参照)を実行する(S31)。
図12を参照し、テンプレートロード処理を説明する。CPU41は、テンプレートデータ[Tnum]をフラッシュROM43から読出し、RAM42に記憶する(S41)。CPU41は、Rnum、ObjNumに1を設定して初期化する(S43)。初期化の理由は、Tnumが変更されてテンプレートデータが新たに読み出される場合(例えば、S141(図18参照)の処理によってテンプレート切替処理が実行される場合)、編集画面60のオブジェクトデータ60Dとして、CSV[1(=Rnum)][1(=ObjNum)]を常に表示させるためである。CPU41はテンプレートロード処理を終了させ、処理をテンプレート切替処理(図11参照)に戻す。
図11に示すように、CPU41は、S31によってテンプレートロード処理が実行された後、CSVファイルのレコード[Rnum]のデータのうち、テンプレートデータ[Tnum]のオブジェクト情報[0]〜[N−1]のそれぞれに含まれるフィールドIDに対応するオブジェクトデータを取得するために、DBロード処理(図13参照)を実行する(S35)。
図13を参照し、DBロード処理を説明する。CPU41は、ObjNumに1を設定して初期化する(S51)。CPU41は、フラッシュROM43に記憶されたCSVファイルを読出し、RAM42に記憶する(S53)。CPU41は、RAM42に記憶したCSVファイルのレコード[Rnum]を選択する(S55)。CPU41は、選択したレコード[Rnum]に基づいて、テンプレートデータ[Tnum]のオブジェクト情報[0]〜[N−1]のそれぞれのフィールドIDに対応するオブジェクトデータを決定するために、オブジェクトデータセット処理(図14参照)を実行する(S57)。
図14を参照し、オブジェクトデータセット処理を説明する。CPU41は、count1に0を設定する(S61)。CPU41は、テンプレートデータ[Tnum]のオブジェクト情報[0]〜[N−1]の数Nが、count1よりも大きいか判断する(S63)。CPU41は、オブジェクト情報[0]〜[N−1]の数Nがcount1よりも大きいと判断した場合(S63:YES)、オブジェクト情報[count1]にフィールドIDが含まれているか判断する(S65)。
CPU41は、フィールドIDが含まれていると判断した場合(S65:YES)、オブジェクト情報[count1]に対応するオブジェクトが結合オブジェクトであるかを判断するために、結合オブジェクトチェック処理(図15参照)を実行する(S67)。オブジェクトチェック処理の引数として、オブジェクト情報[count1]に含まれるオブジェクト名が設定される。
図15を参照し、結合オブジェクトチェック処理について説明する。CPU41は、引数のオブジェクト名の先頭及び末尾が「_」であるかを判断する(S81)。CPU41は、オブジェクト名の先頭及び末尾が「_」であると判断した場合(S81:YES)、オブジェクト名に対応するオブジェクトが結合オブジェクトであると判断する。CPU41は、結合オブジェクトであることを示すフラグ情報「0」をRAM42に記憶する(S83)。CPU41は、処理をオブジェクトデータセット処理(図14参照)に戻す。
CPU41は、オブジェクト名の先頭又は末尾が「_」でないと判断した場合(S81:NO)、オブジェクト名に対応するオブジェクトは結合オブジェクトでないと判断する。CPU41は、結合オブジェクトでないことを示すフラグ情報「−1」をRAM42に記憶する(S85)。CPU41は、処理をオブジェクトデータセット処理(図14参照)に戻す。
図14に示すように、CPU41は、結合オブジェクトチェック処理(S67)の後、RAM42に記憶されたフラグ情報に基づいて、オブジェクト情報[count1]に対応するオブジェクトが結合オブジェクトであるかを判断する(S71)。CPU41は、フラグ情報「0」が記憶されている場合、オブジェクト情報[count1]に対応するオブジェクトが結合オブジェクトであると判断する(S71:YES)。CPU41は、結合オブジェクトデータを生成するために、結合オブジェクト値セット処理(図16参照)を実行する(S73)。結合オブジェクト値セット処理の引数として、オブジェクト名が設定される。
図16を参照し、結合オブジェクト値セット処理を説明する。CPU41は、Resultに「0x00」を設定して初期化する(S91)。CPU41は、引数のオブジェクト名の文字コードをObjNameに設定する(S93)。CPU41は、ObjNameのうち、先頭及び末尾の「_」の文字コード「0x5F」を削除する(S95)。CPU41は、count2に「0」を設定する(S97)。CPU41は、ObjNameに含まれる文字コードの数が、count2よりも大きいか判断する(S99)。CPU41は、ObjNameに含まれる文字コードの数が、count2よりも大きいと判断した場合(S99:YES)、処理をS101に進める。
CPU41は、ObjNameのうちcount2番目の文字コード(以下、ObjName(count2)という。)を、Charに設定する(S101)。CPU41は、ObjName(count2)の文字コードと同じ文字コードが、「count2+1」番目以降に連続する場合、連続数を特定する。CPU41は、特定した連続数をDigitに設定する(S103)。CPU41は、Charから、「A」の文字コード「0x41」を減算する。CPU41は、減算結果を変数FiedNumに設定する(S105)。なお、FiedNumは、例えばCharが「A(0x41)」の場合に「0」、Charが「B(0x42)」の場合に「1」、Charが「C(0x43)」の場合に「2」となる。
CPU41は、CSV[Rnum][FiedNum]のオブジェクトデータを選択し、桁数がDigitと一致するように先頭に文字を追加する(S106)。例えば、CSV[Rnum][FiedNum]のオブジェクトデータが数字の場合、オブジェクトデータの先頭に「0」が追加される。CPU41は、Digitの桁数に調整されたオブジェクトデータを、Resultの末尾に追加する(S107)。CPU41は、count2にDigitを加算して更新する(S109)。CPU41は処理をS99に戻す。
処理が繰り返され、ObjNameに含まれる文字コードの数が、count2以下となった場合、オブジェクト名は全てチェックされたことになる。CPU41は、ObjNameに含まれる文字コードの数が、count2よりも大きくないと判断した場合(S99:NO)、結合オブジェクト値セット処理を終了させ、処理をオブジェクトデータセット処理(図14参照)に戻す。
図14に示すように、CPU41は、結合オブジェクト値セット処理(S73)の終了後、オブジェクト情報[count1].オブジェクトデータにResultを設定する(S75)。CPU41は処理をS79に進める。
CPU41は、フラグ情報「−1」が記憶されている場合、オブジェクト情報[count1]に対応するオブジェクトは結合オブジェクトでないと判断する(S71:NO)。この場合、CPU41は、CSV[Rnum][オブジェクト情報[count1]に含まれるフィールドID]を、オブジェクト情報[count1].オブジェクトデータとして設定する(S77)。CPU41は処理をS79に進める。
CPU41は、フィールドIDが含まれていないと判断した場合(S65:NO)、オブジェクト情報[count1]に含まれる初期値を、オブジェクト情報[count1].オブジェクトデータに設定する(S69)。CPU41は処理をS79に進める。
CPU41は、countに「1」加算して更新する(S79)。CPU41は処理をS63に戻す。
処理が繰り返され、オブジェクト情報の数が、count1以下となった場合、全てのオブジェクト情報[0]〜「N−1」に対して上記の処理が実行されたことになる。この場合、S69、S75、S77の処理によって、オブジェクト情報[0].オブジェクトデータ〜オブジェクト情報[N−1].オブジェクトデータのそれぞれに、CSVファイルの行番号Rnumのレコードから抽出されたオブジェクトデータが設定された状態になる。CPU41は、オブジェクト情報の数がcount1よりも大きくないと判断した場合(S63:NO)、オブジェクトデータセット処理を終了させ、処理をDBロード処理(図13参照)に戻す。図13に示すように、CPU41は、オブジェクトデータセット処理(S57)の終了後、処理をテンプレート切替処理(図11参照)に戻す。図11に示すように、CPU41は、DBロード処理(S35)の終了後、テンプレート切替処理を終了させ、処理を印刷装置第3メイン処理(図10参照)に戻す。
図10に示すように、CPU41は、テンプレート切替処理(S23)の終了後、状態情報にアイドル「0」を設定する(S25)。CPU41はメイン処理(図17参照)を実行する(S27)。
図17を参照し、メイン処理を説明する。メイン処理では、ユーザの操作に応じて編集画面60が切り替えられ、CSVファイルの編集が行われる。又、オブジェクト情報[0].オブジェクトデータ〜オブジェクト情報[N−1].オブジェクトデータに基づいて印刷処理が実行される。
CPU41は、状態情報にアイドル「0」が設定されているか判断する(S111)。CPU41は、状態情報にアイドル「0」が設定されていると判断した場合(S111:YES)、アイドル画面処理(図18参照)を実行する(S113)。アイドル画面処理の詳細は後述する。アイドル画面処理の終了後、CPU41は処理をS127に進める。
CPU41は、状態情報にレコード選択「1」が設定されていると判断した場合(S111:NO、S115:YES)、レコード選択画面処理(図19参照)を実行する(S117)。レコード画面処理の詳細は後述する。レコード画面処理の終了後、CPU41は処理をS127に進める。
CPU41は、状態情報にフィールド選択「2」が設定されていると判断した場合(S115:NO、S119:YES)、フィールド選択画面処理(図20参照)を実行する(S121)。フィールド画面処理の詳細は後述する。フィールド画面処理の終了後、CPU41は処理をS127に進める。
CPU41は、状態情報にオブジェクト編集「3」が設定されていると判断した場合(S119:NO、S123:YES)、オブジェクト編集画面処理(図21参照)を実行する(S125)。オブジェクト編集画面処理の詳細は後述する。オブジェクト編集画面処理の終了後、CPU41は処理をS127に進める。CPU41は、「0」〜「3」以外の値が状態情報に設定されていると判断した場合(S123:NO)、処理をS127に進める。
CPU41は、CSVファイルの編集を終了させるための操作が、入力部46を介して行われたか判断する(S127)。CPU41は、編集を終了させる操作が行われていないと判断した場合(S127:NO)、処理をS111に戻す。CPU41は、編集を終了させる操作が行われたと判断した場合(S127:YES)、処理を印刷装置第3メイン処理(図10参照)に戻す。図10に示すように、CPU41は、メイン処理(S27)の終了後、第3メイン処理を終了させる。
図18を参照し、アイドル画面処理を説明する。アイドル画面処理では、アイドル画面61(図5参照)が表示された状態でタッチ操作が行われた場合に、対応する処理が実行される。CPU41は、「DOWN」ボタンがタッチされたか判断する(S131)。CPU41は、「DOWN」ボタンがタッチされたと判断した場合(S131:YES)、Tnumに「1」加算する(S135)。CPU41は、Tnumの方が、フラッシュROM43に記憶されたテンプレートデータの総数よりも大きいか判断する(S137)。CPU41は、Tnumの方がテンプレートデータの総数よりも大きいと判断した場合(S137:YES)、Tnumがテンプレートデータの総数を超えないように、Tnumにテンプレートデータの総数を設定する(S139)。CPU41は処理をS141に進める。
CPU41は、「UP」ボタンがタッチされたか判断する(S131:NO、S143)。CPU41は、「UP」ボタンがタッチされたと判断した場合(S143:YES)、Tnumから「1」減算する(S145)。CPU41は、Tnumが「0」であるか判断する(S147)。CPU41は、Tnumが「0」であると判断した場合(S147:YES)、Tnumが常に「1」以上となるように、Tnumに「1」を設定する(S149)。CPU41は処理をS141に進める。CPU41は、Tnumが「0」でないと判断した場合(S147:NO)、処理をS141に進める。
CPU41は、更新後のTnumに基づいて、テンプレートデータ[Tnum]を取得し、且つ、テンプレートデータ[Tnum]のオブジェクト情報[0]〜[N−1]のそれぞれに対応するオブジェクトデータ(オブジェクト情報[0].オブジェクトデータ〜オブジェクト情報[N−1].オブジェクトデータ)をCSVファイルから取得するために、テンプレート切替処理(図11参照)を実行する(S141)。
テンプレート切替処理は、S23(図10参照)の処理によって実行されるテンプレート切替処理と同一であるので、詳細は省略する。テンプレート切替処理によって、更新後のTnumについてのテンプレートデータ[Tnum]がフラッシュROM43から読み出され、RAM42に記憶される。又、オブジェクト情報[0].オブジェクトデータ〜オブジェクト情報[N−1].オブジェクトデータのそれぞれに、CSVファイルのレコード[Rnum]から抽出されたオブジェクトデータが設定される。CPU41はアイドル画面処理を終了させ、処理をメイン処理(図17参照)に戻す。
CPU41は、「OK」ボタンがタッチされたか判断する(S143:NO、S151)。CPU41は、「OK」ボタンがタッチされたと判断した場合(S151:YES)、状態情報にレコード選択「1」を設定する(S153)。CPU41はアイドル画面処理を終了させ、処理をメイン処理(図17参照)に戻す。
CPU41は、「PRINT」ボタンがタッチされたか判断する(S151:NO、S155)。CPU41は、「PRINT」ボタンがタッチされたと判断した場合(S155:YES)、オブジェクト情報[0].オブジェクトデータ〜オブジェクト情報[N−1].オブジェクトデータのそれぞれを、対応するオブジェクト情報[0]〜[N−1]のそれぞれの種別に応じて、配置/サイズ/フォントに基づいて配置させた印刷イメージを生成する。このとき、例えば種別が「バーコード」のオブジェクトデータについては、対応するオブジェクトデータ(結合オブジェクトデータ)を示すバーコードが生成されて配置される。CPU41は、生成した印刷イメージをテープに印刷する(S157)。CPU41はアイドル画面処理を終了させ、処理をメイン処理(図17参照)に戻す。
CPU41は、「PRINT」ボタンがタッチされていないと判断した場合(S155:NO)、アイドル画面処理を終了させ、処理をメイン処理(図17参照)に戻す。
図19を参照し、レコード選択画面処理を説明する。レコード選択画面処理では、レコード選択画面62(図5参照)が表示された状態でタッチ操作が行われた場合に、対応する処理が実行される。CPU41は、「DOWN」ボタンがタッチされたか判断する(S161)。CPU41は、「DOWN」ボタンがタッチされたと判断した場合(S161:YES)、Rnumに「1」加算する(S165)。CPU41は、Rnumの方が、フラッシュROM43に記憶されたCSVファイルのレコード総数よりも大きいか判断する(S167)。CPU41は、Rnumの方がレコード総数よりも大きいと判断した場合(S167:YES)、Rnumがレコード総数を超えないように、Rnumにレコード総数を設定する(S169)。CPU41は処理をS171に進める。
CPU41は、「UP」ボタンがタッチされたか判断する(S161:NO、S173)。CPU41は、「UP」ボタンがタッチされたと判断した場合(S173:YES)、Rnumから「1」減算する(S175)。CPU41は、Rnumが「0」であるか判断する(S177)。CPU41は、Rnumが「0」であると判断した場合(S177:YES)、Rnumが常に「1」以上となるように、Rnumに「1」を設定する(S179)。CPU41は処理をS171に進める。CPU41は、Rnumが「0」でないと判断した場合(S177:NO)、処理をS171に進める。
CPU41は、CSVファイルのレコード[Rnum]のデータのうち、テンプレートデータ[Tnum]のオブジェクト情報[0]〜[N−1]のそれぞれに含まれるフィールドIDに対応するオブジェクトデータを取得するために、DBロード処理(図13参照)を実行する(S171)。
DBロード処理は、S35(図11参照)の処理によって実行されるDBロード処理と同一であるので、詳細は省略する。DBロード処理によって、オブジェクト情報[0].オブジェクトデータ〜オブジェクト情報[N−1].オブジェクトデータのそれぞれに、CSVファイルのレコード[Rnum]から抽出されたオブジェクトデータが設定される。CPU41は、DBロード処理の終了後、処理をメイン処理(図17参照)に戻す。
CPU41は、「OK」ボタンがタッチされたか判断する(S173:NO、S181)。CPU41は、「OK」ボタンがタッチされたと判断した場合(S181:YES)、状態情報にフィールド選択「2」を設定する(S183)。CPU41はレコード選択画面処理を終了させ、処理をメイン処理(図17参照)に戻す。
CPU41は、「BACK」ボタンがタッチされたか判断する(S181:NO、S189)。CPU41は、「BACK」ボタンがタッチされたと判断した場合(S189:YES)、状態情報にアイドル「0」を設定する(S191)。CPU41はレコード選択画面処理を終了させ、処理をメイン処理(図17参照)に戻す。
CPU41は、「PRINT」ボタンがタッチされたか判断する(S189:NO、S185)。CPU41は、「PRINT」ボタンがタッチされたと判断した場合(S185:YES)、オブジェクト情報[0].オブジェクトデータ〜オブジェクト情報[N−1].オブジェクトデータのそれぞれに基づいて印刷イメージを生成する。CPU41は、生成した印刷イメージをテープに印刷する(S187)。CPU41はレコード選択画面処理を終了させ、処理をメイン処理(図17参照)に戻す。
CPU41は、「PRINT」ボタンがタッチされていないと判断した場合(S185:NO)、レコード選択画面処理を終了させ、処理をメイン処理(図17参照)に戻す。
図20を参照し、フィールド選択画面処理を説明する。フィールド画面処理では、フィールド選択画面63(図5参照)が表示された状態でタッチ操作が行われた場合に、対応する処理が実行される。CPU41は、「DOWN」ボタンがタッチされたか判断する(S201)。CPU41は、「DOWN」ボタンがタッチされたと判断した場合(S201:YES)、ObjNumに「1」加算する(S205)。CPU41は、ObjNumの方が、CSVファイルのフィールド総数よりも大きいか判断する(S207)。CPU41は、ObjNumの方がフィールド総数よりも大きいと判断した場合(S207:YES)、ObjNumがフィールド総数を超えないように、ObjNumにフィールド総数を設定する(S209)。CPU41はフィールド選択画面処理を終了させ、処理をメイン処理(図17参照)に戻す。CPU41は、ObjNumの方がフィールド総数よりも大きくないと判断した場合(S207:NO)、フィールド選択画面処理を終了させ、処理をメイン処理(図17参照)に戻す。
CPU41は、「UP」ボタンがタッチされたか判断する(S201:NO、S213)。CPU41は、「UP」ボタンがタッチされたと判断した場合(S213:YES)、ObjNumから「1」減算する(S215)。CPU41は、ObjNumが0であるか判断する(S217)。CPU41は、ObjNumが「0」であると判断した場合(S217:YES)、ObjNumが常に「1」以上となるように、ObjNumに「1」を設定する(S219)。CPU41はフィールド選択画面処理を終了させ、処理をメイン処理(図17参照)に戻す。CPU41は、ObjNumが「0」でないと判断した場合(S217:NO)、フィールド選択画面処理を終了させ、処理をメイン処理(図17参照)に戻す。
CPU41は、「OK」ボタンがタッチされたか判断する(S213:NO、S221)。CPU41は、「OK」ボタンがタッチされたと判断した場合(S221:YES)、CSV[Rnum][ObjNum]のオブジェクトデータを、TempValueに設定する(S222)。なお、CSV[Rnum][ObjNum]のオブジェクトデータを、TempValueに設定する理由は、後述のオブジェクト編集画面処理(図21参照)において、入力操作が実行されないまま「OK」ボタンがタッチされた場合に、TempValueに値が設定されていないことを防止するためである。CPU41は、状態情報にオブジェクト編集選択「3」を設定する(S223)。CPU41はフィールド選択画面処理を終了させ、処理をメイン処理(図17参照)に戻す。
CPU41は、「BACK」ボタンがタッチされたか判断する(S221:NO、S229)。CPU41は、「BACK」ボタンがタッチされたと判断した場合(S229:YES)、状態情報にレコード選択「1」を設定する(S231)。CPU41はフィールド選択画面処理を終了させ、処理をメイン処理(図17参照)に戻す。
CPU41は、「PRINT」ボタンがタッチされたか判断する(S229:NO、S225)。CPU41は、「PRINT」ボタンがタッチされたと判断した場合(S225:YES)、オブジェクト情報[0].オブジェクトデータ〜オブジェクト情報[N−1].オブジェクトデータのそれぞれに基づいて印刷イメージを生成する。CPU41は、生成した印刷イメージをテープに印刷する(S227)。CPU41はフィールド選択画面処理を終了させ、処理をメイン処理(図17参照)に戻す。
CPU41は、「PRINT」ボタンがタッチされていないと判断した場合(S225:NO)、フィールド選択画面処理を終了させ、処理をメイン処理(図17参照)に戻す。
図21を参照し、オブジェクト編集画面処理について説明する。オブジェクト編集画面処理では、オブジェクト編集画面64(図5参照)が表示された状態でタッチ操作が行われた場合に、対応する処理が実行される。CPU41は、テンキーボタンがタッチされたか判断する(S232)。CPU41は、テンキーボタンがタッチされたと判断した場合(S232:YES)、タッチされたテンキーボタンに基づいて、入力された値を特定する。CPU41は入力された値を、TempValueに設定する(S233)。CPU41はオブジェクト編集画面処理を終了させ、処理をメイン処理(図17参照)に戻す。
CPU41は、「OK」ボタンがタッチされたか判断する(S232:NO、S235)。CPU41は「OK」ボタンがタッチされたと判断した場合(S235:YES)、TempValueに設定された値に基づいて、CSV[Rnum][ObjNum]を編集するデータ編集処理(図22参照)を実行する(S237)。
図22を参照し、データ編集処理を説明する。CPU41は、CSV[Rnum][ObjNum]を、入力されたTempValueに変更する(S250)。CPU41は、テンプレートデータ[Tnum]のオブジェクト情報[0]〜[N−1]の何れかに、ObjNumと同じフィールドIDが含まれているか判断する。CPU41は、ObjNumと同じフィールドIDが含まれている場合、対応するオブジェクトが結合オブジェクトであるかを、オブジェクト名に基づいて判断するために、結合オブジェクトチェック処理(図15参照)を実行する(S251)。結合オブジェクトチェック処理の引数として、ObjNumと同じフィールドIDが含まれているオブジェクト情報のオブジェクト名が設定される。
なお、テンプレートデータ[Tnum]に含まれるオブジェクト情報[0]〜[N−1]の何れにもObjNumと同じフィールドIDが含まれていない場合、CPU41は、結合オブジェクトチェック処理の引数として、「0」を設定する。
結合オブジェクトチェック処理は、S67(図14参照)の処理によって実行される結合オブジェクトチェック処理と同一であるので、説明を省略する。結合オブジェクトチェック処理によって結合オブジェクトであると判断された場合、RAM42のフラグ情報に「0」が記憶され、結合オブジェクトでないと判断された場合、RAM42のフラグ情報に「−1」が記憶される。なお、結合オブジェクトチェック処理の引数として「0」が設定された場合、結合オブジェクトチェック処理によって、RAM42のフラグ情報に「−1」が記憶される。
CPU41は、結合オブジェクトチェック処理(S251)の後、RAM42に記憶されたフラグ情報に基づいて、結合オブジェクトであるかを判断する(S253)。結合オブジェクトである場合、TempValueに基づいてS250の処理によって変更されたCSV[Rnum][ObjNum]は、結合オブジェクトデータであることになる。この場合、結合オブジェクトデータの基になる単体オブジェクトデータも併せて編集する必要がある。CPU41は、結合オブジェクトであると判断した場合(S253:YES)、結合オブジェクトデータの基となる単体オブジェクトデータを編集するために、結合オブジェクト編集処理(図23参照)を実行する(S255)。結合オブジェクト編集処理の引数として、ObjNumと同じフィールドIDが含まれているオブジェクト情報のオブジェクト名が設定される。
図23を参照し、結合オブジェクト編集処理を説明する。CPU41は、引数のオブジェクト名の文字コードを、ObjNameに設定する(S273)。CPU41は、ObjNameのうち、先頭及び末尾の「_」の文字コード「0x5F」を削除する(S275)。CPU41は、count3に「0」を設定する(S277)。CPU41は、ObjNameに含まれる文字コードの数が、count3よりも大きいか判断する(S279)。CPU41は、ObjNameに含まれる文字コードの数が、count3よりも大きいと判断した場合(S279:YES)、処理をS281に進める。
CPU41は、ObjNameの文字コードのうちcount3番目の文字コード(以下、ObjName(count3)という。)を、Charに設定する(S281)。CPU41は、ObjName(count3)の文字コードと同じ文字コードが、「count3+1」番目以降に連続する場合、連続数を特定する。CPU41は、特定した連続数をDigitに設定する(S283)。CPU41は、Charから「A」の文字コード「0x41」を減算する。CPU41は、減算結果をFiedNumに設定する(S285)。
CPU41は、TempValueのうちcount3番目の文字コードからDigit数分の文字コードを抽出する。CPU41は、抽出した文字コードをfvalに設定する(S289)。CPU41は、結合オブジェクトデータの基になる単体オブジェクトデータをfvalによって編集するために、指定フィールド置換処理(図24参照)を実行する(S291)。
図24を参照し、指定フィールド置換処理を説明する。CPU41は、count4に「0」を設定する(S301)。CPU41は、テンプレートデータ[Tnum]に含まれるオブジェクト情報[0]〜[N−1]の数Nが、count4よりも大きいか判断する(S303)。CPU41は、オブジェクト情報[0]〜[N−1]の数Nがcount4よりも大きいと判断した場合(S303:YES)、オブジェクト情報[count4]のフィールドIDがFiedNumと同一か判断する(S305)。オブジェクト情報[count4]のフィールドIDがFiedNumと同一である場合、オブジェクト情報[count4]に対応するオブジェクトは、結合オブジェクトの基となる単体オブジェクトであることになる。CPU41は、オブジェクト情報[count4]のフィールドIDがFiedNumと同一であると判断した場合(S305:YES)、オブジェクト情報[count4].オブジェクトデータにfvalを設定する(S307)。これによって、結合オブジェクトデータの基となる単体オブジェクトデータが、結合オブジェクトデータの変更に伴い、同様の方法で変更されたことになる。CPU41は、CSV[Rnum][FiedNum]にfvalを設定する(S308)。CPU41は処理をS309に進める。CPU41は、オブジェクト情報[count4]のフィールドIDがFiedNumと同一でないと判断した場合(S305:NO)、処理をS309に進める。
CPU41は、count4に「1」加算して更新する(S309)。CPU41は処理をS303に戻す。CPU41は、オブジェクト情報の数がcount4よりも大きくないと判断した場合(S303:NO)、オブジェクト情報[0]〜[N−1]の全てに対して上記の処理が実行されたことになる。即ち、結合オブジェクトデータの基となる複数の単体オブジェクトデータのうち、結合オブジェクトデータの変更に伴って変更が必要な単体オブジェクトデータは、全て変更されたことになる。CPU41は指定フィールド置換処理を終了させ、処理を結合オブジェクト編集処理(図23参照)に戻す。
図23に示すように、CPU41は、指定フィールド置換処理(S291)の終了後、count3にDigitを加算して更新する(S293)。CPU41は処理をS279に戻す。
処理が繰り返され、ObjNameに含まれる文字コードの数が、count3以下になった場合、オブジェクト名の全てに対して上記の処理が実行されたことになる。CPU41は、ObjNameに含まれる文字コードの数が、count3よりも大きくないと判断した場合(S279:NO)、ObjNumと同じフィールドIDが含まれているオブジェクト情報[]にTempValueを関連付けてRAM42に記憶する。即ち、オブジェクト情報[(ObjNumと同じフィールドIDが含まれているオブジェクト情報のインデックス)].オブジェクトデータに、TempValueを設定する(S295)。CPU41は結合オブジェクト編集処理を終了させ、処理をデータ編集処理(図22参照)に戻す。図22に示すように、CPU41は、データ編集処理(S255)の終了後、処理をオブジェクト編集画面処理(図21参照)に戻す。
一方、結合オブジェクトチェック処理(S251)によって結合オブジェクトでないと判断された場合、編集対象のCSV[Rnum][ObjNum]は単体オブジェクトデータであることになる。この場合、編集対象のCSV[Rnum][ObjNum]に基づいて生成される結合オブジェクトデータがある場合には、結合オブジェクトデータを併せて編集する必要がある。CPU41は、結合オブジェクトでないと判断した場合(S253:NO)、結合オブジェクトデータを併せて編集するために、結合オブジェクト検索置換処理(図25参照)を実行する(S259)。
図25を参照し、結合オブジェクト検索置換処理を説明する。CPU41は、count5に「0」を設定して初期化する(S311)。CPU41は、テンプレートデータ[Tnum]に含まれるオブジェクト情報[0]〜[N−1]の数Nが、count5よりも大きいか判断する(S313)。CPU41は、オブジェクト情報[0]〜[N−1]の数Nがcount5よりも大きいと判断した場合(S313:YES)、オブジェクト情報[count5]に対応するオブジェクトが結合オブジェクトであるかを、オブジェクト名に基づいて判断するために、結合オブジェクトチェック処理(図15参照)を実行する(S315)。結合オブジェクトチェック処理の引数として、オブジェクト情報[count5]に含まれるオブジェクト名が設定される。結合オブジェクトチェック処理は、S67(図14参照)の処理によって実行される結合オブジェクトチェック処理と同一であるので、説明を省略する。
CPU41は、結合オブジェクトチェック処理(S315)の後、RAM42に記憶されたフラグ情報に基づいて、結合オブジェクトであるかを判断する(S317)。CPU41は、結合オブジェクトでないと判断した場合(S317:NO)、処理をS321に進める。
一方、オブジェクト情報[count5]に対応するオブジェクトが結合オブジェクトである場合、結合オブジェクトデータの基となる複数の単体オブジェクトデータの中に、CSV[Rnum][ObjNum]が含まれている可能性がある。この場合、TempValueによってCSV[Rnum][ObjNum]が変更されることに応じて、結合オブジェクトデータを併せて編集する必要がある。CPU41は、結合オブジェクトであると判断した場合(S317:YES)、必要に応じて結合オブジェクトデータを編集するために、結合オブジェクト値置換処理(図26参照)を実行する(S319)。結合オブジェクト値置換処理の引数として、オブジェクト情報[count5]に含まれるオブジェクト名、及び、オブジェクト情報[count5]に含まれるフィールドIDが設定される。
図26を参照し、結合オブジェクト値置換処理を説明する。CPU41は、引数のオブジェクト名の文字コードをObjNameに設定する(S333)。CPU41は、引数のフィールドIDをFnumに設定する(S334)。CPU41は、ObjNameのうち、先頭及び末尾の「_」の文字コード「0x5F」を削除する(S335)。CPU41は、変数count6に「0」を設定する(S337)。CPU41は、ObjNameに含まれる文字コードの数が、count6よりも大きいか判断する(S339)。CPU41は、ObjNameに含まれる文字コードの数が、count6よりも大きいと判断した場合(S339:YES)、処理をS341に進める。
CPU41は、ObjNameの文字コードのうちcount6番目の文字コード(以下、ObjName(count6)という。)を、Charに設定する(S341)。CPU41は、ObjName(count6)の文字コードと同じ文字コードが、「count6+1」番目以降に連続する場合、連続数を特定する。CPU41は、特定した連続数をDigitに設定する(S343)。CPU41は、Charから、「A」の文字コード「0x41」を減算する。CPU41は、減算結果をFiedNumに設定する(S345)。
CPU41は、FiedNumとFnumとが一致するか判断する(S347)。FiedNumとFnumとが一致する場合、オブジェクト情報[count5]に対応する結合オブジェクトデータを、基となる単体オブジェクトデータをTempValueに変更したことに応じて変更する必要があるということになる。CPU41は、FiedNumとFnumとが一致すると判断した場合(S347:YES)、オブジェクト情報[count5].オブジェクトデータのうち、count6番目の文字コードからDigit桁分の値として、TempValueを格納する(S349)。CPU41は、CSV[Rnum][Fnum]のうち、count6番目の文字コードからDigit桁分の値として、TempValueを格納する(S350)。CPU41は処理をS353に進める。CPU41は、FiedNumとFnumとが一致しないと判断した場合(S347:NO)、処理をS353に進める。
CPU41は、count6にDigitを加算して更新する(S353)。CPU41は処理をS339に戻す。処理が繰り返され、ObjNameに含まれる文字コードの数が、count6以下となった場合、オブジェクト名の全てに対して上記の処理が実行されたことになる。CPU41は、ObjNameに含まれる文字コードの数が、count6よりも大きくないと判断した場合(S339:NO)、結合オブジェクト値置換処理を終了させ、処理を結合オブジェクト検索置換処理(図25参照)に戻す。図25に示すように、結合オブジェクト値置換処理(S319)の後、処理をS321に進める。
CPU41は、count5に「1」加算して更新する(S321)。CPU41は処理をS313に戻す。処理が繰り返され、オブジェクト情報[0]〜[N−1]の数Nがcount5以下となった場合、オブジェクト情報[0]〜[n−1]の全てについて上記の処理が実行されたことになる。CPU41は、オブジェクト情報[0]〜[N−1]の数Nがcount5よりも大きくないと判断した場合(S313:NO)、結合オブジェクト検索置換処理を終了させ、処理をデータ編集処理(図22参照)に戻す。図22に示すように、CPU41は、結合オブジェクト検索置換処理(S259)の終了後、データ編集処理を終了させ、処理をオブジェクト編集画面処理(図21参照)に戻す。
図21に示すように、CPU41は、データ編集処理(S237)の終了後、状態情報にフィールド選択「2」を設定する(S239)。CPU41はオブジェクト編集画面処理を終了させ、処理をメイン処理(図17参照)に戻す。
CPU41は、「BACK」ボタンがタッチされたか判断する(S235:NO、S241)。CPU41は、「BACK」ボタンがタッチされたと判断した場合(S241:YES)、状態情報にフィールド選択「2」を設定する(S239)。CPU41はオブジェクト編集画面処理を終了させ、処理をメイン処理(図17参照)に戻す。CPU41は、「BACK」ボタンがタッチされていないと判断した場合(S241:NO)、オブジェクト編集画面処理を終了させ、処理をメイン処理(図17参照)に戻す。
以上説明したように、印刷装置4のCPU41は、前後に「_」を有するオブジェクト名である場合に、対応するオブジェクトのオブジェクトデータが結合オブジェクトであると判断する。CPU41は、CSVファイルの複数の単体オブジェクトデータから2以上の単体オブジェクトデータを選択する(S106)。CPU41は、選択した2以上のオブジェクトデータを結合して結合オブジェクトデータを生成する(S107)。このため、CPU41は、オブジェクト名に基づいて結合オブジェクトデータを生成できる。CPU41は、生成した結合オブジェクトデータに基づいて印刷イメージの印刷を行うことができる(S157、S187、S227)。従って、CPU41は、ユーザの設定操作を要せずに結合オブジェクトデータに基づいた印刷を容易に行うことができる。
結合オブジェクトデータの基になる複数の単体オブジェクトデータの少なくとも何れかが変更される場合がある(S250)。この場合、CPU41は、結合オブジェクトデータのうち変更された単体オブジェクトデータに対応する部分を、同じ変更方法で変更し、結合オブジェクトデータを変更する(S349)。これによって、ユーザが単体オブジェクトデータを変更した場合に、結合オブジェクトデータを併せて変更する手間を省略できる。従って、ユーザは、単体オブジェクトデータ及び結合オブジェクトデータの変更を簡易に実行できる。
結合オブジェクトデータが変更される場合がある(S250)。この場合、CPU41は、変更された結合オブジェクトデータの基となる単体オブジェクトデータについて、同じ変更方法で変更できる(S307)。これによって、ユーザが結合オブジェクトデータを変更した場合に、結合オブジェクトの基となる単体オブジェクトデータを併せて変更する手間を省略できる。従って、ユーザは、単体オブジェクトデータ及び結合オブジェクトデータの変更を簡易に実行できる。
CPU41は、オブジェクト名の先頭及び末尾に「_」が含まれているか否かに応じて、オブジェクト名に対応するオブジェクトが単体オブジェクトか結合オブジェクトかを判断する(S81)。この場合、CPU41は、結合オブジェクトのオブジェクト名であるかを容易に判別できる。
結合オブジェクトのオブジェクト名では、結合オブジェクトデータの基となる単体オブジェクトデータが格納されるフィールドのフィールドID「A」「B」・・が順番に並べられる。CPU41は、フィールドIDに対応するフィールドの単体オブジェクトを、フィールドIDの順番に結合することによって、結合オブジェクトデータを生成できる。このためCPU41は、オブジェクト名に含まれるフィールドID及びその順序に基づいて、結合オブジェクトデータを容易に生成できる。
CPU41は、フィールドID「E」の結合オブジェクトデータに基づいて、バーコードを作成し、バーコードを含む印刷イメージを印刷することができる。印刷装置は、複数の単体オブジェクトデータのうちオブジェクト名に基づいて選択された2以上の選択オブジェクトデータを示すバーコードを、結合オブジェクトデータに基づいて印刷媒体に印刷できる。
本発明は上記実施形態に限定されず、種々の変更が可能である。上記実施形態における、結合オブジェクトのオブジェクト名であることを判定するために先頭及び末尾に付される「_」は、他の所定のコードであってもよい。又、先頭又は末尾にのみ所定のコードが付されてもよい。又、オブジェクト名の先頭及び末尾を除く何れかの部分に所定のコードが含まれていてもよい。
所定のコードを付す以外の方法で、結合オブジェクトのオブジェクト名であることが示されてもよい。例えば、所定数(例えば10)以上連続した任意のコードをオブジェクト名に含めることによって、結合オブジェクトデータであることが示されてもよい。
上記実施形態では、オブジェクト名に含まれるフィールドIDの連続数に応じて、結合オブジェクトデータの基となる単体オブジェクトデータの桁数が決定された。単体オブジェクトデータの桁数は、数字で示されてもよい。例えば、上記実施形態におけるオブジェクト名「_AABBBBBCCCCC_」は、「_A2B5C5_」で示されてもよい。なお、オブジェクト名に含まれる数字は、直前のフィールドIDの単体オブジェクトデータの桁数を示している。上記のオブジェクト名の場合、フィールドID「A」の単体オブジェクトデータが2桁、フィールドID「B」の単体オブジェクトデータが5桁、及び、フィールドID「C」の単体オブジェクトデータが5桁であることを示している。
オブジェクト名に「#」が含まれている場合、結合オブジェクトデータのうち対応する位置にチェックディジットが付加されてもよい。
上記実施形態では、PC5から印刷装置4に対して送信されるCSVファイルに結合オブジェクトデータ(例えば、図2におけるフィールドID「E」の結合オブジェクトデータ)が含まれていた。これに対して、PC5は、結合オブジェクトデータが含まれないCSVファイルを、印刷装置4に送信してもよい。印刷装置4のCPU41は、オブジェクト情報のオブジェクト名に基づき、上記の方法によって結合オブジェクトであるかを判断してもよい。CPU41は、結合オブジェクトであると判断した場合、基となる複数の単体オブジェクトデータを結合して結合オブジェクトデータを生成してもよい。CPU41は、生成した結合オブジェクトデータを、対応するオブジェクト情報に含まれるフィールドIDの結合オブジェクトデータとして、CSVファイルに新たに格納してもよい。
S11の処理を行うCPU41は本発明の「受信手段」の一例である。S41、S53の処理を行うCPU41は本発明の「第1記憶手段」の一例である。S81の処理を行うCPU41は本発明の「第1選択手段」の一例である。S106の処理を行うCPU41は本発明の「第2選択手段」の一例である。S106の処理によって選択された単体オブジェクトデータを、「選択オブジェクトデータ」という。S107の処理を行うCPU41は本発明の「生成手段」の一例である。S107の処理によって生成された結合オブジェクトデータの基となる複数の単体オブジェクトデータを、「設定オブジェクトデータ」という。S75の処理を行うCPU41は本発明の「第2記憶手段」の一例である。S157、S187、S227の処理を行うCPU41は本発明の「印刷手段」の一例である。S250の処理を行うCPU41は本発明の「第1変更手段」「第3変更手段」の一例である。S349の処理を行うCPU41は本発明の「第2変更手段」の一例である。S307の処理を行うCPU41は本発明の「第4変更手段」の一例である。