(57)【要約】【課題】利便性を向上することのできる禁則関係検出装置および禁則関係検出装置の制御プログラムを提供する。【解決手段】禁則関係検出装置としての端末装置２は、ジョブの条件に関する設定値の変更を受け付けた場合に、禁則関係の有無を検出する。端末装置２は、端末装置２において設定値の入力を受け付ける複数の設定項目を、複数の分解テーブルに分類するＰＪＬ（Ｐｒｉｎｔｅｒ  Ｊｏｂ  Ｌａｎｇｕａｇｅ）インデックステーブル１０５１と、端末装置２において入力を受け付ける設定値と、端末装置２において入力を受け付ける設定値を、ＰＪＬで示したＰＪＬ値との関係を示す複数の分解ＰＪＬテーブル１０５２と、端末装置２において入力を受け付ける設定値の組合せであって、禁則関係となる設定値の組合せを示す分解ＰＪＬテーブル間禁則テーブルとに基づいて、禁則関係の有無を検出する。【選択図】図２３
2018010354.tif 000002
【特許請求の範囲】
【請求項１】
ジョブを実行する装置において同時に適用することが禁止されている関係であって、前記ジョブの条件に関する複数の設定値の関係である禁則関係を検出する禁則関係検出装置であって、
前記禁則関係検出装置において設定値の入力を受け付ける複数の設定項目を、複数の分解テーブルに分類するインデックステーブルを記憶する第１の記憶手段と、
前記禁則関係検出装置において入力を受け付ける設定値と、前記禁則関係検出装置において入力を受け付ける設定値を、前記ジョブを実行する装置側で使用される言語で示したジョブ言語設定値との関係を示す前記複数の分解テーブルを記憶する第２の記憶手段と、
前記禁則関係検出装置において入力を受け付ける設定値の組合せであって、禁則関係となる設定値の組合せを示す禁則テーブルを記憶する第３の記憶手段と、
前記ジョブの条件に関する設定値の変更を受け付ける受付手段と、
前記受付手段にて変更を受け付けた場合に、前記インデックステーブル、前記分解テーブル、および前記禁則テーブルに基づいて、前記受付手段にて変更を受け付けた設定値と、前記禁則関係検出装置において設定されている他の設定値との禁則関係の有無を検出する検出手段とを備えた、禁則関係検出装置。
【請求項２】
禁則関係となる設定値の前記ジョブ言語設定値が、複数の固定値の中から値が選択される固定値選択型である場合、前記禁則テーブルは、禁則関係となる設定値に関する分解テーブルを特定する情報である分解テーブルＩＤと、前記分解テーブルにおける禁則関係となる設定値に対応する分解テーブル内インデックスとを含む、請求項１に記載の禁則関係検出装置。
【請求項３】
前記検出手段は、
前記受付手段にて変更を受け付けた設定値が、前記固定値選択型である場合に、前記インデックステーブルに基づいて、前記受付手段にて変更を受け付けた設定値に関する前記分解テーブルＩＤおよび前記分解テーブル内インデックスを特定する第１の特定手段と、
前記第１の特定手段にて特定した前記分解テーブルＩＤおよび前記分解テーブル内インデックスと禁則関係を有する前記分解テーブル内インデックスおよび設定値を前記禁則テーブルから抽出する第１の抽出手段と、
前記第１の抽出手段にて抽出した分解テーブル内インデックスおよび設定値と前記他の設定値とを比較することにより、禁則関係の有無を検出する第１の比較検出手段とを含む、請求項２に記載の禁則関係検出装置。
【請求項４】
禁則関係となる設定値の前記ジョブ言語設定値が、数値または文字列である可変型である場合、前記禁則テーブルは、禁則関係となる設定値に関する分解テーブルを特定する情報である分解テーブルＩＤと、前記分解テーブルにおける禁則関係となる設定値に対応する分解テーブル内インデックスと、禁則関係となる設定値の前記ジョブ言語設定値とを含む、請求項１〜３のいずれかに記載の禁則関係検出装置。
【請求項５】
前記検出手段は、
前記受付手段にて変更を受け付けた設定値が、前記可変型である場合に、前記インデックステーブルに基づいて、前記受付手段にて変更を受け付けた設定値に関する前記分解テーブルＩＤおよび前記分解テーブル内インデックスを特定する第２の特定手段と、
前記第２の特定手段にて特定した前記分解テーブルＩＤおよび前記分解テーブル内インデックスに基づいて、前記受付手段にて変更を受け付けた設定値を前記ジョブ言語設定値に変換する変換手段と、
前記第２の特定手段にて特定した前記分解テーブルＩＤおよび前記分解テーブル内インデックス、ならびに前記変換手段にて変換した前記ジョブ言語設定値と禁則関係を有する前記分解テーブル内インデックスおよび設定値を前記禁則テーブルから抽出する第２の抽出手段と、
前記第２の抽出手段にて抽出した分解テーブル内インデックスおよび設定値と前記他の設定値とを比較することにより、禁則関係の有無を検出する第２の比較検出手段とを含む、請求項４に記載の禁則関係検出装置。
【請求項６】
前記ジョブを実行する装置から禁則関係の情報を取得する取得手段と、
前記取得手段にて取得した情報と、前記分解テーブルとに基づいて、前記禁則テーブルを生成する生成手段とをさらに備えた、請求項１〜５のいずれかに記載の禁則関係検出装置。
【請求項７】
前記生成手段は、前記受付手段にて変更を受け付ける前に前記禁則テーブルを生成する、請求項６に記載の禁則関係検出装置。
【請求項８】
前記生成手段は、前記受付手段にて変更を受け付けた後で前記禁則テーブルを生成する、請求項６に記載の禁則関係検出装置。
【請求項９】
前記禁則関係検出装置において設定値の入力を受け付ける複数の設定項目の各々の優先度を記載した優先度辞書テーブルと、前記禁則関係検出装置において設定値の入力を受け付ける複数の設定項目の各々の属性を記載した属性テーブルと、コントロールタイプに応じた禁則関係を回避するための処理を記載した禁則処理テーブルとに基づいて、禁則関係を回避するための条件を規定した禁則回避条件式を生成する式生成手段と、
前記検出手段にて禁則関係を検出した場合に、前記禁則回避条件式に従って前記禁則関係検出装置においておいて設定されている設定値を変更することにより、禁則関係を回避する回避手段とをさらに備えた、請求項１〜８のいずれかに記載の禁則関係検出装置。
【請求項１０】
ジョブを実行する装置において同時に適用することが禁止されている関係であって、前記ジョブの条件に関する複数の設定値の関係である禁則関係を検出する禁則関係検出装置の制御プログラムであって、
前記禁則関係検出装置は、
前記禁則関係検出装置において設定値の入力を受け付ける複数の設定項目を、複数の分解テーブルに分類するインデックステーブルを記憶する第１の記憶手段と、
前記禁則関係検出装置において入力を受け付ける設定値と、前記ジョブを実行する装置側で使用される言語で示したジョブ言語設定値との関係を示す前記複数の分解テーブルを記憶する第２の記憶手段と、
前記禁則関係検出装置において入力を受け付ける設定値の組合せであって、禁則関係となる設定値の組合せを示す禁則テーブルを記憶する第３の記憶手段とを備え、
前記制御プログラムは、
前記ジョブの条件に関する設定値の変更を受け付ける受付ステップと、
前記受付ステップにて変更を受け付けた場合に、前記インデックステーブル、前記分解テーブル、および前記禁則テーブルに基づいて、前記受付ステップにて変更を受け付けた設定値と、前記禁則関係検出装置において設定されている他の設定値との禁則関係の有無を検出する検出手段とをコンピューターに実行させる、禁則関係検出装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、禁則関係検出装置および禁則関係検出装置の制御プログラムに関する。より特定的には、本発明は、利便性を向上することのできる禁則関係検出装置および禁則関係検出装置の制御プログラムに関する。
【背景技術】
【０００２】
電子写真式の画像形成装置には、スキャナー機能、ファクシミリ機能、複写機能、プリンターとしての機能、データ通信機能、およびサーバー機能を備えたＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）、ファクシミリ装置、複写機、プリンターなどがある。
【０００３】
画像形成装置の性能が向上することに伴い、画像形成装置に処理を実行させる際に設定すべき項目が増加している。また、１つの項目について設定できる値の範囲または選択肢が増加している。
【０００４】
これらの増加に伴い、ジョブに関する条件として、ある値を一方の項目に設定し、ある値を他方の項目に設定することが禁止されることがある。３つ以上の設定について、特定の値を設定することが禁止されることもある。設定が禁止される値の関係は禁則関係と呼ばれている。
【０００５】
下記特許文献１には、禁則関係に関する技術が開示されている。この技術では、画像形成装置は、設定変更中の機能と禁則関係にある機能を判断し、禁則関係の機能がある場合は、警告エラーと共に禁則関係となっている機能を表示することで、ユーザーに禁則関係の機能があることを示してその解決を促す。そして、禁則関係が解決されたなら、その設定を印刷に適用する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１４−２３２５０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来において、画像形成装置で実行するジョブの設定を端末装置において行う構成では、端末装置は、画像形成装置の禁則仕様（エンジン禁則表）に基づいてドライバの禁則表を生成し、ドライバの禁則表に基づいてジョブに含まれる設定値の禁則関係の有無を検出していた。
【０００８】
しかし、画像形成装置の禁則仕様は通常、ＰＪＬ（Ｐｒｉｎｔｅｒ  Ｊｏｂ  Ｌａｎｇｕａｇｅ）などの画像形成装置側で使用する言語で規定されているため、従来の構成では、端末装置は、ジョブに含まれる設定値をそのような言語に変換した後（ＰＪＬ生成処理の後）で禁則関係の検出を行う必要があった。このため、ジョブの設定を行ってから禁則関係を検出するまでに時間を要し、ジョブの設定を行うユーザーの利便性が低かった。
【０００９】
本発明は、上記課題を解決するためのものであり、その目的は、利便性を向上することのできる禁則関係検出装置および禁則関係検出装置の制御プログラムを提供することである。
【課題を解決するための手段】
【００１０】
本発明の一の局面に従う禁則関係検出装置は、ジョブを実行する装置において同時に適用することが禁止されている関係であって、ジョブの条件に関する複数の設定値の関係である禁則関係を検出する禁則関係検出装置であって、禁則関係検出装置において設定値の入力を受け付ける複数の設定項目を、複数の分解テーブルに分類するインデックステーブルを記憶する第１の記憶手段と、禁則関係検出装置において入力を受け付ける設定値と、禁則関係検出装置において入力を受け付ける設定値を、ジョブを実行する装置側で使用される言語で示したジョブ言語設定値との関係を示す複数の分解テーブルを記憶する第２の記憶手段と、禁則関係検出装置において入力を受け付ける設定値の組合せであって、禁則関係となる設定値の組合せを示す禁則テーブルを記憶する第３の記憶手段と、ジョブの条件に関する設定値の変更を受け付ける受付手段と、受付手段にて変更を受け付けた場合に、インデックステーブル、分解テーブル、および禁則テーブルに基づいて、受付手段にて変更を受け付けた設定値と、禁則関係検出装置において設定されている他の設定値との禁則関係の有無を検出する検出手段とを備える。
【００１１】
上記禁則関係検出装置において好ましくは、禁則関係となる設定値のジョブ言語設定値が、複数の固定値の中から値が選択される固定値選択型である場合、禁則テーブルは、禁則関係となる設定値に関する分解テーブルを特定する情報である分解テーブルＩＤと、分解テーブルにおける禁則関係となる設定値に対応する分解テーブル内インデックスとを含む。
【００１２】
上記禁則関係検出装置において好ましくは、検出手段は、受付手段にて変更を受け付けた設定値が、固定値選択型である場合に、インデックステーブルに基づいて、受付手段にて変更を受け付けた設定値に関する分解テーブルＩＤおよび分解テーブル内インデックスを特定する第１の特定手段と、第１の特定手段にて特定した分解テーブルＩＤおよび分解テーブル内インデックスと禁則関係を有する分解テーブル内インデックスおよび設定値を禁則テーブルから抽出する第１の抽出手段と、第１の抽出手段にて抽出した分解テーブル内インデックスおよび設定値と他の設定値とを比較することにより、禁則関係の有無を検出する第１の比較検出手段とを含む。
【００１３】
上記禁則関係検出装置において好ましくは、禁則関係となる設定値のジョブ言語設定値が、数値または文字列である可変型である場合、禁則テーブルは、禁則関係となる設定値に関する分解テーブルを特定する情報である分解テーブルＩＤと、分解テーブルにおける禁則関係となる設定値に対応する分解テーブル内インデックスと、禁則関係となる設定値のジョブ言語設定値とを含む。
【００１４】
上記禁則関係検出装置において好ましくは、検出手段は、受付手段にて変更を受け付けた設定値が、可変型である場合に、インデックステーブルに基づいて、受付手段にて変更を受け付けた設定値に関する分解テーブルＩＤおよび分解テーブル内インデックスを特定する第２の特定手段と、第２の特定手段にて特定した分解テーブルＩＤおよび分解テーブル内インデックスに基づいて、受付手段にて変更を受け付けた設定値をジョブ言語設定値に変換する変換手段と、第２の特定手段にて特定した分解テーブルＩＤおよび分解テーブル内インデックス、ならびに変換手段にて変換したジョブ言語設定値と禁則関係を有する分解テーブル内インデックスおよび設定値を禁則テーブルから抽出する第２の抽出手段と、第２の抽出手段にて抽出した分解テーブル内インデックスおよび設定値と他の設定値とを比較することにより、禁則関係の有無を検出する第２の比較検出手段とを含む。
【００１５】
上記禁則関係検出装置において好ましくは、ジョブを実行する装置から禁則関係の情報を取得する取得手段と、取得手段にて取得した情報と、分解テーブルとに基づいて、禁則テーブルを生成する生成手段とをさらに備える。
【００１６】
上記禁則関係検出装置において好ましくは、生成手段は、受付手段にて変更を受け付ける前に禁則テーブルを生成する。
【００１７】
上記禁則関係検出装置において好ましくは、生成手段は、受付手段にて変更を受け付けた後で禁則テーブルを生成する。
【００１８】
上記禁則関係検出装置において好ましくは、禁則関係検出装置において設定値の入力を受け付ける複数の設定項目の各々の優先度を記載した優先度辞書テーブルと、禁則関係検出装置において設定値の入力を受け付ける複数の設定項目の各々の属性を記載した属性テーブルと、コントロールタイプに応じた禁則関係を回避するための処理を記載した禁則処理テーブルとに基づいて、禁則関係を回避するための条件を規定した禁則回避条件式を生成する式生成手段と、検出手段にて禁則関係を検出した場合に、禁則回避条件式に従って禁則関係検出装置においておいて設定されている設定値を変更することにより、禁則関係を回避する回避手段とをさらに備える。
【００１９】
本発明の他の局面に従う禁則関係検出装置の制御プログラムは、ジョブを実行する装置において同時に適用することが禁止されている関係であって、ジョブの条件に関する複数の設定値の関係である禁則関係を検出する禁則関係検出装置の制御プログラムであって、禁則関係検出装置は、禁則関係検出装置において設定値の入力を受け付ける複数の設定項目を、複数の分解テーブルに分類するインデックステーブルを記憶する第１の記憶手段と、禁則関係検出装置において入力を受け付ける設定値と、ジョブを実行する装置側で使用される言語で示したジョブ言語設定値との関係を示す複数の分解テーブルを記憶する第２の記憶手段と、禁則関係検出装置において入力を受け付ける設定値の組合せであって、禁則関係となる設定値の組合せを示す禁則テーブルを記憶する第３の記憶手段とを備え、制御プログラムは、ジョブの条件に関する設定値の変更を受け付ける受付ステップと、受付ステップにて変更を受け付けた場合に、インデックステーブル、分解テーブル、および禁則テーブルに基づいて、受付ステップにて変更を受け付けた設定値と、禁則関係検出装置において設定されている他の設定値との禁則関係の有無を検出する検出手段とをコンピューターに実行させる。
【発明の効果】
【００２０】
本発明によれば、利便性を向上することのできる禁則関係検出装置および禁則関係検出装置の制御プログラムを提供することができる。
【図面の簡単な説明】
【００２１】
【図１】プリントシステム４の全体的な構成の例を示す図である。
【図２】画像形成装置１のハードウェア構成の例を示す図である。
【図３】端末装置２のハードウェア構成の例を示す図である。
【図４】端末装置２のネットワークプリントジョブに関する機能的構成の例を示す図である。
【図５】ダイアログボックス１０７１の例を示す図である。
【図６】ＰＪＬインデックステーブル１０５１の例を示す図である。
【図７】分解ＰＪＬテーブル１５２１の例を示す図である。
【図８】分解ＰＪＬテーブル１５２２の例を示す図である。
【図９】分解ＰＪＬテーブル１５２３の例を示す図である。
【図１０】分解ＰＪＬテーブル１５２４の例を示す図である。
【図１１】分解ＰＪＬテーブル１５２５の例を示す図である。
【図１２】分解ＰＪＬテーブル１５２６の例を示す図である。
【図１３】設定項目分解処理の流れの例を説明するフローチャートである。
【図１４】ＰＪＬデータ生成処理の流れの例を説明するフローチャートである。
【図１５】ＰＪＬ決定処理の流れの例を説明するフローチャートである。
【図１６】クライアントにおけるネットワークプリントジョブの全体的な処理の流れの例を説明するフローチャートである。
【図１７】端末装置２の禁則組合せ情報の生成に関する機能的構成の例を示す図である。
【図１８】本体禁則テーブルの例を示す図である。
【図１９】固定値選択型ＰＪＬテーブル間禁則情報の生成処理を示すフローチャートである。
【図２０】可変型ＰＪＬテーブル間禁則情報の生成処理を示すフローチャートである。
【図２１】分解ＰＪＬテーブル間禁則テーブルの例を示す図である。
【図２２】端末装置２が実行する禁則組合せ情報の生成処理の全体的な処理の流れの例を説明するフローチャートである。
【図２３】端末装置２の禁則関係の検出に関する機能的構成の例を示す図である。
【図２４】固定型選択型禁則検出処理を示すフローチャートである。
【図２５】可変型禁則検出処理を示すフローチャートである。
【図２６】端末装置２が実行する禁則関係の検出処理の全体的な処理の流れの例を説明するフローチャートである。
【図２７】端末装置２の禁則関係の回避に関する機能的構成の例を示す図である。
【図２８】禁則グループテーブル３１４１の例を示す図である。
【図２９】優先度辞書テーブル３１４２の例を示す図である。
【図３０】属性辞書テーブル３１４３の例を示す図である。
【図３１】コントロールの例を示す図である。
【図３２】第１の禁則処理テーブル３１４４の例を示す図である。
【図３３】第２の禁則処理テーブル３１４５の例を示す図である。
【図３４】条件式生成処理の流れの例を説明するフローチャートである。
【図３５】禁則回避条件式の生成の全体的な処理の流れの例を説明するフローチャートである。
【図３６】ダイアログ画面３０６１および３０６２の例を示す図である。
【発明を実施するための形態】
【００２２】
以下、本発明の一実施の形態について、図面に基づいて説明する。
【００２３】
［プリントシステムの構成］
【００２４】
始めに、プリントシステムの構成について説明する。
【００２５】
図１は、プリントシステム４の全体的な構成の例を示す図である。図２は、画像形成装置１のハードウェア構成の例を示す図である。図３は、端末装置２のハードウェア構成の例を示す図である。
【００２６】
図１に示すように、プリントシステム４は、画像形成装置１、１台または複数台の端末装置２、および通信回線３などによって構成される。
【００２７】
プリントシステム４によると、ユーザーは、端末装置２（禁則関係検出装置の一例）にデータが用意されたドキュメントを画像形成装置１（ジョブを実行する装置の一例）で用紙に印刷することによって、印刷物を生成することができる。
【００２８】
画像形成装置１および各端末装置２は、通信回線３を介して互いに接続されている。通信回線３として、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）回線、インターネット、公衆回線、または専用線などが用いられる。
【００２９】
画像形成装置１は、コピー、ネットワークプリント、ファックス、スキャン、およびボックスなどの機能を集約した装置である。一般に、「複合機」または「ＭＦＰ」などと呼ばれることがある。
【００３０】
ネットワークプリントの機能は、端末装置２から受信した画像データに基づいて画像を用紙に印刷する機能である。「ネットワークプリンティング」または「ＰＣプリント」などと呼ばれることもある。
【００３１】
ボックスの機能は、ユーザーごとに「ボックス」または「パーソナルボックス」などと呼ばれる記憶領域を与えておき、各ユーザーが自分の記憶領域によって画像データなどを保存し管理するためのサービスである。ボックスは、パーソナルコンピュータにおける「フォルダ」または「ディレクトリ」に相当する。
【００３２】
画像形成装置１は、図２に示すように、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０ａ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０ｂ、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０ｃ、補助記憶装置１０ｄ、タッチパネルディスプレイ１０ｅ、操作キーパネル１０ｆ、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）１０ｇ、モデム１０ｈ、スキャンユニット１０ｉ、プリントユニット１０ｊ、およびフィニッシャ１０ｋなどによって構成される。
【００３３】
タッチパネルディスプレイ１０ｅは、ユーザーに対するメッセージを示す画面、ユーザーがコマンドまたは情報を入力するための画面、およびＣＰＵ１０ａが実行した処理の結果を示す画面などを表示する。また、タッチパネルディスプレイ１０ｅは、タッチされた位置を示す信号をＣＰＵ１０ａへ送る。
【００３４】
操作キーパネル１０ｆは、いわゆるハードウェアキーボードであって、テンキー、スタートキー、ストップキー、およびファンクションキーなどによって構成される。
【００３５】
ＮＩＣ１０ｇは、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）などのプロトコルによって端末装置２と通信する。
【００３６】
モデム１０ｈは、ファックス端末との間でＧ３などのプロトコルで画像データをやり取りする。
【００３７】
スキャンユニット１０ｉは、プラテンガラスの上にセットされたシートに記されている画像を読み取って画像データを生成する。
【００３８】
プリントユニット１０ｊは、スキャンユニット１０ｉによって読み取られた画像を印刷する。さらに、端末装置２からＮＩＣ１０ｇによって受信されたデータに基づいて画像を用紙に印刷する。そのほか、ファックス端末からモデム１０ｈによって受信されたデータに基づいて画像を用紙に印刷する。
【００３９】
フィニッシャ１０ｋは、プリントユニット１０ｊによってドキュメントが印刷された用紙すなわち印刷物に対して仕上げの処理を行う。
【００４０】
具体的には、フィニッシャ１０ｋは、ステープル装置、パンチ装置、および紙折り装置などによって構成される。そして、仕上げの処理として、印刷物をステープル装置で綴じる処理、用紙にパンチ穴を開ける処理、および用紙を折り曲げる処理のうちのいずれか１つまたは複数を行う。
【００４１】
ＲＯＭ１０ｃまたは補助記憶装置１０ｄには、上述の機能を提供するためのプログラムが記憶されている。これらのプログラムは、必要に応じてＲＡＭ１０ｂにロードされ、ＣＰＵ１０ａによって実行される。補助記憶装置１０ｄとして、ハードディスクまたはＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）などが用いられる。
【００４２】
端末装置２は、ドキュメントを印刷するサービスをユーザーが画像形成装置１から受けるためのクライアントである。端末装置２として、パーソナルコンピュータ、タブレットコンピュータ、またはスマートフォンなどが用いられる。以下、端末装置２としてパーソナルコンピュータが用いられる場合を例に説明する。
【００４３】
端末装置２は、図３に示すように、ＣＰＵ２０ａ、ＲＡＭ２０ｂ、ＲＯＭ２０ｃ、補助記憶装置２０ｄ、液晶ディスプレイ２０ｅ、ＮＩＣ２０ｆ、キーボード２０ｇ、およびポインティングデバイス２０ｈなどによって構成される。
【００４４】
液晶ディスプレイ２０ｅには、印刷の対象であるドキュメントおよび印刷の指令のための画面などが表示される。
【００４５】
ＮＩＣ２０ｆは、画像形成装置１などとＴＣＰ／ＩＰなどのプロトコルによって通信する。
【００４６】
キーボード２０ｇおよびポインティングデバイス２０ｈは、ユーザーが情報およびコマンドを入力するために用いられる。
【００４７】
ＲＯＭ２０ｃまたは補助記憶装置２０ｄには、オペレーティングシステムおよび種々のアプリケーションが記憶されている。これらのプログラムは、必要に応じてＲＡＭ２０ｂにロードされ、ＣＰＵ２０ａによって実行される。補助記憶装置２０ｄとして、ハードディスクまたはＳＳＤなどが用いられる。
【００４８】
［ネットワークプリントジョブを行う際の端末装置の動作］
【００４９】
続いて、ネットワークプリントジョブを行う際の端末装置２の動作について説明する。
【００５０】
図４は、端末装置２のネットワークプリントジョブに関する機能的構成の例を示す図である。
【００５１】
図４を参照して、プリンタドライバ１０２０Ｐは、ＲＯＭ２０ｃまたは補助記憶装置２０ｄに記憶されている。プリンタドライバ１０２０Ｐは、ネットワークプリントジョブを画像形成装置１に行わせるためのプログラムである。ネットワークプリントジョブは、端末装置２にデータが用意されたドキュメントを用紙に印刷し、それによって得られた印刷物に対して適宜、仕上げの処理を施すジョブである。
【００５２】
プリンタドライバ１０２０Ｐによると、図４に示すジョブ条件受付部１２０１、ＰＪＬインデックステーブル記憶部１２０２、分解ＰＪＬテーブル記憶部１２０３、項目置換部１２０４、直積分解部１２０５、値変換部１２０６、およびジョブ指令部１２０７などの機能が端末装置２に実現される。プリンタドライバ１０２０Ｐは、ＲＡＭ２０ｂにロードされ、ＣＰＵ２０ａによって実行される。
【００５３】
以下、ジョブ条件受付部１２０１ないしジョブ指令部１２０７について、説明する。併せてユーザーによる端末装置２の操作についても説明する。
【００５４】
図５は、ダイアログボックス１０７１の例を示す図である。図６は、ＰＪＬインデックステーブル１０５１の例を示す図である。図７は、分解ＰＪＬテーブル１５２１の例を示す図である。図８は、分解ＰＪＬテーブル１５２２の例を示す図である。図９は、分解ＰＪＬテーブル１５２３の例を示す図である。図１０は、分解ＰＪＬテーブル１５２４の例を示す図である。図１１は、分解ＰＪＬテーブル１５２５の例を示す図である。図１２は、分解ＰＪＬテーブル１５２６の例を示す図である。図１３は、設定項目分解処理の流れの例を説明するフローチャートである。図１４は、ＰＪＬデータ生成処理の流れの例を説明するフローチャートである。図１５は、ＰＪＬ決定処理の流れの例を説明するフローチャートである。
【００５５】
ジョブ条件受付部１２０１は、ネットワークプリントジョブの条件を取得する処理を例えば次のように実行する。
【００５６】
ユーザーは、印刷したいドキュメントのファイル１０６１を端末装置２に用意する。ワープロソフトまたは描画ソフトなどによってドキュメントを作成することによって用意してもよいし、インターネットからドキュメントのファイルをダウンロードし、このファイルをファイル１０６１として用いてもよい。
【００５７】
そして、ユーザーは、ファイル１０６１をアプリケーションによって開いた状態で、所定のコマンドを端末装置２に入力する。
【００５８】
すると、ジョブ条件受付部１２０１は、図５のようなダイアログボックス１０７１を液晶ディスプレイ２０ｅに表示させる。ダイアログボックス１０７１は、ネットワークプリントジョブの種々の設定項目についての設定値（条件の値）を設定するための画面である。ダイアログボックス１０７１において何も操作が行われていない状態では、デフォルトの設定値が設定されている。
【００５９】
図５に例示する状態においては、ユーザーは、一部の項目についてのみ、条件の値を設定することができる。残りの項目については、タブをタップして切換えを行うことによって、設定することができる。
【００６０】
ここで、ユーザーは、ダイアログボックス１０７１に対して操作を行うことによって、項目それぞれについての条件の値を設定する。
【００６１】
すると、ジョブ条件受付部１２０１は、設定された値を受け付ける。以下、受け付けられた値を「設定値」と記載する。ネットワークプリントジョブについて設定する項目を「設定項目」と記載する。また、各設定項目の設定値を「Ｂ１」、「Ｂ２」、「Ｂ３」、・・・と区別して記載することがある。
【００６２】
ジョブ条件受付部１２０１によって得られた、各設定項目の設定値を、直積によって表わすことができる。例えば、設定項目がｎ個ある場合は、Ｂ１×Ｂ２×・・・×Ｂｎ、という直積によって表わすことができる。
【００６３】
設定値は、一次元の値であることもあれば、多次元の値であることもある。例えば、設定項目が「用紙サイズ」（ドキュメントを印刷する用紙のサイズ）である場合は、設定値として、「Ａ３サイズ」、「Ｂ４サイズ」、または「Ａ４サイズ」などの一次元の値を取る。
【００６４】
または、複数の設定項目についてページごとに異なる条件値（設定値）を設定できるプリンタドライバには、「ページ単位設定」という大きな設定項目（詳細な複数の設定項目を纏めたグループ型の設定項目）が用意されている場合がある。この場合は、
【数１】
2018010354.tif 000003
【００６５】
のような行列が設定値として用いられる。なお、各行の成分は、左から順に、ページ範囲、印刷種類、給紙トレイ、用紙サイズ、およびステープルそれぞれの詳細な設定項目の設定値（条件）である。なお、大きな設定項目を構成する詳細な設定項目を「構成項目」と記載することがある。
【００６６】
例えば、１行目の「１−４  両面  トレイ１  Ａ４  ＯＮ」は、ドキュメントの第１ページから第４ページまでを、トレイ１に格納されているＡ４サイズの用紙に両面印刷し、これらの用紙をステープルで綴じる、という条件を示している。
【００６７】
また、２行目の「５−１０  片面  トレイ３  Ａ３  ＯＦＦ」は、ドキュメントの第５ページから第１０ページまでを、トレイ３に格納されているＡ３サイズの用紙に片面印刷し、これらの用紙をステープルで綴じない、という条件を示している。
【００６８】
ＰＪＬインデックステーブル記憶部１２０２は、ＰＪＬインデックステーブル１０５１（インデックステーブルの一例）を記憶する。
【００６９】
ＰＪＬインデックステーブル１０５１は、端末装置２において設定値の入力を受け付ける複数の設定項目を、複数の分解ＰＪＬテーブル１０５２（分解テーブルの一例）に分類するものである。ＰＪＬインデックステーブル１０５１には、上述の直積すなわちＢ１×Ｂ２×・・・を構成する設定値のうちの少なくとも１つの設定値からなる直積（以下、「部分直積」と記載する。）ごとのインデックスデータ１０５１ａが格納されている。
【００７０】
例えば、Ｂ１×Ｂ２×・・・×Ｂ９のためのＰＪＬインデックステーブル１０５１として、図６のようなＰＪＬインデックステーブル１０５１がＰＪＬインデックステーブル記憶部１２０２に記憶されている。
【００７１】
ＰＪＬインデックステーブル１０５１は、主に、直積を複数の部分直積に分解するために使用される。これについては、後述する。
【００７２】
インデックスデータ１０５１ａには、それに対応する部分直積を構成する設定項目（アイテムとも呼ぶ）が「ＳｅｔＩｔｅｍ１」、「ＳｅｔＩｔｅｍ２」、・・・として示される。またインデックスデータ１０５１ａは、各アイテムのデータタイプが示されている。データタイプとしては、値選択、数値、文字列（ｓｔｒｉｎｇ）、または二値などがある。
【００７３】
さらに、インデックスデータ１０５１ａには、その部分直積をＰＪＬにおける値に変換するために使用される分解ＰＪＬテーブル１０５２を特定する識別子が示される。以下、ＰＪＬにおける値を「ＰＪＬ値」と記載し、分解ＰＪＬテーブル１０５２の識別子を「分解ＰＪＬテーブルＩＤ」と記載する。
【００７４】
ＰＪＬインデックステーブル１０５１の内容は、プリンタドライバ１０２０ＰおよびＰＪＬそれぞれの仕様に応じて開発者によって決められる。また、画像形成装置１の仕様の変更またはメンテナンスなどに応じて、管理者または開発者などによって適宜、ＰＪＬインデックステーブル１０５１が更新される。
【００７５】
分解ＰＪＬテーブル記憶部１２０３には、図７〜図１２に示すような複数の分解ＰＪＬテーブル１０５２が記憶されている。以下、各分解ＰＪＬテーブル１０５２を「分解ＰＪＬテーブル１５２１」、「分解ＰＪＬテーブル１５２２」、・・・と区別して記載することがある。
【００７６】
分解ＰＪＬテーブル１０５２は、端末装置２において入力を受け付ける設定値と、端末装置２において入力を受け付ける設定値をＰＪＬで示したＰＪＬ値との関係を示すものである。分解ＰＪＬテーブル１０５２は、部分直積をＰＪＬ値に変換するために使用される。また分解ＰＪＬテーブルは、本体禁則テーブルに基づいて分解ＰＪＬテーブル間禁則テーブルを作成する際にも使用される。これらの使用の仕方は、後述する。
【００７７】
分解ＰＪＬテーブル１０５２には、分解ＰＪＬテーブルＩＤ（分解テーブルＩＤの一例）、分解ＰＪＬテーブル内インデックス（分解テーブル内インデックスの一例）、テーブルタイプ、およびＰＪＬ算出方法が示される。分解ＰＪＬテーブルＩＤは、上述の通り、分解ＰＪＬテーブル１０５２の識別子である。
【００７８】
分解ＰＪＬテーブル内インデックスは、分解ＰＪＬテーブルに含まれる各設定値に対応する識別子である。
【００７９】
テーブルタイプは、分解ＰＪＬテーブル１０５２の種類である。テーブルタイプとして、「一次元変換タイプ」および「インデックス付きタイプ」のいずれかが示される。
【００８０】
一次元変換タイプは、一次元の値（１つの値または１×ｔの行列）をＰＪＬ値に変換するために用いられることを意味する。一方、インデックス付きタイプは、ｓ×ｔの行列である設定値をＰＪＬ値に変換するために用いられることを意味する。なお、「ｓ」および「ｔ」は、ともに、２以上の整数である。分解ＰＪＬテーブル１０５２の設定項目の中に１つでもｓ×ｔの行列である設定値の設定項目があれば、インデックス付きテーブルタイプとなる。
【００８１】
ＰＪＬ算出方法は、設定値をＰＪＬ値に変換する方法である。ＰＪＬ算出方法として、「マッピング」および「演算」のいずれかが示される。
【００８２】
マッピングは、選択肢として用意された複数の値の中から設定値に対応するものを選出することによって、ＰＪＬ値に変換する方法である。
【００８３】
一方、演算は、用意された数式（関数）に設定値を代入して演算することによって、ＰＪＬ値に変換する方法である。
【００８４】
さらに、分解ＰＪＬテーブル１０５２には、入力情報および出力情報が示される。入力情報は、設定値またはそれを算出するための、１組または複数組の設定アイテム情報が含まれる。
【００８５】
一方、出力情報は、ＰＪＬ値またはそれを算出するための、１組または複数組のＰＪＬアイテム情報が含まれる。
【００８６】
この入力情報とこの出力情報とは、互いに対応している。すなわち、この入力情報およびこの出力情報は、同じ条件値を示し、または、近似している。
【００８７】
分解ＰＪＬテーブル１０５２は、ＰＪＬ算出方法としてマッピングを示す場合は、入力情報に、ＳｅｔＩｔｅｍ＿ｘおよびＳｅｔＩｔｅｍ＿ｘ＿Ｖａｌｕｅの組合せを複数有する設定アイテム情報が少なくとも１組、含まれている。この組合せは、「ＳｅｔＩｔｅｍ＿ｘの値がＳｅｔＩｔｅｍ＿ｘ＿Ｖａｌｕｅである」という要件を示している。「ｘ」は、シーケンス番号であって、設定アイテム情報ごとに「１」、「２」、・・・の値を取る。
【００８８】
一方、出力情報には、ＰＪＬ＿Ｉｔｅｍ＿ｙおよびＰＪＬ＿Ｉｔｅｍ＿ｙ＿Ｖａｌｕｅの組合せを複数有するＰＪＬアイテム情報が少なくとも１組、含まれている。この組合せは、同じ行の上述の要件を満たす場合に、ＰＪＬ＿Ｉｔｅｍ＿ｙがＰＪＬ＿Ｉｔｅｍ＿ｙ＿Ｖａｌｕｅになることを示している。設定アイテム情報が複数ある場合は、同じ行のすべての要件を満たす場合に、ＰＪＬ＿Ｉｔｅｍ＿ｙがＰＪＬ＿Ｉｔｅｍ＿ｙ＿Ｖａｌｕｅになる。なお、ＰＪＬ＿Ｉｔｅｍ＿ｙは、ＰＪＬの項目のＰＪＬ値である。「ｙ」は、シーケンス番号であって、ＰＪＬアイテム情報ごとに「１」、「２」、・・・の値を取る。
【００８９】
このように、同じ行にあるすべての設定アイテム情報それぞれが示す設定値の組合せとすべてのＰＪＬアイテム情報それぞれが示す設定値の組合せとが、対応している。すなわち、同じ条件値であり、または、近似している。
【００９０】
例えば、分解ＰＪＬテーブル１５２１（図７参照）においては、２組の設定アイテム情報が入力情報に含まれ、１組のＰＪＬアイテム情報が出力情報に含まれている。そして、２つの行がある。
【００９１】
１行目は、Ｂ１が「ｂ１１」であり、かつ、Ｂ２が「ｂ２１」であれば、Ａ１が「ａ１１」に相当する（等しい、または、近似する）ことを意味する。なお、Ａ１は、ＰＪＬにおける所定の項目の値（ＰＪＬ値）である。後述するＡ２、Ａ３、Ａ４＿１、Ａ４＿２、・・・についても同様である。
【００９２】
同様に、２行目は、Ｂ１が「ｂ１２」であり、かつ、Ｂ２が「ｂ２２」であれば、Ａ１が「ａ１２」に相当することを意味する。
【００９３】
または、分解ＰＪＬテーブル１５２５（図１１参照）においては、２組の設定アイテム情報が入力情報に含まれ、２組のＰＪＬアイテム情報が出力情報に含まれている。そして、３つの行がある。
【００９４】
１行目は、Ｂ７＿２が「ｂ７１」であり、かつ、Ｂ９が「ｂ９１」であれば、Ａ５＿１が「ａ５１」に相当し、Ａ５＿２が「ａ５３」に相当することを意味する。２行目は、Ｂ７＿２が「ｂ７２」であり、かつ、Ｂ９が「ｂ９２」であれば、Ａ５＿１が「ａ５２」に相当し、Ａ５＿２が「ａ５３」に相当することを意味する。３行目は、Ｂ７＿２が「ｂ７３」であり、かつ、Ｂ９が「ｂ９３」であれば、Ａ５＿１が「ａ５１」に相当し、Ａ５＿２が「ａ５４」に相当することを意味する。
【００９５】
または、分解ＰＪＬテーブル１０５２は、ＰＪＬ算出方法として演算を示す場合は、入力情報に、ＳｅｔＩｔｅｍ＿ｘおよびデータタイプの組合せを有する設定アイテム情報が少なくとも１組、含まれている。または、ＳｅｔＩｔｅｍ＿ｘ、データタイプ、値条件の組合せを有する設定アイテム情報が少なくとも１組、含まれている。
【００９６】
データタイプは、ＳｅｔＩｔｅｍ＿ｘのタイプである。ＰＪＬ算出方法が演算である場合は、データタイプとして、数値、文字列、または二値などが示される。なお、ＰＪＬ算出方法がマッピングである場合は、「値選択」が示されている。
【００９７】
値条件は、ＳｅｔＩｔｅｍ＿ｘを含む条件であって、後述するように、出力情報とともに用いられる。
【００９８】
一方、出力情報には、ＰＪＬ＿Ｉｔｅｍ＿ｙおよびＰＪＬ＿Ｉｔｅｍ＿ｙ＿Ｖａｌｕｅの組合せを１つまたは複数有するＰＪＬアイテム情報が少なくとも１組、含まれている。この組合せの意味は、マッピングの場合と基本的に同様である。ただし、ＰＪＬ＿Ｉｔｅｍ＿ｙ＿Ｖａｌｕｅには、固定的な値ではなく、ＳｅｔＩｔｅｍ＿ｘを変数とする数式が示される。すなわち、ＰＪＬ＿Ｉｔｅｍ＿ｙおよびＰＪＬ＿Ｉｔｅｍ＿ｙ＿Ｖａｌｕｅによって、ＳｅｔＩｔｅｍ＿ｘを変数とする、ＰＪＬ＿Ｉｔｅｍ＿ｙ＝ＰＪＬ＿Ｉｔｅｍ＿ｙ＿Ｖａｌｕｅ、という関数が示される。
【００９９】
１つの出力情報において、１つのＰＪＬ＿Ｉｔｅｍ＿ｙについて複数のＰＪＬ＿Ｉｔｅｍ＿ｙ＿Ｖａｌｕｅが複数示されることがある。この場合は、入力情報のいずれかの設定アイテム情報に、同じ個数の値条件が示される。そして、これらの値条件のうちの満足しているものに対応する（同じ行にある）ＰＪＬ＿Ｉｔｅｍ＿ｙ＿ＶａｌｕｅがＰＪＬ値を求めるために用いられる。
【０１００】
例えば、分解ＰＪＬテーブル１５２２（図８参照）においては、３組の設定アイテム情報が入力情報に含まれ、１組のＰＪＬアイテム情報が出力情報に含まれている。いずれの設定アイテム情報にも値条件がない。そして、ＰＪＬアイテム情報には、ＰＪＬ＿Ｉｔｅｍ＿ｙ＿Ｖａｌｕｅとして、３組の設定アイテム情報それぞれに含まれるＳｅｔＩｔｅｍ＿ｘ（Ｂ４、Ｂ５、およびＢ３）を変数とする関数（Ａ２＝Ｂ４＊Ｂ５＊Ｂ３）が１つだけ示されている。
【０１０１】
または、分解ＰＪＬテーブル１５２３（図９参照）においては、２組の設定アイテム情報が入力情報に含まれ、１組のＰＪＬアイテム情報が出力情報に含まれている。１つの設定アイテム情報に、２つの値条件が示される。そして、ＰＪＬアイテム情報には、ＰＪＬ＿Ｉｔｅｍ＿ｙ＿Ｖａｌｕｅとして、２つの値条件それぞれに応じた関数（Ａ３＝Ｂ６＊Ｂ８、および、Ａ３＝Ｂ６＊Ｂ８＊２）が示される。各関数は、２組の設定アイテム情報それぞれに含まれるＳｅｔＩｔｅｍ＿ｘ（Ｂ６、Ｂ８）の少なくとも１つを変数として用いている。
【０１０２】
各分解ＰＪＬテーブル１０５２の内容は、プリンタドライバ１０２０ＰおよびＰＪＬそれぞれの仕様に応じて開発者によって決められる。また、画像形成装置１の仕様の変更またはメンテナンスなどに応じて、管理者または開発者などによって適宜、分解ＰＪＬテーブル１０５２が更新される。
【０１０３】
ところで、設定値がｓ×ｔの行列である場合は、この設定値の各行に対して１行目から順に１，２，…，ｓというインデックスを付けることができる。例えば、Ｂｋがこのような行列に該当し、かつ、１つの行にｋ’個の成分を有する場合において、インデックスの集合を、Ｉｋ=（１，２，…）    ・・・  （２）と表わせば、Ｂｋを、Ｂｋ＝Ｉｋ×（Ｂｋ＿１×Ｂｋ＿２×…×Ｂｋ＿ｋ’）    ・・・  （３）と表わすことができる。
【０１０４】
例えば、Ｂａの設定項目が上述のページ単位設定である場合は、ｋ’は「５」であり、かつ、Ｂａ＝Ｉａ×（Ｂａ＿１×Ｂａ＿２×…×Ｂａ＿５）    ・・・  （４）である。Ｂａ＿１、Ｂａ＿２、Ｂａ＿３、Ｂａ＿４、およびＢａ＿５は、ページ範囲、印刷種類、給紙トレイ、用紙サイズ、およびステープルそれぞれの設定値である。
【０１０５】
項目置換部１２０４は、ジョブ条件受付部１２０１によって得られた各設定項目の設定値の集合を表わす直積（以下、「入力直積」と記載する。）のうちの複数の行を有する設定値を、上に示した式（３）の右辺の形式に置換する。
【０１０６】
例えば、入力直積が、Ｂ１×Ｂ２×Ｂ３×Ｂ４×Ｂ５×Ｂ６×Ｂ７×Ｂ８×Ｂ９、であり、かつ、Ｂ７が３つの成分からなる複数の行によって構成される（つまり、ｓ×３の行列である）場合は、項目置換部１２０４は、この入力直積を、
【０１０７】
Ｂ１×Ｂ２×Ｂ３×Ｂ４×Ｂ５×Ｂ６×Ｂ７×Ｂ８×Ｂ９＝Ｂ１×Ｂ２×Ｂ３×Ｂ４×Ｂ５×Ｂ６×（Ｉ７×Ｂ７＿１×Ｂ７＿２×Ｂ７＿３）×Ｂ８×Ｂ９    ・・・  （５）のように、一部の設定項目の設定値を複数の構成項目の設定値に置換する。
【０１０８】
このように、項目置換部１２０４によると、一部の設定項目の設定値（例えば、Ｂ７）が複数の設定値に分割される。どの設定値を変換するのかは、プリンタドライバ１０２０ＰおよびＰＪＬそれぞれの仕様に基づいて開発者によって予め決められている。なお、項目置換部１２０４は、１×ｔの行列である設定値を式（３）の形式に置換する場合もある。
【０１０９】
直積分解部１２０５は、ＰＪＬインデックステーブル記憶部１２０２に記憶されているＰＪＬインデックステーブル１０５１（図６参照）に基づいて、図１３に示す手順で、入力直積を複数の部分直積に分解する。
【０１１０】
直積分解部１２０５は、ＰＪＬインデックステーブル１０５１に格納されている１つ目のインデックスデータ１０５１ａを参照する（＃１７０１、＃１７０２）。
【０１１１】
そして、直積分解部１２０５は、参照したインデックスデータ１０５１ａに示されるＳｅｔＩｔｅｍ１、ＳｅｔＩｔｅｍ２、・・・の各アイテムに対応する設定値を入力直積から抽出し、抽出した設定値からなる集合を部分直積として取得する（＃１７０３）。さらに、そのインデックスデータ１０５１ａに示されるテーブルＩＤを取得する（＃１７０４）。
【０１１２】
直積分解部１２０５は、２つ目以降のインデックスデータ１０５１ａについても同様に、それを参照し、それに基づいて入力直積から部分直積を取得し、テーブルＩＤを取得する（＃１７０６、＃１７０２〜＃１７０４）。
【０１１３】
ただし、項目置換部１２０４によって置換の処理がこの入力直積に行われた場合は、ステップ＃１７０３において、置換後の入力直積から部分直積を取得する。
【０１１４】
例えば、上記の式（５）の通りに入力直積が項目置換部１２０４によって置換され、かつ、ＰＪＬインデックステーブル１０５１の内容が図６に示す通りである場合は、直積分解部１２０５は、Ｂ１×Ｂ２、Ｂ４×Ｂ５×Ｂ３、Ｂ６×Ｂ８、Ｂ７＿１×Ｂ７＿２×Ｂ９、Ｂ７＿２×Ｂ７＿３×Ｂ８、の５つの部分直積に分解する。
【０１１５】
このように入力直積から複数の部分直積を取得することによって、入力直積が複数の部分直積に分解される。
【０１１６】
値変換部１２０６は、分解ＰＪＬテーブル記憶部１２０３に記憶されている分解ＰＪＬテーブル１０５２に基づいて、直積分解部１２０５によって得られた複数の部分直積それぞれの設定値をＰＪＬ値に変換する処理を行う。
【０１１７】
ここで、ある１つの部分直積に注目し、その部分直積の設定値をＰＪＬ値に変換する処理の流れを、図１４を参照しながら説明する。以下、注目した部分直積を「注目部分直積」と記載する。
【０１１８】
値変換部１２０６は、注目部分直積とともに直積分解部１２０５によって取得されたテーブルＩＤに対応する分解ＰＪＬテーブル１０５２を分解ＰＪＬテーブル記憶部１２０３から読み出す（＃１７１１）。以下、読み出した分解ＰＪＬテーブル１０５２を「注目分解ＰＪＬテーブル」と記載する。
【０１１９】
値変換部１２０６は、注目分解ＰＪＬテーブルに示されるテーブルタイプをチェックする（＃１７１２）。
【０１２０】
テーブルタイプが一次元変換タイプである場合は（＃１７１３でＹｅｓ）、値変換部１２０６は、図１５に示す手順で注目部分直積の設定値をＰＪＬ値に変換する（＃１７１４）。なお、この場合は、注目部分直積は、一次元である。つまり、１つの値であり、または、１×ｔの行列である。
【０１２１】
値変換部１２０６は、注目分解ＰＪＬテーブルに示されるＰＪＬ算出方法をチェックする（図１５の＃１７２１）。
【０１２２】
ＰＪＬ算出方法がマッピングである場合は（＃１７２２でＹｅｓ）、注目分解ＰＪＬテーブルに示される複数の行の中から、注目部分直積の設定値としてＳｅｔＩｔｅｍ＿ｘ＿Ｖａｌｕｅとして示す行を選出し、その行のＰＪＬ＿Ｉｔｅｍ＿ｙ＿ＶａｌｕｅをＰＪＬ＿Ｉｔｅｍ＿ｙの値（つまり、ＰＪＬ値）として抽出する（＃１７２３）。
【０１２３】
例えば、注目分解ＰＪＬテーブルが分解ＰＪＬテーブル１５２１（図７参照）であり、注目部分直積がＢ１×Ｂ２であり、Ｂ１およびＢ２それぞれが「ｂ１２」および「ｂ２２」である場合は、値変換部１２０６は、２行目を選出する。そして、Ａ１として「ａ１２」を抽出する。つまり、これにより、Ａ１＝ａ１２、と決定し、注目部分直積が「ａ１２」に変換される。
【０１２４】
または、ＰＪＬ算出方法が演算である場合は（＃１７２２でＮｏ）、値変換部１２０６は、注目分解ＰＪＬテーブルの各設定アイテム情報の値条件をチェックする（＃１７２４）。
【０１２５】
そして、値変換部１２０６は、いずれの設定アイテム情報にも値条件として条件式が示されない場合は（＃１７２５でＮｏ）、注目分解ＰＪＬテーブルに示されるＰＪＬ＿Ｉｔｅｍ＿ｙ＿Ｖａｌｕｅへ設定アイテム情報それぞれのＳｅｔＩｔｅｍ＿ｘ＿Ｖａｌｕｅを代入することによって、ＰＪＬ＿Ｉｔｅｍ＿ｙを演算する（＃１７２６）。
【０１２６】
例えば、注目分解ＰＪＬテーブルが分解ＰＪＬテーブル１５２２（図８参照）であり、注目部分直積がＢ４×Ｂ５×Ｂ３であり、Ｂ４、Ｂ５、およびＢ３それぞれが「ｂ４９」、「ｂ５９」、および「ｂ３」であり、ＰＪＬ＿Ｉｔｅｍ＿ｙ＿Ｖａｌｕｅが、Ｂ４＊Ｂ５＊Ｂ３、である場合は、値変換部１２０６は、「ｂ４９」、「ｂ５９」、および「ｂ３」をＰＪＬ＿Ｉｔｅｍ＿ｙ＿Ｖａｌｕｅに代入し、ｂ４９＊ｂ５９＊ｂ３９、を演算することによって、ＰＪＬ値を得る。これにより、注目部分直積がｂ４９＊ｂ５９＊ｂ３９の演算結果に変換される。
【０１２７】
少なくとも１つの設定アイテム情報に値条件として条件式が示される場合は（＃１７２５でＹｅｓ）、値変換部１２０６は、これらの条件式のうち満足するほうの条件式と同じ行に示されるＰＪＬ＿Ｉｔｅｍ＿ｙ＿Ｖａｌｕｅへ設定アイテム情報それぞれのＳｅｔＩｔｅｍ＿ｘ＿Ｖａｌｕｅを代入することによって、ＰＪＬ＿Ｉｔｅｍ＿ｙを演算する（＃１７２７）。
【０１２８】
例えば、注目分解ＰＪＬテーブルが分解ＰＪＬテーブル１５２３（図９参照）であり、注目部分直積がＢ６×Ｂ８であり、Ｂ６およびＢ８それぞれが「９７」および「ｂ８９」であり、値条件が「Ｂ６＜１００」のときのＰＪＬ＿Ｉｔｅｍ＿ｙ＿Ｖａｌｕｅが「Ｂ６＊Ｂ８」であり、値条件が「Ｂ６≧１００」のときのＰＪＬ＿Ｉｔｅｍ＿ｙ＿Ｖａｌｕｅが「Ｂ６＊Ｂ８＊２」である場合は、値変換部１２０６は、「９７」および「ｂ８９」を、Ｂ６＊Ｂ８、に代入し、ｂ９７＊ｂ８９、を演算することによって、ＰＪＬ値を得る。これにより、注目部分直積がｂ９７＊ｂ８９の演算結果に変換される。
【０１２９】
または、「Ｂ６」が「１０２」である場合は、「１０２」および「ｂ８９」を、Ｂ６＊Ｂ８＊２、に代入し、ｂ９７＊ｂ８９＊２、を演算することによって、ＰＪＬ値を得る。これにより、注目部分直積がｂ９７＊ｂ８９＊２の演算結果に変換される。
【０１３０】
なお、ＰＪＬアイテム情報が注目分解ＰＪＬテーブルに複数含まれる場合は、値変換部１２０６は、ステップ＃１７２３、＃１７２６、＃１７２７において、ＰＪＬアイテム情報それぞれのＰＪＬ＿Ｉｔｅｍ＿ｙ（ＰＪＬ＿Ｉｔｅｍ＿１、ＰＪＬ＿Ｉｔｅｍ＿２、…）についてＰＪＬ値を求める。
【０１３１】
図１４に戻って、テーブルタイプがインデックス付きタイプである場合は（＃１７１３でＮｏ）、値変換部１２０６は、注目部分直積を構成する複数の行を上から１つずつ順に注目し、図１５に示した処理を実行する（＃１７１５〜＃１７１７）。
【０１３２】
例えば、注目分解ＰＪＬテーブルが分解ＰＪＬテーブル１５２５（図７参照）であり、注目部分直積がＢ７＿２×Ｂ９であり、かつ、
【数２】
2018010354.tif 000004
【０１３３】
である場合は、値変換部１２０６は、１行目のＰＪＬ＿Ｉｔｅｍ＿１のＰＪＬ＿Ｉｔｅｍ＿１＿Ｖａｌｕｅ（つまり、Ａ５＿１のＰＪＬ値）および２行目のＰＪＬ＿Ｉｔｅｍ＿２のＰＪＬ＿Ｉｔｅｍ＿２＿Ｖａｌｕｅ（つまり、Ａ５＿２のＰＪＬ値）として、それぞれ、「ａ５２」および「ａ５３」を抽出する。さらに、２行目のＡ５＿１のＰＪＬ値およびＡ５＿２のＰＪＬ値として、それぞれ、「ａ５１」および「ａ５４」を抽出する。
【０１３４】
つまり、注目部分直積が
【数３】
2018010354.tif 000005
【０１３５】
に変換される。
【０１３６】
値変換部１２０６は、直積分解部１２０５によって得られた複数の部分直積を１つずつ、以上の処理によってＰＪＬ値に変換する。
【０１３７】
ジョブ条件受付部１２０１ないし値変換部１２０６の以上の処理によって、ＰＪＬにおける各項目のＰＪＬ値が得られる。例えば、Ｂ１×Ｂ２×…×Ｂ９、の入力直積から、Ａ１×Ａ２×Ａ２×Ａ３×Ａ４＿１×Ａ４＿２×Ａ５＿１×Ａ５＿２×Ａ６、という直積で表わすことができるＰＪＬ値が得られる。
【０１３８】
ジョブ指令部１２０７は、これらの部分直積が直積分解部１２０５によってＰＪＬ値に変換されたら、これらのＰＪＬ値を示す印刷データ１０５３をファイル１０６１を用いて生成し、ネットワークプリントジョブの指令とともに画像形成装置１へ送信する。なお、印刷データ１０５３は、ＰＪＬによって記述される。
【０１３９】
そして、画像形成装置１は、印刷データ１０５３およびネットワークプリントジョブの指令を受信すると、印刷データ１０５３に基づいてネットワークプリントジョブを実行する。
【０１４０】
図１６は、クライアントにおけるネットワークプリントジョブの全体的な処理の流れの例を説明するフローチャートである。
【０１４１】
次に、端末装置２がネットワークプリントジョブを画像形成装置１に実行させる際の全体的な処理の流れの例を、フローチャートを参照しながら説明する。
【０１４２】
端末装置２は、図１６に示す手順で処理を行う。なお、この処理は、プリンタドライバ１０２０Ｐに基づいて行われる。
【０１４３】
端末装置２は、ファイル１０６１をアプリケーションによって開いた状態でユーザーが所定のコマンドを入力すると、ダイアログボックス１０７１（図５参照）を表示し、ユーザーがダイアログボックス１０７１に対して行った操作に応じて設定値を受け付ける（＃１０１１）。ユーザーが設定値を入力しなかった設定項目については、デフォルト値で補えばよい。すべての設定項目の設定値は、直積によって表わされる。この直積が、入力直積である。
【０１４４】
端末装置２は、入力直積を、それを構成する一部の設定値を複数の構成項目の設定値に置換する（＃１０１２）。例えば、式（５）のように、Ｂ１×Ｂ２×…×Ｂ７×Ｂ８×Ｂ９、という入力直積を、Ｂ１×Ｂ２×…×（Ｉ７×Ｂ７＿１×Ｂ７＿２×Ｂ７＿３）×Ｂ８×Ｂ９、に変換する。
【０１４５】
さらに、端末装置２は、この入力直積を複数の部分直積に分解する（＃１０１３）。分解の方法は、前に図６で説明した通りである。
【０１４６】
端末装置２は、複数の部分直積を前から順に１つずつ注目し、注目した部分直積（注目部分直積）に対応するＰＪＬ値を算出する（＃１０１４〜＃１０１８）。つまり、注目部分直積をＰＪＬ値に変換する。ＰＪＬ値を算出（変換）する方法は、前に図１４および図１６で説明した通りである。
【０１４７】
そして、端末装置２は、算出されたＰＪＬ値およびファイル１０６１を用いて印刷データ１０５３を生成し（＃１０１９）、ネットワークプリントジョブの指令とともに画像形成装置１へ送信する（＃１０２０）。
【０１４８】
［禁則組合せ情報の生成方法］
【０１４９】
続いて、禁則組合せ情報の生成方法について説明する。
【０１５０】
画像形成装置１は、上述の機能が使用される際に、種々の項目（アイテム）に関して設定がなされる。例えば、印刷に関する設定として、用紙のサイズの設定、用紙の向きの設定などが、なされる。また、印刷物の仕上げに関する設定として、ステープル綴じに使用するフィニッシャ１０ｋの選択、ステープル綴じを行うか否かの設定、パンチ穴を開けるか否かの設定、パンチ穴の位置の設定、パンチ穴の個数の設定、折りを行うか否かおよび行う場合の折りの種類の設定、仕分けを行うか否かの設定、および仕分け先の設定が、なされる。
【０１５１】
しかし、これらの設定を自由に行うことができるとは限らない。つまり、ある値（条件）をある１つの項目に設定した場合に、他の項目に設定できる値が制限されることがある。このように、ジョブを実行する装置において同時に適用することが禁止されている関係であって、ジョブについての複数の設定値の関係を「禁則関係」と記載する。
【０１５２】
禁則関係を有する組合せは、２つの項目の値に限られない。３つ以上の項目の値が禁則関係を有する場合もある。
【０１５３】
以下、禁則関係にある複数の項目の各値からなるグループを「禁則グループ」と記載する。禁則関係を有するグループの通りに値を設定することは、禁止される。
【０１５４】
画像形成装置１には、多くの禁則グループが存在する。画像形成装置１は、ＰＪＬ禁則組合せ情報を記憶している。ＰＪＬ禁則組合せ情報とは、禁則関係となるＰＪＬアイテム情報の組合せを示すものである。
【０１５５】
端末装置２は、画像形成装置１が記憶するＰＪＬ禁則組合せ情報に基づいて、禁則組合せ情報を生成する。禁則組合せ情報は、端末装置２側で入力を受け付ける設定値における禁則関係となる組合せを示すものである。端末装置２は、禁則組合せ情報を生成するためのプログラムとして、禁則関係生成プログラム２０２０Ｐを補助記憶装置２０ｄに記憶している。
【０１５６】
図１７は、端末装置２の禁則組合せ情報の生成に関する機能的構成の例を示す図である。図１８は、本体禁則テーブルの例を示す図である。図１９は、固定値選択型ＰＪＬテーブル間禁則情報の生成処理を示すフローチャートである。図２０は、可変型ＰＪＬテーブル間禁則情報の生成処理を示すフローチャートである。図２１は、分解ＰＪＬテーブル間禁則テーブルの例を示す図である。図２２は、端末装置２が実行する禁則組合せ情報の生成処理の全体的な処理の流れの例を説明するフローチャートである。
【０１５７】
禁則関係生成プログラム２０２０Ｐによると、図１７に示すように、禁則情報取得部２２０１、データタイプ判別部２２０２、第１の禁則情報生成部２２０３、第２の禁則情報生成部２２０４、および禁則テーブル記憶部２２０５などの機能が端末装置２に実現される。禁則関係生成プログラム２０２０Ｐも、他のプログラムと同様に、上述の通り、ＲＡＭ２０ｂにロードされ、ＣＰＵ２０ａによって実行される。
【０１５８】
なお、ＰＪＬインデックステーブル記憶部１２０２には、図６に示すＰＪＬインデックステーブル１０５１が記憶されている。分解ＰＪＬテーブル記憶部１２０３には、図７〜図１２に示す分解ＰＪＬテーブル１０５２が記憶されている。
【０１５９】
禁則情報取得部２２０１は、画像形成装置１（本体）から、本体禁則テーブル２１５１に記載されたＰＪＬ禁則組合せ情報２０５１を取得する。なお、禁則情報取得部２２０１は、ＰＪＬ禁則組合せ情報の代わりに画像形成装置１の仕様書などを取得してもよい。
【０１６０】
画像形成装置１の補助記憶装置１０ｄには、図１８に示す本体禁則テーブル２１５１が記憶されている。本体禁則テーブル２１５１は、画像形成装置１側（本体側）の仕様としてＰＪＬ（ジョブを実行する装置側で使用される言語の一例）で規定された禁則グループ（禁則仕様）を記載したテーブルであり、複数のＰＪＬ禁則組合せ情報２０５１を含んでいる。禁則関係の情報であり、禁則関係にある複数のＰＪＬアイテム情報を含んでいる。各ＰＪＬアイテム情報は、「ＰＪＬの設定項目」（図１８中「ＰＪＬ＿Ｉｔｅｍ」）、「ＰＪＬ値のデータタイプ」（図１８中「ＰＪＬデータタイプ」）、および「ＰＪＬ値」（図１８中「ＰＪＬ＿Ｉｔｅｍ＿Ｖａｌｕｅ」）を含んでいる。
【０１６１】
ＰＪＬ値のデータタイプには、「固定値型」、「可変型数値」、および「可変型文字列」が存在する。「固定値型」には、値選択または二値などが含まれる。「可変型数値」には数値が含まれる。「可変型文字列」には文字列が含まれる。ＰＪＬのデータタイプは、ＰＪＬ値に対応するテーブルタイプが「一次元変換タイプ」および「インデックス付きタイプ」のいずれのタイプであるかという観点でさらに区分されていてもよい。
【０１６２】
なお、ＰＪＬ禁則組合せ情報２０５１は、禁則関係となる３つ以上のＰＪＬアイテム情報の組合せを示すものであってもよい。
【０１６３】
具体的には、１行目のＰＪＬ禁則組合せ情報２０５１ａは、ＰＪＬの設定項目が「Ａ１」であり、ＰＪＬ値のデータタイプが「固定値」であり、ＰＪＬ値が「ａ１１」であるＰＪＬアイテム情報と、ＰＪＬの設定項目が「Ａ６」であり、ＰＪＬ値のデータタイプが「固定値」であり、ＰＪＬ値が「ａ６１」であるＰＪＬアイテム情報とが禁則関係を有することを示している。
【０１６４】
２行目のＰＪＬ禁則組合せ情報２０５１ｂは、ＰＪＬの設定項目が「Ａ２」であり、ＰＪＬ値のデータタイプが「可変型数値」であり、ＰＪＬ値が「Ｐ３（Ａ２）」（Ｐ３は関数）であるＰＪＬアイテム情報と、ＰＪＬの設定項目が「Ａ３」であり、ＰＪＬ値のデータタイプが「可変型数値」であり、ＰＪＬ値が「Ｐ５（Ａ３）」（Ｐ５は関数）であるＰＪＬアイテム情報とが禁則関係を有することを示している。
【０１６５】
３行目のＰＪＬ禁則組合せ情報２０５１ｃは、ＰＪＬの設定項目が「Ａ４＿１」であり、ＰＪＬ値のデータタイプが「可変型文字列」であり、ＰＪＬ値が任意（任意の文字列）であるＰＪＬアイテム情報と、ＰＪＬの設定項目が「Ａ１」であり、ＰＪＬのデータタイプが「固定値型」であり、ＰＪＬ値が「ａ１２」であるＰＪＬアイテム情報とが禁則関係を有することを示している。
【０１６６】
データタイプ判別部２２０２は、禁則情報取得部２２０１にて取得したＰＪＬ禁則組合せ情報２０５１に含まれるＰＪＬ値のデータタイプが固定値選択型であるか可変型であるかを判別する。なお、ＰＪＬ値のデータタイプが１つでも可変型であれば、データタイプ判別部２２０２はＰＪＬ値のデータタイプが可変型であると判別する。
【０１６７】
具体的には、ＰＪＬ禁則組合せ情報２０５１ａは、ＰＪＬ値のデータタイプが固定値選択型であると判別される。ＰＪＬ禁則組合せ情報２０５１ｂおよび２０５１ｃは、ＰＪＬ値のデータタイプが可変型であると判別される。
【０１６８】
第１の禁則情報生成部２２０３は、ＰＪＬ値のデータタイプが可変型であるとデータタイプ判別部２４０３にて判別した場合に、図１９に示す手順で、そのＰＪＬ禁則組合せ情報２０５１と、分解ＰＪＬテーブル１０５２とに基づいて禁則組合せ情報２０５２を生成する。
【０１６９】
第１の禁則情報生成部２２０３は、ＰＪＬ禁則組合せ情報２０５１に記載されているＰＪＬの設定項目およびＰＪＬ値の両方と一致する分解ＰＪＬテーブルＩＤおよび分解ＰＪＬテーブル内インデックスの情報の組合せを、分解ＰＪＬテーブル１０５２から抽出する（＃２１０１）。この組合せは、禁則組合せ情報２０５２となる。
【０１７０】
例えば、ＰＪＬ禁則組合せ情報２０５１ａには、「Ａ１」というＰＪＬの設定項目と「ａ１１」というＰＪＬ値とで規定される情報と、「Ａ６」というＰＪＬの設定項目と「ａ６１」というＰＪＬ値とで規定される情報とが記載されている。この場合、第１の禁則情報生成部２２０３は、「Ａ１」および「ａ１１」の両方と一致する情報である「Ｔ１」という分解ＰＪＬテーブルＩＤおよび「Ｔ１１」という分解ＰＪＬテーブル内インデックスで規定される設定値の情報と、「Ａ６」および「ａ６１」の両方と一致する情報である「Ｔ６」という分解ＰＪＬテーブルＩＤおよび「Ｔ６１」という分解ＰＪＬテーブル内インデックスで規定される設定値の情報との組合せを、分解ＰＪＬテーブル１５２１（図７）および１５２６（図１２）の各々から抽出する。この組合せは、禁則組合せ情報２０５２ａとなる。
【０１７１】
同様に、第１の禁則情報生成部２２０３は、「Ａ１」および「ａ１１」の両方と一致する情報である「Ｔ１」という分解ＰＪＬテーブルＩＤおよび「Ｔ１１」という分解ＰＪＬテーブル内インデックスで規定される設定値の情報と、「Ａ６」および「ａ６１」の両方と一致する情報である「Ｔ６」という分解ＰＪＬテーブルＩＤおよび「Ｔ６３」という分解ＰＪＬテーブル内インデックスで規定される設定値の情報との組合せを、分解ＰＪＬテーブル１５２１（図７）および１５２６（図１２）の各々から抽出する。この組合せは、禁則組合せ情報２０５２ｂとなる。
【０１７２】
続いて、第１の禁則情報生成部２２０３は、抽出した情報を禁則組合せ情報２０５２として分解ＰＪＬテーブル間禁則テーブル２１５２（図２１）（禁則テーブルの一例）に書き込む（＃２１０２）。
【０１７３】
第２の禁則情報生成部２２０４は、ＰＪＬ値のデータタイプが可変型であるとデータタイプ判別部２２０２にて判別した場合に、図２０に示す手順で、そのＰＪＬ禁則組合せ情報２０５１と、分解ＰＪＬテーブル１０５２とに基づいて禁則組合せ情報２０５２を生成する。
【０１７４】
第２の禁則情報生成部２２０４は、ＰＪＬ禁則組合せ情報２０５１に記載されているＰＪＬの設定項目と一致する分解ＰＪＬテーブルＩＤおよび分解ＰＪＬテーブル内インデックスの情報の組合せを、分解ＰＪＬテーブル１０５２から抽出する（＃２２０１）。ステップ＃２２０１の処理では、第２の禁則情報生成部２２０４は、ＰＪＬ値を参照しない。この組合せは、禁則組合せ情報２０５２となる。
【０１７５】
例えば、ＰＪＬ禁則組合せ情報２０５１ｂには、「Ａ２」というＰＪＬの設定項目と「Ｐ３（Ａ２）」というＰＪＬ値とで規定される情報と、「Ａ３」というＰＪＬの設定項目と「Ｐ５（Ａ３）」というＰＪＬ値とで規定される情報とで規定される情報とが記載されている。この場合、第２の禁則情報生成部２２０４は、「Ａ２」と一致する情報である「Ｔ２」という分解ＰＪＬテーブルＩＤおよび「Ｔ２１」という分解ＰＪＬテーブル内インデックスで規定される設定値の情報と、「Ａ３」と一致する情報である「Ｔ３」という分解ＰＪＬテーブルＩＤおよび「Ｔ３１」という分解ＰＪＬテーブル内インデックスで規定される設定値の情報との組合せを、分解ＰＪＬテーブル１５２２（図８）および１５２３（図９）の各々から抽出する。この組合せは、禁則組合せ情報２０５２ｃとなる。
【０１７６】
同様に、第２の禁則情報生成部２２０４は、「Ａ２」と一致する情報である「Ｔ２」という分解ＰＪＬテーブルＩＤおよび「Ｔ２１」という分解ＰＪＬテーブル内インデックスで規定される設定値の情報と、「Ａ３」と一致する情報である「Ｔ３」という分解ＰＪＬテーブルＩＤおよび「Ｔ３２」という分解ＰＪＬテーブル内インデックスで規定される設定値の情報との組合せを、分解ＰＪＬテーブル１５２２（図８）および１５２３（図９）の各々から抽出する。この組合せは、禁則組合せ情報２０５２ｄとなる。
【０１７７】
また、ＰＪＬ禁則組合せ情報２０５１ｃには、「Ａ４＿１」というＰＪＬの設定項目で規定される情報と、「Ａ１」というＰＪＬの設定項目と「ａ１２」というＰＪＬ値とで規定される情報とが記載されている。この場合、第２の禁則情報生成部２２０４は、「Ａ４＿１」と一致する情報である「Ｔ４」という分解ＰＪＬテーブルＩＤおよび「Ｔ４１」という分解ＰＪＬテーブル内インデックスで規定される設定値の情報と、「Ａ１」および「ａ１２」の両方と一致する情報である「Ｔ１」という分解ＰＪＬテーブルＩＤおよび「Ｔ１２」という分解ＰＪＬテーブル内インデックスで規定される設定値の情報との組合せを、分解ＰＪＬテーブル１５２４（図１０）および１５２１（図７）の各々から抽出する。この組合せは、禁則組合せ情報２０５２ｅとなる。
【０１７８】
同様に、第２の禁則情報生成部２２０４は、「Ａ４＿１」と一致する情報である「Ｔ４」という分解ＰＪＬテーブルＩＤおよび「Ｔ４２」という分解ＰＪＬテーブル内インデックスで規定される設定値の情報と、「Ａ１」および「ａ１２」の両方と一致する情報である「Ｔ１」という分解ＰＪＬテーブルＩＤおよび「Ｔ１２」という分解ＰＪＬテーブル内インデックスで規定される設定値の情報との組合せを、分解ＰＪＬテーブル１５２４（図１０）および１５２１（図７）の各々から抽出する。この組合せは、禁則組合せ情報２０５２ｆとなる。
【０１７９】
続いて、第２の禁則情報生成部２２０４は、抽出した情報を禁則組合せ情報２０５２として分解ＰＪＬテーブル間禁則テーブル２１５２に書き込む（＃２２０２）。ステップ＃２２０２において、第２の禁則情報生成部２２０４は、ＰＪＬ禁則組合せ情報２０５１のＰＪＬ値のデータタイプが可変型である場合には、抽出した禁則組合せ情報２０５２に含まれるそのＰＪＬ値を付加して、分解ＰＪＬテーブル間禁則テーブル２１５２（図２１）に書き込む。
【０１８０】
例えば、ＰＪＬ禁則組合せ情報２０５１ｂにおける２つのＰＪＬアイテム情報は、それぞれ「Ｐ３（Ａ２）」および「Ｐ５（Ａ３）」というＰＪＬ値を含んでいる。この場合、禁則組合せ情報２０５２ｃおよび２０５２ｄの各々は、これらのＰＪＬ値が付加されて、分解ＰＪＬテーブル間禁則テーブル２１５２に書き込まれる。
【０１８１】
また、ＰＪＬ禁則組合せ情報２０５１ｃにおける一方のＰＪＬアイテム情報は、ＰＪＬ値が任意の文字列となっている。この場合、禁則組合せ情報２０５２ｅおよび２０５２ｆの各々は、このＰＪＬ値が付加されて、分解ＰＪＬテーブル間禁則テーブル２１５２に書き込まれる。
【０１８２】
禁則テーブル記憶部２２０５には、図２１に示す分解ＰＪＬテーブル間禁則テーブル２１５２が記憶されている。分解ＰＪＬテーブル間禁則テーブル２１５２は、端末装置２において入力を受け付ける設定値の組合せであって、禁則関係となる設定値の組合せを示すものであり、複数の禁則組合せ情報２０５２を含んでいる。禁則組合せ情報２０５２に含まれる設定値に対応するＰＪＬ値が固定値のデータタイプである場合、禁則組合せ情報２０５２は、禁則関係となる設定値に関する分解ＰＪＬテーブル１０５２を特定する情報である分解ＰＪＬテーブルＩＤと、分解ＰＪＬテーブル１０５２における禁則関係となる設定値に対応する分解ＰＪＬテーブル内インデックス（図２１中「分解ＰＪＬ内Ｉｎｄｅｘ」）とを含んでいる。禁則組合せ情報２０５２に含まれる設定値に対応するＰＪＬ値が可変型のデータタイプである場合、禁則組合せ情報２０５２は、禁則関係となる設定値のＰＪＬ値の条件（図２１中「ＰＪＬ  ｖａｌｕｅの条件」）をさらに含んでいる。
【０１８３】
なお、禁則組合せ情報２０５２は、禁則関係となる３つ以上の設定値の組合せを示すものであってもよい。
【０１８４】
具体的には、禁則組合せ情報２０５２ａは、「Ｔ１」という分解ＰＪＬテーブルＩＤおよび「Ｔ１１」という分解ＰＪＬテーブル内インデックスで規定される設定値と、「Ｔ６」という分解ＰＪＬテーブルＩＤおよび「Ｔ６１」という分解ＰＪＬテーブル内インデックスで規定される設定値とが禁則関係にあることを示している。
【０１８５】
また禁則組合せ情報２０５２ｃは、「Ｔ２」という分解ＰＪＬテーブルＩＤおよび「Ｔ２１」という分解ＰＪＬテーブル内インデックスで規定されるＰＪＬ値が「Ｐ３（Ａ２）」というＰＪＬ値の条件を満たし、かつ「Ｔ３」という分解ＰＪＬテーブルＩＤおよび「Ｔ３１」という分解ＰＪＬテーブル内インデックスで規定されるＰＪＬ値が「Ｐ５（Ａ３）」というＰＪＬ値の条件を満たす場合、これらの設定値は禁則関係にあることを示している。
【０１８６】
さらに禁則組合せ情報２０５２ｅは、「Ｔ４」という分解ＰＪＬテーブルＩＤおよび「Ｔ４１」という分解ＰＪＬテーブル内インデックスで規定されるＰＪＬ値が任意の値（文字列）である設定値と、「Ｔ１」という分解ＰＪＬテーブルＩＤおよび「Ｔ１２」という分解ＰＪＬテーブル内インデックスで規定される設定値とが禁則関係にあることを示している。
【０１８７】
次に、端末装置２が実行する禁則組合せ情報の生成処理を行う際の全体的な処理の流れの例を、図２２に示すフローチャートを参照しながら説明する。なお、この処理は、禁則関係生成プログラム２０２０Ｐに基づいて行われる。
【０１８８】
端末装置２は、画像形成装置１との接続が確立された場合などの任意のタイミングで、本体禁則テーブル２１５１に記載されたＰＪＬ禁則組合せ情報２０５１を取得する（＃２００１）。
【０１８９】
次に端末装置２は、取得したＰＪＬ禁則組合せ情報２０５１のＰＪＬ値のデータタイプが固定値選択型であるか可変型であるかを判別する（＃２００２）。
【０１９０】
ステップ＃２００２において、取得したＰＪＬ禁則組合せ情報２０５１のＰＪＬ値のデータタイプが固定値選択型であると判別した場合（＃２００２で「固定値選択型」）、端末装置２は、固定値選択型ＰＪＬテーブル間禁則情報生成処理（図１９）を行うことにより、禁則組合せ情報を生成し（＃２００３）、ステップ＃２００５の処理へ進む。
【０１９１】
ステップ＃２００２において、取得したＰＪＬ禁則組合せ情報２０５１のＰＪＬ値のデータタイプが可変型であると判別した場合（＃２００２で「可変型」）、端末装置２は、可変型ＰＪＬテーブル間禁則情報生成処理（図２０）を行うことにより、禁則組合せ情報を生成し（＃２００４）、ステップ＃２００５の処理へ進む。
【０１９２】
ステップ＃２００５において、端末装置２は、本体禁則テーブル２１５１に記載された全てのＰＪＬ禁則組合せ情報２０５１についての禁則組合せ情報を生成したか否かを判別する（＃２００５）。
【０１９３】
ステップ＃２００５において、本体禁則テーブル２１５１に記載された全てのＰＪＬ禁則組合せ情報２０５１についての禁則組合せ情報を生成しないと判別した場合（＃２００５でＮＯ）、端末装置２は、ステップ＃２００１の処理へ進み、本体禁則テーブル２１５１に記載された別のＰＪＬ禁則組合せ情報２０５１を取得する。
【０１９４】
ステップ＃２００５において、本体禁則テーブル２１５１に記載された全てのＰＪＬ禁則組合せ情報２０５１についての禁則組合せ情報を生成したと判別した場合（＃２００５でＹＥＳ）、端末装置２は処理を終了する。
【０１９５】
［禁則関係の検出方法］
【０１９６】
続いて、禁則関係の検出方法について説明する。
【０１９７】
端末装置２は、ダイアログボックス１０７１（図５）において、少なくとも１つの設定値の変更を受け付けた場合に、ＰＪＬインデックステーブル１０５１、分解ＰＪＬテーブル１０５２、および分解ＰＪＬテーブル間禁則テーブル２１５２（図２１）に基づいて、変更を受け付けた設定値と、端末装置２において設定されている他の設定値との禁則関係の有無を検出する。端末装置２は、禁則関係を検出するためのプログラムとして、禁則関係検出プログラム２０３０Ｐを補助記憶装置２０ｄに記憶している。
【０１９８】
図２３は、端末装置２の禁則関係の検出に関する機能的構成の例を示す図である。図２４は、固定型選択型禁則検出処理を示すフローチャートである。図２５は、可変型禁則検出処理を示すフローチャートである。図２６は、端末装置２が実行する禁則関係の検出処理の全体的な処理の流れの例を説明するフローチャートである。
【０１９９】
禁則関係検出プログラム２０３０Ｐによると、図２３に示すように、設定受付部２４０１、分解ＰＪＬテーブルＩＤ検索部２４０２、データタイプ判別部２４０３、第１の禁則検出部２４０４、第２の禁則検出部２４０５、および禁則関係出力部２４０６などが端末装置２に実現される。禁則関係検出プログラム２０３０Ｐも、他のプログラムと同様に、上述の通り、ＲＡＭ２０ｂにロードされ、ＣＰＵ２０ａによって実行される。
【０２００】
なお、ＰＪＬインデックステーブル記憶部１２０２には、図６に示すＰＪＬインデックステーブル１０５１が記憶されている。分解ＰＪＬテーブル記憶部１２０３には、図７〜図１２に示す分解ＰＪＬテーブル１０５２が記憶されている。禁則テーブル記憶部２２０５には、図２１に示す分解ＰＪＬテーブル間禁則テーブル２１５２が記憶されている。
【０２０１】
設定受付部２４０１は、ダイアログボックス１０７１（図５）において設定値の変更２４５０を受け付ける。
【０２０２】
ここでは、「Ｂ１」という設定項目（図７）の設定値が「ｂ１１」から「ｂ１２」に変更された場合（ケース１と記す）、および「Ｂ６」という設定項目（図９）の設定値が「９０」に変更された場合（ケース２と記す）とを例に挙げて説明する。
【０２０３】
分解ＰＪＬテーブルＩＤ検索部２４０２は、ＰＪＬインデックステーブル１０５１を参照し、設定値が変更された設定項目に対応する分解ＰＪＬテーブルＩＤを検索する。検索の結果、１つの設定項目に対して複数の分解ＰＪＬテーブルが抽出されてもよい。
【０２０４】
具体的には、ケース１では、「Ｂ１」に対応する「Ｔ１」という分解ＰＪＬテーブルＩＤが抽出（特定）される。ケース２では、「Ｂ６」に対応する「Ｔ３」という分解ＰＪＬテーブルＩＤが抽出される。
【０２０５】
データタイプ判別部２４０３は、抽出した分解ＰＪＬテーブルＩＤを有する分解ＰＪＬテーブル１０５２を参照して、ＰＪＬインデックステーブル１０５１における変更された設定値のデータタイプが固定値選択型であるか、あるいは可変型であるかを判別する。固定値選択型とは、複数の固定値の中から値が選択されるデータタイプであり、値選択または二値などである。可変型とは、数値または文字列（ｓｔｒｉｎｇ）などである。
【０２０６】
具体的には、ケース１では、「Ｔ１」という分解ＰＪＬテーブルＩＤを有する分解ＰＪＬテーブル１５２１（図７）を参照し、「ｂ１１」という設定値のデータタイプが固定値選択型であると判別される。ケース２では、「Ｔ３」という分解ＰＪＬテーブルＩＤを有する分解ＰＪＬテーブル１５２３（図９）を参照し、「９０」という設定値のデータタイプが可変型であると判別される。
【０２０７】
第１の禁則検出部２４０４は、変更された設定値のデータタイプが固定値選択型であるとデータタイプ判別部２４０３にて判別した場合に、図２４に示す手順で、変更後の設定値と他の設定値とが禁則関係にあるか否かを検出する（固定値選択型禁則検出処理）。
【０２０８】
第１の禁則検出部２４０４は、分解ＰＪＬテーブルＩＤ検索部２４０２にて抽出した分解ＰＪＬテーブルＩＤを有する分解ＰＪＬテーブル１０５２の中から、変更された設定値を含む分解ＰＪＬテーブル内インデックスを検索（特定）する（＃２４０１および＃２４０２）。検索の結果、１つの変更された設定値に対して複数の分解ＰＪＬテーブル内インデックスが特定されてもよい。
【０２０９】
具体的には、ケース１では、「Ｔ１」という分解ＰＪＬテーブルＩＤを有する分解ＰＪＬテーブル１５２１（図７）の中から、「ｂ１１」という設定値を含む「Ｔ１１」という分解ＰＪＬテーブル内インデックスが特定される。
【０２１０】
次に、第１の禁則検出部２４０４は、分解ＰＪＬテーブル間禁則テーブル２１５２から、特定した分解ＰＪＬテーブル内インデックスと禁則関係を有する分解ＰＪＬテーブル内インデックスを抽出する（＃２４０３および＃２４０４）。検索の結果、抽出される分解ＰＪＬテーブル内インデックスの数は任意であり、ゼロであってもよい。
【０２１１】
具体的には、ケース１では、｛Ｔ１１，Ｔ６１｝という分解ＰＪＬテーブル内インデックスの組合せを含む禁則組合せ情報２０５２ａから、「Ｔ６１」という分解ＰＪＬテーブル内インデックスが抽出され、｛Ｔ１１，Ｔ６３｝という分解ＰＪＬテーブル内インデックスの組合せを含む禁則組合せ情報２０５２ｂから「Ｔ６３」という分解ＰＪＬテーブル内インデックスが抽出される。
【０２１２】
次に、第１の禁則検出部２４０４は、禁則関係を有する分解ＰＪＬテーブル内インデックスから設定値を抽出する。第１の禁則検出部２４０４は、抽出した設定値がＡＮＤ条件となるような条件を規定し、現在の設定値と比較する（＃２４０５）。
【０２１３】
第１の禁則検出部２４０４は、比較の結果、規定した条件の設定値と現在の設定値とが一致すれば、現在の設定値は禁則関係にあることを検出し（＃２４０６）、一致しなければ禁則関係を検出しない。禁則関係を有する分解ＰＪＬテーブル内インデックスが複数抽出された場合には、全ての禁則関係を有する分解ＰＪＬテーブル内インデックスについて比較を繰り返す。
【０２１４】
具体的には、ケース１では、「Ｔ１１」というＰＪＬテーブル内インデックス（図７）から「Ｂ１」という設定項目の「ｂ１１」という設定値（Ｂ１＝ｂ１１）および「Ｂ２」という設定項目の「ｂ２１」という設定値（Ｂ２＝ｂ２１）が抽出され、「Ｔ６１」というＰＪＬテーブル内インデックス（図１２）から「Ｂ７＿３」という設定項目の「ｂ７４」という設定値（Ｂ７＿３＝ｂ７４）が抽出される。そして、抽出した設定値から「Ｂ１＝ｂ１１、Ｂ２＝ｂ２１、かつＢ７＿３＝ｂ７４」という条件が規定され、この条件の設定値と、現在の設定値（現在のダイアログボックス１０７１（図５）において設定されている設定値）とが比較される。
【０２１５】
第１の禁則検出部２４０４は、抽出した禁則組合せ情報２０５２に含まれる分解ＰＪＬテーブル内インデックスの中に、インデックス付きタイプのテーブルタイプのもの（ｓ×ｔの行列である設定値を含むもの）が含まれている場合には（＃２４０７でＹＥＳ）、分解ＰＪＬテーブル内インデックスの設定値のインデックスを１増やして、分解ＰＪＬテーブル内インデックスの次の設定と現在の設定値とを比較する。第１の禁則検出部２４０４は、設定値のインデックスが最大値を超えるまで（全ての設定値の比較を終えるまで）、上記の比較を繰り返す（＃２４０８および＃２４０９）。
【０２１６】
第２の禁則検出部２４０５は、変更された設定値のデータタイプが可変型であるとデータタイプ判別部２４０３にて判別した場合に、図２５に示す手順で、変更後の設定値と他の設定値とが禁則関係にあるか否かを検出する（可変型禁則検出処理）。
【０２１７】
第２の禁則検出部２４０５は、分解ＰＪＬテーブルＩＤ検索部２４０２にて抽出した分解ＰＪＬテーブルＩＤを有する分解ＰＪＬテーブルの中から、変更された設定値と合致する値条件列を有する分解ＰＪＬテーブル内インデックスを検索（特定）する（＃２５０１および＃２５０２）。検索の結果、１つの変更された設定値に対して複数の分解ＰＪＬテーブル内インデックスが特定されてもよい。
【０２１８】
具体的には、ケース２では、「Ｔ３」という分解ＰＪＬテーブルＩＤを有する分解ＰＪＬテーブル１５２３（図９）の中から、「Ｂ６＝９０」という変更された設定値と合致する値条件列（「Ｂ６＜１００」）を有する「Ｔ３１」という分解ＰＪＬテーブル内インデックスが特定される。「Ｔ３２」という分解ＰＪＬテーブル内インデックスは、値条件列が合致しないので特定されない。
【０２１９】
次に、第２の禁則検出部２４０５は、特定した分解ＰＪＬテーブル内インデックスに含まれる関数で、変更された設定値を用いて演算を行うことにより、変更された設定値をＰＪＬ値に変換する（＃２５０３）。演算の種類には、設定値が数値の場合は関数を用いた演算などがあり、設定値が文字列の場合は文字列の分割、結合、または文字列長の取得などがある。
【０２２０】
具体的には、ケース２では、「Ｔ３１」という分解ＰＪＬテーブル内インデックスの「Ｂ６＊Ｂ８」という関数に「Ｂ６＝９０」を代入して演算を行う。
【０２２１】
次に、第２の禁則検出部２４０５は、禁則組合せ情報２０５２のＰＪＬ値の条件を演算結果が満たしている場合には、分解ＰＪＬテーブル間禁則テーブル２１５２の中から、特定した分解ＰＪＬテーブルＩＤおよび分解ＰＪＬテーブル内インデックス、ならびに演算結果（ＰＪＬ値）と禁則関係を有する分解ＰＪＬテーブル内インデックスを抽出する（＃２５０４および＃２５０５）。検索の結果、抽出される分解ＰＪＬテーブル内インデックスの数は任意であり、ゼロであってもよい。
【０２２２】
具体的には、ケース２では、演算結果が「Ｐ５（Ａ３）」というＰＪＬ値の条件を満たしている場合には、｛Ｔ２１，Ｔ３１｝という分解ＰＪＬテーブル内インデックスの組合せを含む禁則組合せ情報２０５２ｃから、「Ｔ２１」という分解ＰＪＬテーブル内インデックスが抽出される。
【０２２３】
次に、第２の禁則検出部２４０５は、禁則関係を有する分解ＰＪＬテーブル内インデックスから設定値を抽出する。第２の禁則検出部２４０５は、抽出した設定値と現在の設定値と比較する（＃２５０６）。
【０２２４】
禁則組合せ情報２０５２において、抽出した分解ＰＪＬテーブル内インデックスがＰＪＬ値の条件（図２１中「ＰＪＬ  ｖａｌｕｅの条件」）を含んでいる場合、ステップ＃２５０６において、第２の禁則検出部２４０５は、その分解ＰＪＬテーブル内インデックスの現在の設定値を用いてＰＪＬ値を算出し、算出したＰＪＬ値とＰＪＬ値の条件とを比較する。
【０２２５】
第２の禁則検出部２４０５は、抽出した設定値と現在の設定値とが一致する場合（抽出した分解ＰＪＬテーブル内インデックスがＰＪＬ値の条件を含んでいる場合には、算出したＰＪＬ値がＰＪＬ値の条件を満たしているときは）、現在の設定値が禁則関係にあることを検出し（＃２５０７）、そうでない場合には禁則関係を検出しない。禁則関係を有する分解ＰＪＬテーブル内インデックスが複数抽出された場合には、全ての禁則関係を有する分解ＰＪＬテーブル内インデックスについて比較を繰り返す。
【０２２６】
具体的には、ケース２では、関連する禁則組合せ情報２０５２ｃにおいて、「Ｔ２１」という禁則関係を有する分解ＰＪＬテーブル内インデックスが「Ｐ３（Ａ２）」というＰＪＬ値の条件を含んでいる。このため、禁則関係を有する分解ＰＪＬテーブル内インデックスの現在の設定値を用いて「Ｂ４＊Ｂ５＊Ｂ３」という関数でＰＪＬ値が算出され、算出したＰＪＬ値と、「Ｐ３（Ａ２）」というＰＪＬ値の条件とが比較される。
【０２２７】
第２の禁則検出部２４０５は、抽出した禁則組合せ情報２０５２に含まれる分解ＰＪＬテーブル内インデックスの中に、インデックス付きテーブルタイプのもの（ｓ×ｔの行列である設定値を含むもの）が含まれている場合には（＃２５０８でＹＥＳ）、分解ＰＪＬテーブル内インデックスの設定値のインデックスを１増やして、分解ＰＪＬテーブル内インデックスの次の設定値と現在の設定値とを比較する。第２の禁則検出部２４０５は、設定値のインデックスが最大値を超えるまで（全ての設定値の比較を終えるまで）、上記の比較を繰り返す（＃２５０９および＃２５１０）。
【０２２８】
禁則関係出力部２４０６は、第１の禁則検出部２４０４または第２の禁則検出部２４０５による禁則関係の検出結果２４５１を出力する。
【０２２９】
次に、端末装置２が禁則関係の検出出理を行う際の全体的な処理の流れの例を、図２６に示すフローチャートを参照しながら説明する。なお、この処理は、禁則関係検出プログラム２０３０Ｐに基づいて行われる。
【０２３０】
端末装置２は、ダイアログボックス１０７１（図５）において設定値の変更２４５０を受け付ける（＃２３０１）と、ＰＪＬインデックステーブル１０５１を参照し、変更された設定値に対応する設定項目を含む分解ＰＪＬテーブルＩＤを検索する（＃２３０２）。続いて端末装置２は、変更された設定値に対応する設定項目を含む分解ＰＪＬテーブルＩＤのうち、未処理の（＃２３０５または＃２３０６の処理を経ていない）分解ＰＪＬテーブルＩＤがあるか否かを判別する（＃２３０３）。
【０２３１】
ステップ＃２３０３において、未処理の分解ＰＪＬテーブルＩＤがあると判別した場合（＃２３０３でＹＥＳ）、端末装置２は、未処理の分解ＰＪＬテーブルＩＤの分解ＰＪＬテーブル１０５２を参照し、変更された設定値のデータタイプが固定値選択型であるか可変型であるかを判別する（＃２３０４）。
【０２３２】
ステップ＃２３０４において、変更された設定値のデータタイプが固定値選択型であると判別した場合（＃２３０４で「固定値選択型」）、端末装置２は、固定値選択型禁則検出処理（図２４）を行うことにより、現在の設定値の禁則関係を検出し（＃２３０５）、ステップ＃２３０２の処理へ進む。
【０２３３】
ステップ＃２３０４において、変更された設定値のデータタイプが可変型であると判別した場合（＃２３０４で「可変型」）、端末装置２は、可変型禁則検出処理（図２５）を行うことにより、現在の設定値の禁則関係を検出し（＃２３０６）、ステップ＃２３０２の処理へ進む。
【０２３４】
ステップ＃２３０３において、未処理の分解ＰＪＬテーブルＩＤが無いと判別した場合（＃２３０３でＮＯ）、端末装置２は、後述する禁則関係情報受信部３１０５に対して禁則関係の検出結果２４５１を出力し、処理を終了する。
【０２３５】
［禁則関係の回避方法］
【０２３６】
続いて、禁則関係が検出された場合の禁則関係の回避方法について説明する。
【０２３７】
図２７は、端末装置２の禁則関係の回避に関する機能的構成の例を示す図である。図２８は、禁則グループテーブル３１４１の例を示す図である。図２９は、優先度辞書テーブル３１４２の例を示す図である。図３０は、属性辞書テーブル３１４３の例を示す図である。図３１は、コントロールの例を示す図である。図３２は、第１の禁則処理テーブル３１４４の例を示す図である。図３３は、第２の禁則処理テーブル３１４５の例を示す図である。
【０２３８】
禁則回避条件式生成プログラム３０２０Ｐによると、図２７に示すように、禁則グループテーブル生成部３１００、禁則グループ検索部３１０１、項目ソート部３１０２、第１の条件式生成部３１０３、第２の条件式生成部３１０４、禁則関係情報受信部３１０５、ダイアログ表示部３１０６、設定画面表示部３１０７、禁則グループテーブル記憶部３１３１、辞書テーブル記憶部３１３２、および禁則処理テーブル記憶部３１３４などが実現される。禁則回避条件式生成プログラム３０２０Ｐも、他のプログラムと同様に、上述の通り、ＲＡＭ２０ｂにロードされ、ＣＰＵ２０ａによって実行される。
【０２３９】
禁則グループテーブル生成部３１００は、禁則組合せ情報２０５２に基づいて、禁則グループテーブル３１４１を作成する。
【０２４０】
禁則グループテーブル記憶部３１３１には、禁則グループテーブル３１４１が記憶される。禁則グループテーブル３１４１は、複数の項目の値同士のグループごとの、禁則関係の有無を示すテーブルである。図２８には、パンチ穴を開ける仕上げに関する設定のための禁則グループテーブル３１４１が示されている。
【０２４１】
禁則グループテーブル３１４１には、４つの項目「用紙サイズ」、「原稿方向」、「パンチ穴数」、および「パンチ位置」が示される。
【０２４２】
用紙サイズは、パンチ穴を開ける対象である印刷物のサイズである。この項目は、「Ａ３」および「Ａ４」のいずれかの値を取り得る。「Ａ３」は、Ａ３サイズを意味し、「Ａ４」は、Ａ４サイズを意味する。パンチ穴数は、印刷物に開けるパンチ穴の数である。パンチ位置は、印刷物における、パンチ穴を開ける位置である。
【０２４３】
原稿方向は、印刷物の向きである。この項目は、「縦」および「横」のいずれかの値を取り得る。「縦」は、縦長（ｐｏｒｔｒａｉｔ）であることを意味し、「横」は、横長（ｌａｎｄｓｃａｐｅ）であることを意味する。
【０２４４】
図２７に戻って、辞書テーブル記憶部３１３２には、優先度辞書テーブル３１４２および属性辞書テーブル３１４３が記憶される。
【０２４５】
優先度辞書テーブル３１４２には、図２９のように、項目ごとの優先度が示される。「優先度」は、禁則関係の回避において他の項目よりも優先的にその項目の値が維持される度合である。つまり、優先度が低い項目ほど、禁則関係の回避のために別の値に変更されるなどの処理が施される。また、優先度は、「重要度」と言うことができる。他の項目よりも優先的に設定されることが望ましい項目に対して、より高い優先度が設定される。なお、優先度は、「１」、「２」、・・・の順に高い。
【０２４６】
属性辞書テーブル３１４３には、図３０のように、項目ごとの属性データ３０５０が格納されている。以下、各属性データ３０５０を「属性データ３０５１」、「属性データ３０５２」、「属性データ３０５３」、「属性データ３０５４」、「属性データ３０５５」、「属性データ３０５６」・・・と区別して記載することがある。
【０２４７】
属性データ３０５０において、「設定値」は、その項目に対して設定することができる値である。
【０２４８】
「ＲｅｃｏｖｅｒＶａｌｕｅ」は、各設定値を禁則関係にならないように変更する際の候補の値である。つまり、禁則関係から正常な状態への回復のための候補の値である。ＲｅｃｏｖｅｒＶａｌｕｅを１つだけ有する設定値もあれば、複数有する設定値もある。１つの場合は、候補の値が「ＲｅｃｏｖｅｒＶａｌｕｅ１」に示される。複数の場合は、優先的に用いられる候補の値から順に「ＲｅｃｏｖｅｒＶａｌｕｅ１」、「ＲｅｃｏｖｅｒＶａｌｕｅ２」、・・・に示される。
【０２４９】
「コントロールタイプ」は、その項目に対して値を設定するために用いられるコントロールのタイプである。
【０２５０】
なお、「コントロール」は、情報または指令の入力を受け付けるための表示用の要素（オブジェクト）である。１つの項目の設定のために複数のコントロールが組み合わせて使用される場合もある。
【０２５１】
「ＣｏｍｂｏＢｏｘ」、「ＣｈｅｃｋＢｏｘ」、「ＲａｄｉｏＢｕｔｔｏｎ」、および「Ｂｕｔｔｏｎ」は、それぞれ、公知の、例えばＨＴＭＬ（Ｈｙｐｅｒｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）におけるコンボボックス、チェックボックス、ラジオボタン、およびボタンがコントロールとして用いられることを意味する。
【０２５２】
「ペアとなるＣｈｅｃｋＢｏｘ」は、コントロールタイプがＣｈｅｃｋＢｏｘと他のコントロールとの組合せ（ペア）である場合における、このＣｈｅｃｋＢｏｘの識別子である。
【０２５３】
例えば、Ｆｏｌｄｉｎｇの項目のコントロールタイプは、「ＣｈｅｃｋＢｏｘ＋ＣｏｍｂｏＢｏｘ」である。これは、チェックボックスおよびコンボボックスが組み合わされてコントロールとして用いられることを意味する。例えば、図３１（Ａ）のようにチェックボックス３０４１とコンボボックス３０４２とがコントロールとして用いられる。そして、チェックボックス３０４１に「ＣｈｅｃｋＦｏｌｄ」という識別子が付されていれば、属性データ３０５１の通り、「ＣｈｅｃｋＦｏｌｄ」が、ペアとなるＣｈｅｃｋＢｏｘとして設定される。なお、チェックボックス３０４１が「Ｏｎ」に切り換えられ、三角のボタンが選択されると、図３１（Ｂ）のように「中折り」および「三つ折り」の値を選択肢と示すドロップダウンリストが表われる。
【０２５４】
なお、優先度辞書テーブル３１４２には、図２９に示した各項目の優先度のほか、用紙サイズ、パンチ穴数、およびパンチ位置それぞれの優先度が示される。同様に、属性辞書テーブル３１４３には、図３０に示した各項目の属性データ３０５０のほか、用紙サイズ、パンチ穴数、およびパンチ位置それぞれの属性データ３０５０が格納されている。
【０２５５】
図２７に戻って、禁則処理テーブル記憶部３１３４には、第１の禁則処理テーブル３１４４および第２の禁則処理テーブル３１４５が記憶される。
【０２５６】
第１の禁則処理テーブル３１４４には、図３２のように、コントロールタイプに応じて、どのような処理を禁則処理（禁則関係を回避するための処理）として実行するのか、および、その処理を識別する番号（コマンドタイプ番号）が示される。
【０２５７】
第２の禁則処理テーブル３１４５にも、図３３のように、コントロールタイプごとの禁則処理およびコマンドタイプ番号が示される。
【０２５８】
優先度辞書テーブル３１４２、属性辞書テーブル３１４３、第１の禁則処理テーブル３１４４、および第２の禁則処理テーブル３１４５は、画像形成装置１の開発者などによって予め用意される。
【０２５９】
続いて、禁則回避条件式の生成方法について説明する。
【０２６０】
図３４は、条件式生成処理の流れの例を説明するフローチャートである。
【０２６１】
禁則グループ検索部３１０１は、禁則グループテーブル３１４１（図２８参照）に示されるグループの中から禁則グループ（禁則関係にあるグループ、つまり「×」のペア）を検索する。
【０２６２】
項目ソート部３１０２は、禁則グループが禁則グループ検索部３１０１によって見つかると、その禁則グループを構成する項目を、優先度辞書テーブル３１４２（図２９参照）に示される優先度の高い順に並べる。
【０２６３】
例えば、禁則グループテーブル３１４１において太枠で示す右から３列目、上から２行目の「×」に係る禁則グループが見つかった場合は、用紙サイズ、原稿方向、パンチ穴数、およびパンチ位置を、それぞれの優先度の高い順に、用紙サイズ、パンチ穴数、パンチ位置、および原稿方向の順に並べる。なお、優先度が等しい複数の項目は、任意に並べればよい。
【０２６４】
そして、項目ソート部３１０２は、優先度が高い順に各項目に「１」、「２」、・・・の優先順位を付ける。ただし、優先度が等しい項目については、同じ優先順位を付ける。したがって、上述の例の場合は、用紙サイズおよびパンチ穴数の優先度が等しいので、用紙サイズ、パンチ穴数、パンチ位置、および原稿方向のそれぞれに、「１」、「１」、「３」、および「４」の優先順位を付ける。
【０２６５】
第１の条件式生成部３１０３および第２の条件式生成部３１０４は、項目ソート部３１０２による結果に応じて、禁則グループ検索部３１０１によって見つかった禁則グループの禁則回避条件式を生成する。
【０２６６】
ところで、禁則回避条件式は、次の（６）式のフォーマットを有する。
【数４】
2018010354.tif 000006
【０２６７】
左辺の要素は、次の内容を示す。<Item1>は、トリガアイテムである。<Index>は、禁則回避条件式を識別する番号（例えば、１，２，３，・・・のようなシーケンス番号）である。
【０２６８】
なお、「トリガアイテム」は、禁則グループの項目のうちの、値を設定しようとしている項目である。また、後に記載する「ターゲットアイテム」は、この禁則グループの項目のうちの、トリガアイテムよりも先に設定が行われている項目である。
【０２６９】
右辺の要素は、次の内容を示す。<Item2>、・・・、<Item(m+n)>は、いずれも、禁則グループの項目のうちの、トリガアイテム以外の項目であって、左（先頭）から順に優先度の高い項目を示す。
【０２７０】
<ItemK-value>は、<ItemK>の値である。ただし、１≦Ｋ≦（ｍ＋ｎ）である。例えば、<Item2-value>は、<Item2>の値である。「ｍ＋ｎ」は、次元数である。禁則グループテーブル３１４１（図２８参照）の場合は、「４」である。
【０２７１】
つまり、<Item1>に<Item1-Value>が設定されると、<Item1-value>、<Item2-value>、・・・、<Item(m+n)-value>のグループに禁則関係が生じる。
【０２７２】
<Type>は、上に述べた禁則処理のコマンドタイプ番号である。ただし、<Type>は禁則回避条件式に含まれない場合がある。
【０２７３】
<ItemL-Recover value>は、この禁則グループから禁則関係を回避することができる、<ItemL>の値である。ただし、２≦Ｌ≦（ｍ＋ｎ）である。すなわち、<ItemL-value>を<ItemL-Recover value>に変更すれば、禁則関係が回避される。ただし、すべての<ItemL>に<ItemL-Recover value>があるとは、限らない。１つもない場合もある。
【０２７４】
第１の条件式生成部３１０３は、禁則グループ検索部３１０１によって見つかった禁則グループの中の優先度が最も低い項目が１つだけであった際に、この項目がトリガアイテムであり残りの項目がターゲットアイテムである場合の禁則回避条件式を次のように生成する。
【０２７５】
第１の条件式生成部３１０３は、（６）式の左辺の<Item1>へこの項目（トリガアイテム）の識別子（例えば、項目名）を代入し、未だ発行されていない番号のうち最も小さい番号を<Index>へ代入する。
【０２７６】
さらに、第１の条件式生成部３１０３は、（６）式の右辺の<Type>を削除する。または、禁則処理を行わないことを示す番号を<Type>へ代入してもよい。<Item2>、・・・、<Item(m+n)>へ、トリガアイテム以外の項目（残りの項目）の項目名を、優先順位の高い順に代入する。<Item2-Recover value>、・・・、<Item(m+n)-Recover value>を削除する。
【０２７７】
例えば、上述の項目「用紙サイズ」の値「Ａ３」、項目「原稿方向」の値「横」、項目「パンチ穴数」の値「３穴」、および項目「パンチ位置」の値「上」（図２８の太枠の禁則グループ）は、項目ソート部３１０２によって、優先度の高い順に「用紙サイズ」の値「Ａ３」、項目「パンチ穴数」の値「３穴」、項目「パンチ位置」の値「上」、および項目「原稿方向」の値「横」と並べられる。しかも、原稿方向は、この禁則グループの中で優先度が単独で最も低い項目である。
【０２７８】
したがって、第１の条件式生成部３１０３による上述の処理によって、禁則回避条件式として次の（７）式が生成される。
【０２７９】
原稿方向，１＝横，用紙サイズ，Ａ３，パンチ穴数，３穴，パンチ位置，上・・・  （７）
【０２８０】
このように、優先度が単独で最も低い項目がトリガアイテムであり残りの項目がターゲットアイテムである場合の禁則回避条件式は、禁則処理に関する条件が何も示されない。したがって、後述するように、禁則関係を回避するには、ユーザーは、このトリガアイテムを別の値に設定しなければならない。
【０２８１】
第２の条件式生成部３１０４は、禁則グループ検索部３１０１によって見つかった禁則グループの中の優先度が単独で最も低い項目以外の各項目がトリガアイテムであり残りの項目がターゲットアイテムである場合の禁則回避条件式を生成する。生成の手順は、図３４に示す通りである。
【０２８２】
図３４において、第２の条件式生成部３１０４は、優先順位が最も低い項目に注目する（＃３７０１）。注目した項目（以下、「注目項目」と記載する。）の属性データ３０５０を属性辞書テーブル３１４３（図３０参照）から読み出し、この禁則グループにおける注目項目の値を、読み出した属性データ３０５０に示されるＲｅｃｏｖｅｒＶａｌｕｅ１に置き換える（＃３７０２）。
【０２８３】
例えば、注目項目が「原稿方向」でありその値が「横」である場合は、第２の条件式生成部３１０４は、属性データ３０５４を読み出す。属性データ３０５４によると、「横」のＲｅｃｏｖｅｒＶａｌｕｅ１は「縦」である。よって、第２の条件式生成部３１０４は、注目項目の値を「縦」に置き換える。
【０２８４】
そして、第２の条件式生成部３１０４は、ステップ＃３７０２の置換の処理によってこの禁則グループから禁則関係がなくなるか否かを判別する（＃３７０３）。判別は、禁則グループテーブル３１４１（図２８参照）に基づいて行うことができる。
【０２８５】
例えば、上述の項目「用紙サイズ」の値「Ａ３」、項目「原稿方向」の値「横」、項目「パンチ穴数」の値「３穴」、および項目「パンチ位置」の値「上」からなるグループ（図２８の太枠参照）は、ステップ＃３７０２によって原稿方向の値が「縦」に変わる。すると、太枠の１つ上のセルに示される通り、置換後のグループには、禁則関係がない。よって、第２の条件式生成部３１０４は、禁則関係がなくなると、判別する。
【０２８６】
置換によって禁則関係がなくなった場合は（＃３７０４でＮｏ）、第２の条件式生成部３１０４は、置換後の値の組合せにするための条件式を禁則回避条件式として生成する（＃３７１０〜＃３７１２）。これについては、後述する。
【０２８７】
置換後も禁則関係がある場合は（＃３７０４でＹｅｓ）、読み出した属性データ３０５０に他のＲｅｃｏｖｅｒＶａｌｕｅが示されていれば（＃３７０５でＹｅｓ）、第２の条件式生成部３１０４は、注目項目の値を他のＲｅｃｏｖｅｒＶａｌｕｅに置き換える（＃３７０６）。そして、ステップ＃３７０３に戻ってこの禁則グループから禁則関係がなくなるか否かを判別する。なお、他のＲｅｃｏｖｅｒＶａｌｕｅが複数ある場合は、ＲｅｃｏｖｅｒＶａｌｕｅ２、ＲｅｃｏｖｅｒＶａｌｕｅ３、・・・の順に優先的に置き換える。
【０２８８】
注目項目の値をいずれのＲｅｃｏｖｅｒＶａｌｕｅに置き換えても禁則関係がある場合は（＃３７０４でＹｅｓ、＃３７０５でＮｏ）、第２の条件式生成部３１０４は、優先順位が１つ上の項目を注目する（＃３７０７）。なお、置換した値は、元に戻しておく。また、優先順位が同じである未注目の項目がある場合は、この項目を注目する。
【０２８９】
そして、第２の条件式生成部３１０４は、ステップ＃３７０２〜＃３７０６の処理を適宜、実行する。つまり、新たな注目項目の値を、禁則関係がなくなるまでＲｅｃｏｖｅｒＶａｌｕｅ１、ＲｅｃｏｖｅｒＶａｌｕｅ２、・・・に置き換える。
【０２９０】
第２の条件式生成部３１０４は、ステップ＃３７０２〜＃３７０６の処理を、禁則関係がなくなるまで続ける。これにより、優先順位が１つずつ上の項目が注目されて行く。
【０２９１】
トリガアイテムである項目と優先順位が同じである項目に注目し、ステップ＃３７０２〜＃３７０６の処理を実行してもなお、禁則関係がなくならない場合は（＃３７０８でＮｏ）、第２の条件式生成部３１０４は、第１の条件式生成部３１０３と同様の方法で、禁則回避条件式を生成する（＃３７０９）。
【０２９２】
すなわち、第２の条件式生成部３１０４は、（６）式の左辺の<Item1>へこの項目（トリガアイテム）の識別子を代入し、未だ発行されていない番号のうち最も小さい番号を<Index>へ代入する。（６）式の右辺の<Type>を削除し、または、禁則処理を行わないことを示す番号を<Type>へ代入する。<Item2>、・・・、<Item(m+n)>へ、トリガアイテム以外の項目（残りの項目）の項目名を、優先度の高い順に代入する。そして、<Item2-Recover value>、・・・、<Item(m+n)-Recover value>を削除する。
【０２９３】
一方、注目項目の値をあるＲｅｃｏｖｅｒＶａｌｕｅに置き換えると禁則関係がなくなる場合は（＃３７０４でＮｏ）、第２の条件式生成部３１０４は、次のように禁則回避条件式を生成する。
【０２９４】
第２の条件式生成部３１０４は、注目項目の属性データ３０５０の中からコントロールタイプを検索する（＃３７１０）。これにより、例えば、注目項目の属性データ３０５０が属性データ３０５４である場合は、「ＲａｄｉｏＢｕｔｔｏｎ」がヒットする。
【０２９５】
第２の条件式生成部３１０４は、第１の禁則処理テーブル３１４４（図３２参照）または第２の禁則処理テーブル３１４５（図３３参照）から、ヒットしたコントロールタイプに対応するコマンドタイプ番号を読み出す（＃３７１１）。具体的には、トリガアイテムの優先度と注目項目の優先度が同じである場合は、第１の禁則処理テーブル３１４４からコマンドタイプ番号を読み出す。異なる場合は、第２の禁則処理テーブル３１４５からコマンドタイプ番号を読み出す。
【０２９６】
そして、第２の条件式生成部３１０４は、注目項目の置換後の値および読み出したコマンドタイプ番号などを、次のように（６）式へ代入することによって、禁則回避条件式を生成する（＃３７１２）。
【０２９７】
（６）式の左辺へは、上述と同様に、<Item1>へトリガアイテムの識別子を代入し、未だ発行されていない番号のうち最も小さい番号を<Index>へ代入する。右辺の<Item2>、・・・、<Item(m+n)>へも上述と同様に、トリガアイテム以外の項目（残りの項目）の項目名を、優先度の高い順に代入する。
【０２９８】
さらに、右辺の<Type>へ、読み出したコマンドタイプ番号を代入する。<Item2-Recover value>、・・・、<Item(m+n)-Recover value>のうちの注目項目に係るものへ、置換後の値（禁則関係がなくなる値）を代入し、残りを削除する。
【０２９９】
上述の項目「用紙サイズ」の値「Ａ３」、項目「原稿方向」の値「横」、項目「パンチ穴数」の値「３穴」、および項目「パンチ位置」の値「上」の例において、既に禁則回避条件式を１つ生成しており、コマンドタイプ番号が「５」であり、かつ、注目項目がパンチ位置である場合は、図３４の処理によって、（８）式の禁則回避条件式が生成される。
【０３００】
パンチ位置，２＝５，上，パンチ穴数，３穴，用紙サイズ，Ａ３，原稿方向，横，縦・・・  （８）
【０３０１】
以上のように、第１の条件式生成部３１０３によると、禁則グループの中の優先度が単独で最も低い項目の禁則回避条件式が生成される。そして、第２の条件式生成部３１０４によると、残りの項目の禁則回避条件式が生成される。
【０３０２】
禁則回避条件式が第１の条件式生成部３１０３または第２の条件式生成部３１０４によって生成されると、その禁則回避条件式を示す条件式データ３０６０が条件式記憶部３１５０に記憶される。
【０３０３】
図３５は、禁則回避条件式の生成の全体的な処理の流れの例を説明するフローチャートである。
【０３０４】
次に、端末装置２が禁則回避条件式生成プログラム３０２０Ｐに基づいて実行する全体的な処理の流れを、図３５を参照しながら説明する。
【０３０５】
禁則回避条件式生成プログラム３０２０Ｐによると、端末装置２は、図３５に示す手順で禁則回避条件式の生成の処理を実行する。
【０３０６】
端末装置２は、禁則グループテーブル３１４１（図２８参照）の中から禁則グループを検索する（＃３０１１）。禁則グループが見つかったら、この禁則グループを構成する項目を、優先度の高い順に並べる（＃３０１２）。なお、各項目の優先度は、優先度辞書テーブル３１４２（図２９参照）に基づく。
【０３０７】
端末装置２は、この禁則グループの中の優先順位が最も低い項目を選出する（＃３０１３）。そして、選出した項目がトリガアイテムであり他の項目がターゲットアイテムである場合の禁則回避条件式を次のように生成する。なお、「Ｚ」は禁則グループの次元数であり、禁則グループテーブル３１４１の場合は「４」である。
【０３０８】
選出した項目が単独で最下位である場合は（＃３０１４でＮｏ）、端末装置２は、コマンドタイプ番号およびＲｅｃｏｖｅｒＶａｌｕｅを含まない禁則回避条件式を生成する（＃３０１５）。この式の例は、前述の（７）式である。
【０３０９】
一方、選出した項目と優先度が同じである項目がある場合は（＃３０１４でＹｅｓ）、端末装置２は、コマンドタイプ番号およびＲｅｃｏｖｅｒＶａｌｕｅを含む禁則回避条件式の生成を試みる（＃３０１６）。生成の手順は、前に図３４で説明した通りである。この式の例は、前述の（８）式である。ステップ＃３０１６の結果、これらを含まない禁則回避条件式が生成されることもある。
【０３１０】
そして、端末装置２は、この禁則グループの中の次に優先順位の高い項目を選出し（＃３０１７）、新たに選出した項目がトリガアイテムであり他の項目がターゲットアイテムである場合の禁則回避条件式を生成する（＃３０１６）。
【０３１１】
以上の処理を繰り返すことによって、端末装置２は、この禁則グループの中の各項目がトリガアイテムであり他の項目がターゲットアイテムである場合の禁則回避条件式を生成する。
【０３１２】
そして、端末装置２は、生成された各禁則回避条件式を示すデータを条件式データ３０６０として条件式記憶部３１５０に記憶させる（＃３０１９）。
【０３１３】
次に、禁則回避条件式の使用方法について説明する。
【０３１４】
図３６は、ダイアログ画面３０６１および３０６２の例を示す図である。
【０３１５】
端末装置２は、禁則回避条件式生成プログラム３０２０Ｐによって生成した禁則回避条件式を次のように使用する。
【０３１６】
禁則関係情報受信部３１０５が現在の設定値に禁則関係がある旨の検出結果２４５１を禁則関係出力部２４０６から受信した場合、ダイアログ表示部３１０６は、その禁則関係に関する条件式データ３０６０を条件式記憶部３１５０から読み出し、その禁則回避条件式に基づいて次のような画面をタッチパネルディスプレイ１０ｅに表示させる。
【０３１７】
その禁則回避条件式にコマンドタイプ番号もＲｅｃｏｖｅｒＶａｌｕｅも示されない場合、つまり、上述の（７）式のような禁則回避条件式である場合は、ダイアログ表示部３１０６は、図３６（Ａ）のようなダイアログ画面３０６１を表示させる。
【０３１８】
ダイアログ画面３０６１には、このグループ（禁則グループ）のメンバのほか、これらを同時に設定することができない旨のメッセージが示される。そして、今回の入力が拒否される。つまり、ユーザーは、今回入力した値を設定することができない。
【０３１９】
一方、その禁則回避条件式にコマンドタイプ番号およびＲｅｃｏｖｅｒＶａｌｕｅが示される場合、つまり、上述の（８）式のような禁則回避条件式である場合は、ダイアログ表示部３１０６は、図３６（Ｂ）のようなダイアログ画面３０６２を表示させる。
【０３２０】
ダイアログ画面３０６２には、ダイアログ画面３０６１と同様に、このグループのメンバのほか、これらを同時に設定することができない旨のメッセージが示される。さらに、ダイアログ画面３０６２には、禁則関係を回避するための変更を提案するメッセージが示される。このメッセージは、ＲｅｃｏｖｅｒＶａｌｕｅおよびそれに係る項目に基づいている。（８）式の例の場合は、右辺の「・・・，原稿方向，横，縦」のうちの「縦」がＲｅｃｏｖｅｒＶａｌｕｅであり「原稿方向」が項目である。
【０３２１】
そして、ＯＫボタン３６２１が選択されると、今回の入力が受け付けられて設定される。さらに、提案の通りに、すなわち、その禁則回避条件式に従って、設定済の値が設定し直される（変更される）。例えば、（８）式の場合は、原稿方向の値が「縦」に設定し直される。これは、禁則処理の１つである。
【０３２２】
さらに、コマンドタイプ番号に対応する他の禁則処理があれば、これが実行される。例えば、禁則処理がコントロールのグレーアウトの処理である場合は、設定画面表示部３１０７は、値を設定し直した項目のコントロールをグレーアウト（選択できない形態で表示）させて、設定用の画面を表示する。これにより、ユーザーは、その項目を設定し直すことができなくなる。そのほか、コントロールタイプに応じて、設定画面表示部３１０７は、禁則グループに係る値の選択肢を非表示にするなどの処理を禁則処理として実行する。禁則処理の内容は、図３２の第１の禁則処理テーブル３１４４または図３３の第２の禁則処理テーブル３１４５に記載される通りである。
【０３２３】
または、キャンセルボタン３６２２が選択されると、今回の入力は、拒否される。値の再設定および禁則処理は、行われない。
【０３２４】
［実施の形態の効果］
【０３２５】
本実施の形態によれば、端末装置において入力を受け付ける設定値の禁則関係を示す分解ＰＪＬテーブル間禁則テーブルに基づいて禁則関係が検出されるので、ユーザーが端末装置において設定を行ったタイミングで禁則関係を検出することができる。ＰＪＬの生成処理をする前に禁則関係を検出することができ、利便性が向上する。また、市場からの要望で禁則の仕様変更を行う場合、画像形成装置側（本体側）の禁則情報を更新すれば、端末装置側（ドライバ側）の分解ＰＪＬテーブル間禁則テーブルの内容は自動的に更新されるため、端末装置２側の更新作業が不要になる。
【０３２６】
［その他］
【０３２７】
上述の禁則組合せ情報の生成処理は、ダイアログボックス１０７１（図５）において設定値の変更を受け付ける前に行われてもよいし、設定値の変更を受け付けた後で行われてもよい。
【０３２８】
上述の実施の形態における処理は、ソフトウェアにより行っても、ハードウェア回路を用いて行ってもよい。また、上述の実施の形態における処理を実行するプログラムを提供することもできるし、そのプログラムをＣＤ−ＲＯＭ、フレキシブルディスク、ハードディスク、ＲＯＭ、ＲＡＭ、メモリカードなどの記録媒体に記録してユーザーに提供することにしてもよい。プログラムは、ＣＰＵなどのコンピューターにより実行される。また、プログラムはインターネットなどの通信回線を介して、装置にダウンロードするようにしてもよい。
【０３２９】
上述の実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０３３０】
１  画像形成装置
２  端末装置
３  通信回線
４  プリントシステム
１０ａ，２０ａ  ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）
１０ｂ，２０ｂ  ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）
１０ｃ，２０ｃ  ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）
１０ｄ，２０ｄ  補助記憶装置
１０ｅ  タッチパネルディスプレイ
１０ｆ  操作キーパネル
１０ｇ，２０ｆ  ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）
１０ｈ  モデム
１０ｉ  スキャンユニット
１０ｊ  プリントユニット
１０ｋ  フィニッシャ
２０ｅ  液晶ディスプレイ
２０ｇ  キーボード
２０ｈ  ポインティングデバイス
１０２０Ｐ  プリンタドライバ
１０５１  ＰＪＬ（Ｐｒｉｎｔｅｒ  Ｊｏｂ  Ｌａｎｇｕａｇｅ）インデックステーブル（インデックステーブルの一例）
１０５１ａ  インデックスデータ
１０５２，１５２１〜１５２６  分解ＰＪＬテーブル（分解テーブルの一例）
１０５３  印刷データ
１０６１  ファイル
１０７１  ダイアログボックス
１２０１  ジョブ条件受付部
１２０２  ＰＪＬインデックステーブル記憶部
１２０３  分解ＰＪＬテーブル記憶部
１２０４  項目置換部
１２０５  直積分解部
１２０６  値変換部
１２０７  ジョブ指令部
２０２０Ｐ  禁則関係生成プログラム
２０３０Ｐ  禁則関係検出プログラム
２０５１，２０５１ａ，２０５１ｂ，２０５１ｃ  ＰＪＬ禁則組合せ情報
２０５２，２０５２ａ，２０５２ｂ，２０５２ｃ，２０５２ｄ，２０５２ｅ，２０５２ｆ  禁則組合せ情報
２１５１  本体禁則テーブル
２１５２  分解ＰＪＬテーブル間禁則テーブル（禁則テーブルの一例）
２２０１  禁則情報取得部
２２０２，２４０３  データタイプ判別部
２２０３  第１の禁則情報生成部
２２０４  第２の禁則情報生成部
２２０５  禁則テーブル記憶部
２４０１  設定受付部
２４０２  分解ＰＪＬテーブルＩＤ検索部
２４０３  データタイプ判別部
２４０４  第１の禁則検出部
２４０５  第２の禁則検出部
２４０６  禁則関係出力部
２４５０  設定値の変更
２４５１  禁則関係の検出結果
３０２０Ｐ  禁則回避条件式生成プログラム
３０４１  チェックボックス
３０４２  コンボボックス
３０５０〜３０５６  属性データ
３０６０  条件式データ
３０６１，３０６２  ダイアログ画面
３１００  禁則グループテーブル生成部
３１０１  禁則グループ検索部
３１０２  項目ソート部
３１０３  第１の条件式生成部
３１０４  第２の条件式生成部
３１０５  禁則関係情報受信部
３１０６  ダイアログ表示部
３１０７  設定画面表示部
３１３１  禁則グループテーブル記憶部
３１３２  辞書テーブル記憶部
３１３４  禁則処理テーブル記憶部
３１４１  禁則グループテーブル
３１４２  優先度辞書テーブル
３１４３  属性辞書テーブル
３１４４  第１の禁則処理テーブル
３１４５  第２の禁則処理テーブル
３１５０  条件式記憶部
３６２１，３６２２  ボタン
【図１】
2018010354.tif 000007
【図２】
2018010354.tif 000008
【図３】
2018010354.tif 000009
【図４】
2018010354.tif 000010
【図５】
2018010354.tif 000011
【図６】
2018010354.tif 000012
【図７】
2018010354.tif 000013
【図８】
2018010354.tif 000014
【図９】
2018010354.tif 000015
【図１０】
2018010354.tif 000016
【図１１】
2018010354.tif 000017
【図１２】
2018010354.tif 000018
【図１３】
2018010354.tif 000019
【図１４】
2018010354.tif 000020
【図１５】
2018010354.tif 000021
【図１６】
2018010354.tif 000022
【図１７】
2018010354.tif 000023
【図１８】
2018010354.tif 000024
【図１９】
2018010354.tif 000025
【図２０】
2018010354.tif 000026
【図２１】
2018010354.tif 000027
【図２２】
2018010354.tif 000028
【図２３】
2018010354.tif 000029
【図２４】
2018010354.tif 000030
【図２５】
2018010354.tif 000031
【図２６】
2018010354.tif 000032
【図２７】
2018010354.tif 000033
【図２８】
2018010354.tif 000034
【図２９】
2018010354.tif 000035
【図３０】
2018010354.tif 000036
【図３１】
2018010354.tif 000037
【図３２】
2018010354.tif 000038
【図３３】
2018010354.tif 000039
【図３４】
2018010354.tif 000040
【図３５】
2018010354.tif 000041
【図３６】
2018010354.tif 000042