以下、本発明の実施形態を図面に基づいて説明する。
<1.システム構成概略>
図1は、マルチ・ファンクション・ペリフェラル(Multi-Functional Peripheral)(MFPとも略称する)10と印刷指示装置50とを備えるプリントシステム1の構成を示す概略図である。
<MFP10の構成>
MFP10は、画像形成装置として機能する。より具体的には、MFP10は、スキャナ機能、プリンタ機能、コピー機能およびファクシミリ通信機能などを備える装置(複合機とも称する)として構成される。
MFP10は、ネットワーク108を介して印刷指示装置50に接続されており、当該印刷指示装置50との間でデータの送受信が可能である。なお、ネットワーク108は、LAN(Local Area Network)およびインターネットなどの各種のネットワークを含む。
特に、MFP10は、印刷指示装置50からのプリントジョブを実行するプリンタとして機能する。具体的には、印刷指示装置50は、当該印刷指示装置50にインストールされているプリンタドライバ(ソフトウエアプログラム)等を介して、MFP10に対してプリントジョブを送信する。一方、MFP10は、印刷指示装置50から送信されてきたプリントジョブを受信し、当該プリントジョブを実行する。これによって、MFP10による印刷出力処理が実行される。
具体的には、図2の機能ブロック図に示すように、MFP10は、画像読取部2、印刷出力部3、通信部4、格納部5、入出力部6およびコントローラ9等を備えており、これらの各部を複合的に動作させることによって、各種の機能を実現する。
画像読取部2は、MFP10の所定の位置に載置された原稿を光学的に読み取って、当該原稿の画像データ(原稿画像とも称する)を生成する処理部である。
印刷出力部3は、対象画像に関する画像データに基づいて紙などの各種の媒体に画像を印刷出力する出力部である。
通信部4は、公衆回線等を介したファクシミリ通信を行うことが可能な処理部である。さらに、通信部4は、ネットワーク108を介したネットワーク通信を行うことも可能である。このネットワーク通信では、たとえば、TCP/IP(Transmission Control Protocol / Internet Protocol)等の各種のプロトコルが利用される。当該ネットワーク通信を利用することによって、MFP10は、所望の相手先装置との間で各種のデータを授受することが可能である。また、MFP10は、このネットワーク通信を利用することによって、印刷指示装置50からのプリントジョブを受信することなども可能である。通信部4は、各種データを送信する送信部4aと各種データを受信する受信部4bとを有する。
格納部5は、ハードディスクドライブ(HDD)および半導体メモリ等の記憶装置で構成される。この格納部5には、画像読取部2等で生成された原稿画像(画像データ)が格納される。また、格納部5においては、印刷指示装置50から送信されてきたプリントジョブが一時的に格納される。
操作部6は、MFP10に対する操作入力を受け付ける操作入力部6aと、各種情報の表示出力を行う表示部6bとを備えている。
このMFP10においては、略板状の操作パネル部6c(図1参照)が設けられている。また、操作パネル部6cは、その正面側にタッチパネル25(図1参照)を有している。タッチパネル25は、操作入力部6aの一部としても機能するとともに、表示部6bの一部としても機能する。タッチパネル25は、液晶表示パネルに各種センサ等が埋め込まれて構成され、各種情報を表示するとともに操作者からの各種の操作入力を受け付けることが可能である。
コントローラ(制御部)9は、MFP10に内蔵され、MFP10を統括的に制御する制御装置である。コントローラ9は、CPUおよび各種の半導体メモリ(RAMおよびROM)等を備えるコンピュータシステムとして構成される。コントローラ9は、CPUにおいて、ROM(例えば、EEPROM(登録商標))内に格納されている所定のソフトウエアプログラム(以下、単にプログラムとも称する)を実行することによって、各種の処理部を実現する。なお、当該プログラム(詳細にはプログラムモジュール群)は、USBメモリなどの可搬性の記録媒体に記録され、当該記録媒体から読み出されてMFP10にインストールされるようにしてもよい。あるいは、当該プログラムは、ネットワーク等を経由してダウンロードされてMFP10にインストールされるようにしてもよい。
具体的には、図2に示すように、コントローラ9は、当該プログラムの実行により、通信制御部11と入力制御部12と表示制御部13と動作制御部15とを含む各種の処理部を実現する。
通信制御部11は、他の装置との間の通信動作を通信部4等と協働して制御する処理部である。通信制御部11は、各種データの送信動作を制御する送信制御部と各種データの受信動作を制御する受信制御部とを有する。
入力制御部12は、操作入力部6a(タッチパネル25等)に対するユーザからの操作入力の受付動作等を制御する制御部である。
表示制御部13は、表示部6b(タッチパネル25等)における表示動作を制御する処理部である。表示制御部13は、MFP10を操作するための操作画面等をタッチパネル25に表示する。
動作制御部15は、印刷指示装置50から送信されてきたプリントジョブ等に関する動作(印刷出力動作等)を実行する処理部である。
<情報処理装置50の構成>
図3は、情報処理装置50(印刷指示装置あるいは設定処理装置などとも称される)の概略構成を示す機能ブロック図である。情報処理装置50は、いわゆるパーソナルコンピュータ等によって構成される。
情報処理装置50は、図3の機能ブロック図に示すように、通信部54、格納部55、操作部56およびコントローラ(制御部)59等を備えており、これらの各部を複合的に動作させることによって、各種の機能を実現する。
通信部54は、ネットワークを介したネットワーク通信を行うことが可能である。このネットワーク通信では、たとえば、TCP/IP(Transmission Control Protocol / Internet Protocol)等の各種のプロトコルが利用される。当該ネットワーク通信を利用することによって、情報処理装置50は、所望の相手先(MFP10等)との間で各種のデータを授受することが可能である。通信部54は、各種データを送信する送信部54aと各種データを受信する受信部54bとを有する。
格納部55は、ハードディスクドライブ(HDD)および/または半導体メモリ等の記憶装置で構成される。
操作部56は、情報処理装置50に対する操作入力を受け付ける操作入力部56aと、各種情報の表示出力を行う表示部56bとを備えている。操作部56は、タッチパネル75(図1参照)を有している。タッチパネル75は、操作入力部56aの一部としても機能するとともに、表示部56bの一部としても機能する。タッチパネル75は、液晶表示パネルに各種センサ等が埋め込まれて構成され、各種情報を表示するとともに操作者からの各種の操作入力を受け付けることが可能である。
図3のコントローラ(制御部)59は、情報処理装置50に内蔵され、情報処理装置50を統括的に制御する制御装置である。コントローラ59は、CPUおよび各種の半導体メモリ(RAMおよびROM)等を備えるコンピュータシステムとして構成される。コントローラ59は、CPUにおいて、記憶部(半導体メモリ等)内に格納されている所定のプログラム(プリンタドライバ等)を実行することによって、各種の処理部を実現する。なお、当該プログラム(詳細にはプログラムモジュール群)は、USBメモリなどの可搬性の記録媒体に記録され、当該記録媒体から読み出されて情報処理装置50にインストールされてもよい。あるいは、当該プログラムは、ネットワーク等を経由してダウンロードされて情報処理装置50にインストールされるようにしてもよい。
具体的には、コントローラ59は、当該プログラム等の実行により、通信制御部61と入力制御部62と表示制御部63と判定部64と抽出部65と決定部66と設定制御部67とを含む各種の処理部を実現する。
通信制御部61は、通信部54等と協働して、MFP10等との通信動作を制御する処理部である。
入力制御部62は、操作入力部56a(タッチパネル75等)に対する操作入力動作等を制御する制御部である。
表示制御部63は、表示部56b(タッチパネル75等)における各種情報の表示動作を制御する処理部である。
判定部64は、禁則設定が発生しているか否か等を判定する処理部である。
抽出部65は、複数の種類の禁則設定が発生している場合、「共通禁則項目」(複数の種類の禁則設定のうちの少なくとも一部の2種類以上の禁則設定に共通する禁則項目)を抽出する処理部である。
決定部66は、複数の種類の禁則設定を解消していくための設定変更対象の設定項目(設定変更対象項目)の最有力候補等を決定する処理部である。
設定制御部67は、ユーザからの設定変更指示等に基づいて、印刷設定に関する各種の設定値を変更する処理部である。たとえば、設定制御部67は、プリンタドライバにて表示される設定画面を利用した利用設定変更指示に基づき、或る設定項目(「印刷用紙サイズ」等)の設定値を、デフォルト値(「A4」サイズ)から別の値(「B5」サイズ)へと変更する。また、設定制御部67は、禁則設定が生じた場合に、当該禁則設定を解消するための設定変更を行う処理部である。当該設定変更動作としては、「手動変更動作」と「自動変更動作」とが存在する。「手動変更動作」は、ユーザによって指定された設定項目(特定の設定項目)を指定値(指定された設定内容(設定値))に設定変更することによって、禁則設定を解消していく動作である。「自動変更動作」は、所定の基準に基づいて禁則設定を自動的に解消していく動作である。
情報処理装置50は、ジョブ(プリントジョブ等)に関する設定処理(印刷設定処理等)を実行することが可能な設定処理装置として動作する。
<2.動作概要>
つぎに、プリントシステム1における動作について説明する。
図4〜図10は、プリントシステム1における動作(より詳細には、印刷指示装置50のプリンタドライバの動作)を示すフローチャートである。
図4に示すように、当該プリンタドライバ(印刷指示装置50にて動作する印刷制御用プログラム)は、図20に示すような設定画面を用いてジョブに関する設定操作(ユーザによる設定変更操作)を受け付ける(ステップS11)と、当該設定操作に応じて禁則設定が発生しているか否かに関する判定処理等(ステップS12(後述))を実行する。
その後、禁則設定が発生していることがステップS13で判定(確認)されると、ステップS13からステップS14に進む。
ステップS14では、禁則設定が発生している旨を示す画面300(図22および図23等参照(後述))が表示される。
その後、当該画面300に対する操作等に応じて、各種の動作(禁則解決に向けたユーザ操作等)(ステップS20)(図5も参照)が行われる。特に、ステップS20のうちステップS21(図10も参照)においては、禁則設定を解消するための処理等が行われる。また、その過程において、禁則設定の解決策等がユーザに提示され、当該ユーザの許可(指示)に応じて禁則設定の解消処理等が実行される。
以下では、このような動作について詳細に説明する。
<3.禁則発生判定処理等(S12)>
上述のように、プリンタドライバは、ジョブに関する設定操作(ユーザによる設定操作)を受け付けると、当該設定操作(設定変更操作)に応じて禁則設定が発生しているか否かに関する判定処理等(ステップS12)を実行する。
以下では、図6〜図9を参照しながら、ステップS12(S200とも称する)における詳細動作について説明する。
図6は、ステップS200の処理の詳細を示すフローチャートである。図6に示されるように、ステップS200においては、ステップS210の処理(2次元禁則探索処理等)(図7参照)、ステップS230の処理(多次元禁則探索処理等)(図8参照)およびステップS250の処理(禁則数算出処理等)(図9参照)が行われる。
<禁則設定について>
「禁則設定」は、ジョブに関する複数の設定項目に関する複数の設定内容のうち、互いに組み合わせて設定することが禁止されている2つ以上の設定内容の組合せ(設定禁止組合せ、あるいは、組合せ禁止設定とも称する)である。なお、「禁則設定」(組合せ禁止設定)としては、装置構成等に依拠して多種多様なものが存在する。
たとえば、MFP10において或る設定項目「ステープル」の設定内容「2箇所」と別の設定項目「折り」の設定内容「中折り」との両設定内容が互いに組み合わせて設定することが禁止されている場合、当該両設定内容(「2箇所」および「中折り」)は「禁則設定」を構成する。そして、印刷指示装置50のプリンタドライバにおいてユーザ操作に応じて当該両設定内容がともに設定されると、当該禁則設定が発生する。
また、この実施形態では、禁則設定の「次元」の概念を導入する。禁則設定の次元(禁則の次元とも称する)は、ジョブに関する複数の設定項目のうち、禁則設定の要因に係る設定項目(禁則項目あるいは禁則要因項目とも称する)の数を意味する。
たとえば、上述の例に係る禁則設定は、2つの設定項目(「ステープル」および「折り」)を禁則要因項目(禁則項目)として有するものであり、当該禁則設定の次元は「2」である。すなわち、当該禁則設定は、2次元の禁則設定である。同様に、後述するような3つの設定項目(「出力用紙サイズ」、「通紙方向」および「パンチ孔」)を、禁則要因項目(禁則項目)として有する禁則設定の次元は「3」である。すなわち、当該3つの禁則項目で構成される禁則設定は、3次元の禁則設定である。さらに高い次元の禁則設定についても同様である。
一般化すると、N個の設定項目(禁則項目)Q(i)(ただし、i=1,...,N)の設定内容q(i,j)の組合せによって構成される禁則設定が、N次元の禁則設定である。なお、以下、設定項目Q(i)を単にQiとも表記し、設定内容q(i,j)を単にqijとも表記する。設定項目Qiは、第iの設定項目であり、設定内容qijは、第iの設定項目に関する設定内容(第jの設定値)である。また、N次元の禁則設定の部分組合せ(N次元の禁則設定に係る組合せのうち、(N−1)次元の部分組合せ等)は、禁則設定ではない。
たとえば、Q1=q11且つQ2=q21且つQ3=q31且つQ4=q41の4個の設定内容の組合せが設定された時点で禁則設定が発生する場合、当該4個の設定内容の組合せは4次元の禁則設定である。なお、当該4次元の禁則設定のうちの一部の組合せ、たとえば、Q2=q21且つQ3=q31且つQ4=q41の3個の設定内容の組合せ(あるいは、Q2=q21且つQ4=q41の2個の設定内容の組合せ等)は、禁則設定ではない。
また、この実施形態においては、2次元の禁則と3次元以上の禁則(多次元の禁則とも称する)とを異なる行列等を用いて表現する。
<2次元禁則>
まず、2次元の禁則(2次元禁則)について説明する。
図11および図12は、2次元禁則を有向グラフを用いて表現した図である。図11は、一般化表現を示しており、図12は、具体的な表現例を示している。
たとえば、図12の有向グラフにおいては、或る設定項目Q1(禁則項目)「ステープル」の設定内容(禁則設定内容)「2箇所」(q11)と、別の設定項目Q2(禁則項目)「折り」の設定内容(禁則設定内容)「中折り」(q21)とが禁則設定を構成することが示されている。
また、図11の有向グラフにおいては、同様の内容が一般化されて示されている。具体的には、2つの設定項目(禁則項目)Q1,Q2に関する2つの設定内容(禁則設定内容)q11,q21が禁則設定を構成することを示している。
ここでは、有向グラフ表現における頂点(節点あるいはノードとも称する)に、各設定項目(詳細にはその設定内容)が記述されている。当該頂点は、ここでは、楕円図形で表現されている。また、有向グラフ表現における複数の頂点(ノード)の相互間を接続する辺(枝あるいはエッジとも称する)は、線(直線)で表現されている。
また、図11の有向グラフにおいては、2つの頂点の相互間を接続する線には矢印が付されており、「向き」の概念が用いられている。この有向グラフにおいては、この矢印の向きを用いて、「優先度」の大小関係が示されている。具体的には、2つの頂点のうち、比較的高い(大きな)優先度を有する設定項目に対応する頂点(楕円図形)から、比較的低い(小さな)優先度を有する設定項目に対応する頂点(楕円図形)へと向かうように、矢印が付与される。
ここで、「優先度」は、その設定内容を優先的に維持すべき度合いとして設定項目ごとに予め定められた優先度合いであって設定項目の相互間における相対的な優先度合いである。たとえば、設定項目「ウォーターマーク」と設定項目「用紙サイズ」との2つの設定項目(禁則項目)のうち、設定項目「用紙サイズ」(詳細にはその設定内容)の方が重要視されるべきであり、その設定内容(設定項目「用紙サイズ」の設定内容)を優先的に維持すべき(換言すれば、別の設定項目「ウォーターマーク」の設定内容を先に変更すべき)であるとも考えられる。この場合には、設定項目「用紙サイズ」の優先度が設定項目「ウォーターマーク」の優先度よりも大きな値に設定されている。このように「優先度」は、複数の設定項目の相互間における相対的な優先度合いを示す指標値である。当該優先度は、たとえば、装置において予め定められている。また、後述するように、当該優先度をユーザが変更することも可能である。
このように、2次元禁則は、有向グラフを用いて表現される(図11および図12参照)。なお、このような2次元禁則設定は、禁則設定(Q1=q11,Q2=q21)とも表現される。
また、図13は、2つの設定項目の相互間の禁則設定に関する情報を予め記述した2次元禁則行列を示す図である。図13においては、2次元の禁則設定が隣接行列(グラフ理論における「隣接行列」)で表現されている。2次元の禁則設定に関する隣接行列は、「2次元禁則用隣接行列」とも称される。この実施形態においては、この2次元禁則用隣接行列M2に基づいて、2次元禁則に関する有向グラフ等が生成される。具体的には、プリンタドライバは、2次元禁則用隣接行列M2とユーザによって設定された設定内容とに基づいて、2次元禁則の発生を検出することが可能である。そして、プリンタドライバは、当該検出された2次元禁則を上述の有向グラフを用いて表示する。
2次元禁則用隣接行列M2の縦方向(換言すれば、2次元禁則用隣接行列M2の各列)においては、全ての設定項目Q1,Q2,Q3,...に関する全ての設定内容(設定値)q11,q12,....,q21,q22,....,q31,q32,....,に関する情報(禁則情報)が列挙されている。同様に、2次元禁則用隣接行列M2の横方向(換言すれば、2次元禁則用隣接行列M2の各行)において、全ての設定項目Q1,Q2,Q3,...に関する全ての設定内容(設定値)q11,q12,....,q21,q22,....,q31,q32,....,に関する情報が列挙されている。
2次元禁則用隣接行列M2において、(行と列とで)同じ設定項目Qiに対応する対角ブロック部分(図13において「−」を付した部分の成分)は、無効部分である。当該無効部分の各成分は、「0」であってもよい。また、当該対角ブロック部分を除く成分(図13において「*」を付した部分等の成分)は、「0」あるいは「1」である。
ここで、2次元禁則用隣接行列M2内の成分値「1」は、禁則設定が発生することを意味している。また、2次元禁則用隣接行列M2内の成分値「0」は、禁則が発生しないこと、あるいは、逆向きの禁則設定(優先度が逆の禁則設定)が発生すること等を示している。
具体的には、設定内容q(i,j)(単にqijとも表記する)と設定内容q(k,l)(単にqklとも表記する)との組合せが2次元禁則設定に該当しない場合、2次元禁則用隣接行列M2においては、設定内容qijに対応する行と設定内容qklに対応する列との交差部分の成分値は「0」に設定される。また、設定内容qijに対応する「列」と設定内容qklに対応する「行」との交差部分の成分値も「0」に設定される。
これに対して、設定内容qijと設定内容qklとの組合せが2次元禁則設定に該当し、且つ、設定内容qij(設定項目Qi)の優先度が設定内容qkl(設定項目Qk)の優先度よりも大きい場合には、2次元禁則用隣接行列M2において次のような設定が行われる。具体的には、設定内容qijに対応する行と設定内容qklに対応する列との交差部分の成分値が「1」に設定される。一方、設定内容qijに対応する「列」と設定内容qklに対応する「行」との交差部分の成分値は「0」に設定される。
換言すれば、設定内容qijと設定内容qklとの組合せが2次元禁則設定に該当し、且つ、設定内容qij(設定項目Qi)の優先度が設定内容qkl(設定項目Qk)の優先度よりも小さい場合には、2次元禁則用隣接行列M2において次のような設定が行われる。具体的には、設定内容qijに対応する「列」と設定内容qklに対応する「行」との交差部分の成分値が「1」に設定される。一方、設定内容qijに対応する行と設定内容qklに対応する列との交差部分の成分値は「0」に設定される。
このように、2次元禁則用隣接行列M2の所定行(設定内容qijに対応する行)と所定列(設定内容qklに対応する列)との交差部分に「1」が存在する場合、設定内容qijと設定内容qklとが禁則設定であり且つ設定内容qijの優先度が設定内容qklの優先度よりも大きいことが示されている。換言すれば、禁則項目Qiの優先度が禁則項目Qkの優先度よりも大きいことが示されている。
たとえば、2次元禁則用隣接行列M2の所定行(q11成分に対応する行)と所定列(q21成分に対応する列)との交差部分に「1」が存在する場合には、設定内容q11と設定内容q21とが禁則設定であり且つ設定内容q11の優先度が設定内容q21の優先度よりも大きいことが示されている。換言すれば、禁則項目Q1の優先度が禁則項目Q2の優先度よりも大きいことが示されている。
より詳細には、ユーザの設定変更操作に応じて設定項目Q1が設定内容(設定値とも称する)q13から設定内容q11に変更された場合、2次元禁則用隣接行列M2(図13)の所定行(設定内容q11に対応する行)において、2次元禁則用隣接行列M2の所定列(設定内容q21に対応する行)との交差部分に「1」が検出される。この結果、上述のように、設定内容q11と設定内容q21とに関する2次元の禁則設定が発生していること(および両設定項目Q1,Q2に関する優先度の大小関係)等が検出される。
そして、このような禁則が検出される場合には、図11のような有向グラフが生成される。具体的には、設定内容q11を示す表示要素(ここでは楕円図形)から設定内容q21を示す表示要素へ向かう向きの矢印を有する線(ここでは直線)で、当該2つの表示要素が結ばれた有向グラフが作成される。
逆に、2次元禁則用隣接行列M2の所定列(qij成分(q(i,j)成分)に対応する行)と所定行(qkl成分(q(k,l(エル))成分)に対応する列)との交差部分に「1」が存在する場合には、設定内容qijと設定内容qklとが禁則設定であり且つ設定内容qijの優先度が設定内容qklの優先度よりも小さいことが示されている。換言すれば、禁則項目Qiの優先度が禁則項目Qkの優先度よりも小さいことが示されている。
たとえば、2次元禁則用隣接行列M2の所定列(q11成分に対応する列)と所定行(q21成分に対応する行)との交差部分に「1」が存在する場合には、設定内容q11と設定内容q21とが禁則設定であり且つ設定内容q11の優先度が設定内容q21の優先度よりも小さいことが示されている。換言すれば、禁則項目Q1の優先度が禁則項目Q2の優先度よりも小さいことが示されている。
そして、この場合には、図11の有向グラフとは逆向きの矢印線で結ばれた有向グラフが生成される。具体的には、設定内容q21を示す表示要素(楕円図形等)から設定内容q11を示す表示要素へ向かう向きの矢印を有する線(直線等)で、当該2つの表示要素が結ばれた有向グラフが作成される。
図6のステップS210(図7も参照)では、このような処理が実行される。
より詳細には、まず、ステップS211において、変更項目Qiの変更後の値(変更値(注目設定内容等とも称する))qijと他の設定項目Qkの現在の設定値qklとの交差部分に存在する値「1」が検索される。より具体的には、2次元禁則用隣接行列M2内の変更値qijに対応する行において成分値「1」が探索されるとともに、変更値qijに対応する列において成分値「1」が探索される。詳細には、変更値qijに対応する行において、複数の他の設定項目Qkのそれぞれの現在の設定値qklに対応する列との交差部分に「1」が存在するか否かが順次に判定される。さらに、変更値qijに対応する列において、複数の他の設定項目Qkのそれぞれの現在の設定値qklに対応する行との交差部分に「1」が存在するか否かが順次に判定される。
交差部分に値「1」が存在する場合には、2次元禁則が発生している旨が判定され、ステップS212からステップS214に進む。ステップS214では、2次元禁則用隣接行列M2内の変更値(注目設定内容)qijに対応する行と当該変更値qijに対応する列とのいずれに値「1」が存在するかが判定される。変更値qijに対応する行に値「1」が存在する場合には、ステップS215に進む。一方、変更値qijに対応する列に値「1」が存在する場合には、ステップS217に進む。
ステップS215では、設定項目Qiの設定値qijと設定項目Qkの設定値qklとは禁則設定であり、且つ、設定項目Qi(設定値qij)の優先度が設定項目Qk(設定値qkl)の優先度よりも高い旨が判定される。さらに、ステップS216にて、たとえば図11に示すような有向グラフ(設定値qijから設定値qklへと向かう矢印を有する有向グラフ)が生成される。そして、ステップS219に進む。
一方、ステップS217では、設定項目Qiの設定値qijと設定項目Qkの設定値qklとは禁則設定であり、且つ、設定項目Qi(設定値qij)の優先度が設定項目Qk(設定値qkl)の優先度よりも低い旨が判定される。さらに、ステップS218において、ステップS216で生成される有向グラフとは逆向きの有向グラフ(設定値qklから設定値qijへと向かう矢印を有する有向グラフ)(たとえば図11とは逆向きの矢印を有する有向グラフ)が生成される。そして、ステップS219に進む。
ステップS219では、ステップS211と同様の探索動作が続行される。そして、その探索結果に基づいて、ステップS212の判定処理が行われる。上述の交差部分(変更値qijと設定値qklとの交差部分)に値「1」が更に検索される場合には、ステップS214以後に進む。一方、交差部分に値「1」が検索されない場合には、ステップS210の処理は終了する。
このように、2次元禁則が発生しているか否かが2次元禁則用隣接行列M2を用いて判定され(ステップS211,S212,S219)、2次元禁則が発生している旨が判定される場合には2次元有向グラフが生成される(ステップS216,S218)。なお、ステップS210において2次元禁則がZ個検出される場合にはZ個の2次元有向グラフが生成され、ステップS210において2次元禁則が1つも検出されない場合には2次元有向グラフは生成されない。
<多次元禁則>
つぎに、多次元の禁則(3次元以上の禁則)について説明する。
図14および図15は、多次元禁則を有向グラフを用いて表現した図である。図14は、一般化表現を示しており、図15は、具体的な表現例を示している。なお、禁則の次元数の増大に応じて、有向グラフの頂点の数が増大する。
たとえば、図15の有向グラフにおいては、2種類の3次元禁則の発生状態が示されている。
1つ目の3次元禁則は、第1の設定項目Q1(禁則項目)「出力用紙サイズ」の設定内容(禁則設定内容)「B5(JIS)」(q11)と、第2の設定項目Q2(禁則項目)「通紙方向」の設定内容(禁則設定内容)「短辺通紙(SEF:Short Edge Feed)」(q21)と第3の設定項目Q3(禁則項目)「パンチ孔」の設定内容(禁則設定内容)「3孔」(q31)とによって構成される。
2つ目の3次元禁則は、第1の設定項目Q1(禁則項目)「出力用紙サイズ」の設定内容(禁則設定内容)「B5(JIS)」(q11)と、第2の設定項目Q2(禁則項目)「通紙方向」の設定内容(禁則設定内容)「短辺通紙(SEF:Short Edge Feed)」(q21)と第3の設定項目Q4(禁則項目)「折り」の設定内容(禁則設定内容)「中折り」(q41)とによって構成される。
また、図14の有向グラフにおいては、同様の内容が一般化されて示されている。
具体的には、1つ目の3次元禁則に関して、3つの設定項目(禁則項目)Q1,Q2,Q3の3つの設定内容(禁則設定内容)q11,q21,q31が禁則設定を構成することが示されている。
また、2つ目の3次元禁則に関して、3つの設定項目(禁則項目)Q1,Q2,Q4の3つの設定内容(禁則設定内容)q11,q21,q41が禁則設定を構成することが示されている。
なお、1つ目の3次元禁則設定は、禁則設定(Q1=q11,Q2=q21,Q3=q31)とも表現され、2つ目の3次元禁則定は、禁則設定(Q1=q11,Q2=q21,Q4=q41)とも表現される。
また、図14等においては、一の種類の禁則設定(1つ目の3次元禁則)に関する3つの禁則項目Q1,Q2,Q3(3つの設定内容q11,q21,q31)に対応する3つの表示要素を線で結んで表示することによって、当該3つの表示要素に対応する3つの設定項目の設定内容が一の種類の禁則設定の要因であることが提示されている。また、他の種類の禁則設定(2つ目の3次元禁則)に関する3つの禁則項目Q1,Q2,Q4(3つの設定内容q11,q21,q41)に対応する3つの表示要素を線で結んで表示することによって、当該3つの表示要素に対応する3つの設定項目の設定内容が当該他の種類の禁則設定の要因であることが提示されている。このように、禁則設定ごとに、各禁則設定の2以上の禁則項目に対応する2以上の表示要素を線で結んで表示することによって、当該2以上の表示要素に対応する設定項目の設定内容が当該各禁則設定の要因であることが提示される。また、このような場合において、複数の種類の禁則設定ごとの線が、各禁則設定ごとに決定された固有の色で表示されることによって、当該複数の種類の禁則設定が互いに識別されることが好ましい(図30参照(後述))。
さらに、1つ目の3次元禁則には、識別ラベル「1」が付与されている。具体的には、当該識別ラベル「1」は、設定内容q11の頂点と設定内容q21の頂点とを接続する接続線の近傍(直上部分)、および設定内容q21の頂点と設定内容q31の頂点とを接続する接続線の近傍(直上部分)に表示されている。一方、2つ目の3次元禁則には、別の識別ラベル「5」が付与されている。具体的には、当該識別ラベル「5」は、設定内容q11の頂点と設定内容q21の頂点との接続線の近傍(直下部分)、および設定内容q21の頂点と設定内容q41の頂点との接続線の近傍(直下部分)に表示されている。このように、同じ種類の禁則設定(多次元禁則)に対して同じ識別ラベルが付与され、且つ、異なる種類の禁則設定(多次元禁則)に対しては異なる識別ラベルが付与される。これによって、複数の種類の禁則設定(多次元禁則)が互いに識別される。なお、この実施形態では、多次元禁則に関してのみ識別ラベルが付与されているが、これに限定されず、2次元禁則に関しても同様にして識別ラベルが付与されてもよい。
また、図14に示されるように、2種類の禁則設定において共通する禁則項目(共通禁則項目)Q1,Q2が存在する場合には、当該共通禁則項目Q1,Q2(詳細には、その設定内容q11,q21)は、共通の表示要素(共通の頂点(ノード))として示される。より詳細には、共通禁則項目Q1は、2種類の禁則設定を示す2系統の有向グラフにおいて、共通の1つの表示要素として表示される。同様に、共通禁則項目Q2も、当該2系統の有向グラフにおいて、共通の1つの表示要素として表示される。このように、複数の種類の禁則設定のうちの少なくとも一部の2種類以上の禁則設定において共通する禁則項目(共通禁則項目)が存在する場合には、当該共通禁則項目は共通の表示要素として示される。
また、図14の有向グラフ(3次元禁則を示す有向グラフ)においては、同一の禁則設定を構成する3つの頂点のうち隣接する2つの要素の相互間を接続する線には、矢印が付されている。この有向グラフにおいては、この矢印の向きを用いて、「優先度」の大小関係が示されている。具体的には、隣接する2つの頂点のうち、比較的高い(大きな)優先度を有する設定項目に対応する頂点(楕円図形)から、比較的低い(小さな)優先度を有する設定項目に対応する頂点(楕円図形)へと向かうように、矢印が付与される。
以上のように、この実施形態においては、多次元禁則が、有向グラフを用いて表現される(図14および図15参照)。
また、図16は、3つ以上の設定項目の相互間の禁則設定に関する情報を予め記述した行列を示す図である。換言すれば、図16においては、多次元の禁則設定を表現する行列(「多次元禁則行列」とも称される)が示されている。
この実施形態においては、この多次元禁則行列Mnに基づいて、多次元禁則に関する有向グラフ等が生成される。具体的には、プリンタドライバは、多次元禁則行列Mnとユーザによって設定された設定内容とに基づいて、多次元禁則の発生を検出することが可能である。そして、プリンタドライバは、当該検出された多次元禁則を上述の有向グラフ(図14および図15等参照)を用いて表示する。
多次元禁則行列Mnの縦方向(換言すれば、多次元禁則行列Mnの各列)においては、全ての設定項目Q1,Q2,Q3,...に関する全ての設定内容(設定値)q11,q12,....,q21,q22,....,q31,q32,....,に関する情報(禁則情報)が列挙されている。
たとえば、図16の左端の列(縦方向の一列)(第1列)においては、3つの設定項目(禁則項目)Q1,Q2,Q3の3つの設定内容(禁則設定内容)q11,q21,q31に対応する行位置に、それぞれ、「0」以外の値が存在する。このことは、3つの設定項目(禁則項目)Q1,Q2,Q3の3つの設定内容(禁則設定内容)q11,q21,q31が禁則設定(3次元禁則設定)を構成することを示している。
より詳細には、設定項目Q1の設定内容q11に対応する行においては「3/3」が表示され、設定項目Q2の設定内容q21に対応する行においては「2/3」が表示され、
設定項目Q3の設定内容q31に対応する行においては「1/3」が表示されている。ここで、これらの各値は、分数で表現されており、分数表現の分母は、禁則設定の「次元」数を示しており、当該分数表現の分子は、当該禁則設定を構成する複数の禁則項目の相互間における「優先度」を示している。
たとえば、設定項目Q1の設定内容q11に対応する位置の値「3/3」は、設定内容q11が3次元禁則の禁則設定内容であり、且つ、3つの禁則項目内における優先度が最も高い「3」であることを示している。同様に、設定項目Q3の設定内容q31に対応する位置の値「1/3」は、設定内容q31が3次元禁則の禁則設定内容であり、且つ、3つの禁則項目内における優先度が最も低い「1」であることを示している。
多次元禁則行列Mnのうち、上述の第1列よりも右側に配置される第2列以降においても、同様にして、多次元禁則情報が列ごとに記述されている。なお、図16においては、各値が省略されている(アスタリスクで示されている)が、実際には、各成分値は、「0」あるいは上述のような分数で表現される。
多次元禁則行列Mnの横方向サイズ(列サイズ(列数))は、多次元禁則の存在数と同数である。
このような多次元禁則行列Mnを用いることによって、多次元禁則が検出されるとともに、多次元禁則を表現する有向グラフが生成される。以下では、図8のフローチャート等を参照しながら、このような動作(ステップS230)について説明する。
より詳細には、ユーザの設定変更操作に応じて或る設定項目Qが元の設定内容(設定値とも称する)から新たな設定内容に変更される場合、多次元禁則行列Mn内の複数の列の中から、禁則候補列(当該新たな設定内容に対応する行に「0以外の値」が存在する列)が検索される(ステップS231)。そして、検索された禁則候補列(注目禁則候補列とも称する)において、「0以外の値」が存在する行を検索し、当該行に対応する設定内容が現在の設定内容であるか否かが判定される。その結果、当該禁則候補列における「0以外の値」が存在する残りの全ての行(たとえば残りの2つの行)に対応する設定内容がいずれも現在の設定値である場合には、多次元禁則(3次元禁則)の発生が検出される(ステップS231)。
そして、このような禁則が検出される場合には、ステップS232からステップS233に進み、図14(図15も参照)に示す有向グラフ(たとえば、上側の1系統の有向グラフ)が生成される。
その後、ステップS235(図8)からステップS239に進み、ステップS231と同様の探索が続行される。そして、ステップS232に戻り同様の動作が実行される。多次元禁則行列Mn内の全ての列についてステップS231(,S239)の検索動作が終了すると、このサブルーチンS230の処理を終了すべき旨がステップS235にて判定され、当該サブルーチンS230の処理が終了する。
たとえば、ユーザの設定変更操作に応じて設定項目Q1が元の設定内容(設定値とも称する)q13から新たな設定内容q11に変更される場合、多次元禁則行列Mnにおいて、禁則候補列(当該新たな設定内容q11に対応する行に「0以外の値」が存在する「列」)を検索する。そして、検索された禁則候補列(たとえば、第1列および第5列(図16参照))において、「0以外の値」が存在する行を検索し、当該禁則候補列に対応する設定内容が現在の設定内容であるか否かが判定される。その結果、第1列における「0以外の値」が存在する残りの全ての行(たとえば残りの2つの行)に対応する設定内容(設定内容q21,q31)がいずれも現在の設定値である場合には、多次元禁則(3次元禁則)の発生が検出される。同様に、第5列における「0以外の値」が存在する残りの全ての行(たとえば残りの2つの行)に対応する設定内容(設定内容q21,q41)がいずれも現在の設定値である場合には、多次元禁則(3次元禁則)の発生が検出される。
このようにして、3次元禁則が発生しているか否かが多次元禁則行列Mnを用いて判定され(ステップS231,S239)、多次元禁則が発生している旨が判定される場合には多次元有向グラフが生成される(ステップS233)。なお、ステップS230において多次元禁則が1つも検出されない場合には多次元有向グラフは生成されない。また、ステップS230において多次元禁則がZ個検出される場合にはZ個の多次元有向グラフが生成される。図14においては、2種類の3次元禁則が検出されて2つの3次元有向グラフが生成されている状況が示されている。
なお、この実施形態では、2次元禁則と多次元禁則とを異なる行列を用いて表現している。2次元禁則用隣接行列M2は、比較的簡易に且つ漏れなく2次元禁則を表現することが可能であるとの特質を有している。このような特質を考慮し、当該2次元禁則用隣接行列M2を用いて、比較的多数存在する2次元禁則を表現しておき、残りの多次元禁則をMnを用いて補助的に表現している。ただし、これに限定されず、たとえば、2次元禁則と多次元禁則とをいずれも、上述の多次元禁則行列Mnと同様の行列を用いて表現してもよい。
<現在禁則状態行列>
図6に示すように上述のような処理(ステップS210,S230)の後において、ステップS250の処理(現在禁則状態行列G(次述)の算出処理等)(図9参照)が行われる。
ステップS250においては、図17に示されるような行列が算出される。この行列は、現在の禁則状態を示す行列であり、現在禁則状態行列Gとも称される。
この現在禁則状態行列Gは、3つの列を有している。なお、現在禁則状態行列Gの縦方向(換言すれば、現在禁則状態行列Gの各列)においては、全ての設定項目Q1,Q2,Q3,...に関する全ての設定内容(設定値)q11,q12,....,q21,q22,....,q31,q32,....,に関する情報が列挙される。
左端の列には、「現在値」に関する情報(フラグ情報)が列挙される。現在値として設定されている設定内容(設定値)の対応位置(対応行位置)の成分は、「1」に設定される。現在値として設定されていない設定内容(設定値)の対応位置の成分は、「0」に設定される。
たとえば、設定項目Q1に関して、設定内容q11が現在値として設定されている場合、「現在値」の列(左端の列)の最も上の行の成分(設定内容q11に対応する位置の成分)が「1」に設定される。また、「現在値」の列(左端の列)の最も上から2行目の成分等(設定項目Q1の他の設定内容q12,q13,q14等に対応する位置の成分)は「0」に設定される。
このような処理が、全ての設定項目に関して実行されることによって、現在禁則状態行列Gの左端の列の各成分値が求められる。
また、左端から2つ目の列(中央の列)には、「禁則数」(詳細には、各対応要素(各設定内容)が関与している禁則数)に関する情報が列挙されている。具体的には、或る設定項目(注目設定項目)の設定内容(注目設定内容)が禁則要因として関与して現在発生している禁則(注目設定項目の注目設定内容と他の設定項目の現在値(現在の設定内容)との間の禁則)の数が示されている。たとえば、設定内容q21が関与して2種類の禁則設定が発生しているときには、設定内容q21の禁則数は、「2」である。
この「禁則数」は、2次元禁則用隣接行列M2および多次元禁則行列Mnを用いることによって求められる。より具体的には、注目設定内容を新たな設定内容(「変更値」)として設定変更したと仮定して、上述のステップS210,S230の禁則検出処理等(ただし、有向グラフの生成処理(ステップS216,S218,S233)を除く)が実行される。そして、検出された禁則数(2次元禁則の検出数と多次元禁則の検出数との合計数)が、注目設定内容の「禁則数」として求められる。
このような処理が、全ての設定項目の全ての設定内容に関してそれぞれ実行されることによって、現在禁則状態行列Gの中央列(「禁則数」)の各成分値が求められる。
また、左端から3つ目の列(右端の列)には、「詳細状態」に関する情報が列挙されている。具体的には、或る設定項目(注目設定項目)の設定内容(注目設定内容)が関与して現在発生している禁則(当該設定内容と他の設定項目の現在値(現在の設定内容)との間の禁則)に関する詳細状態(フラグ値)が示されている。
詳細には、まず、注目設定項目の設定内容(注目設定内容)と他の設定項目の現在値(現在の設定内容)との間に禁則が発生していない場合には、フラグ値は「0」に設定され、そうでない場合には、フラグ値は「1」あるいは「2」に設定される。
当該注目設定内容(注目禁則設定内容)が禁則要因として関与する何れかの禁則設定において、注目設定項目(注目禁則項目)の優先度がその複数の禁則項目のうち最も低いときには、フラグ値は「2」に設定される。換言すれば、当該注目設定項目が禁則要因として関与する1つ又は複数の種類の禁則設定のうち、当該注目設定項目が最低優先度を有する禁則設定が存在するときには、フラグ値は「2」に設定される。それ以外のときには、フラグ値は「1」に設定される。
たとえば、図14の有向グラフにおいて、識別ラベル「1」の禁則において、設定内容q31は、最も下流側の設定項目(最も優先度が低い設定項目)の設定内容である。換言すれば、注目設定内容q31に対応する注目設定項目Q3が最低優先度を有する禁則設定(識別ラベル「1」の禁則)が存在する。したがって、設定内容q31に対応する成分値(「詳細状態」のフラグ値)は、「2」に設定される。一方、設定内容q21は、2種類の禁則設定のうちのいずれにおいても、最低優先度を有する設定項目の設定内容ではない。したがって、設定内容q21に対応する成分値(「詳細状態」のフラグ値)は、「1」に設定される。
このような処理が、全ての設定項目の全ての設定内容に関してそれぞれ実行されることによって、現在禁則状態行列Gの右端の列(「詳細状態」)の各成分値が求められる。
後述するように、「優先度優先モードMD2」においては、「詳細状態」のフラグ値が「2」の設定内容を有する1又は複数の禁則項目のうち、最も低い優先度を有する禁則項目から順に、その設定内容(設定値)が変更される。また、図29に示すように、表示画面300において、当該フラグ値「2」の設定内容q31,a41に対応する頂点(楕円図形)が、色付け表示される。
なお、ここでは、全ての設定項目の全ての設定内容(設定値)について上述の各値(「現在値」、「禁則数」、「詳細状態」)がそれぞれ求められて現在禁則状態行列Gが生成されているが、これに限定されない。たとえば、ステップS210,S230で検出された禁則項目のみ(たとえば、4つの禁則項目Q1,Q2,Q3,Q4のみ)(詳細には、当該4つの設定項目の各設定値のみ)に関して当該各値がそれぞれ求められて現在禁則状態行列Gが生成されてもよい。
<4.禁則発生状況提示処理(S14)>
その後、ステップS12(図4)での処理結果等に基づき、禁則設定が発生している旨がステップS13で判定(確認)されると、ステップS13からステップS14に進む。
ステップS14では、まず、図22のような画面300(302)が表示される。なお、ステップS11においては、当該ステップS11でユーザからの設定変更を受け付ける設定画面400(図20参照)の他に、図21のような画面300(301)が予め表示されているものとする。そして、ステップS14においては、図21の画面301に代えて、図22の画面302が表示される。なお、図21および図22は、禁則発生状況に関する表示画面300を示す図である。図21は、禁則設定が未だ発生していない状態(禁則発生前の初期状態)を示しており、図22は、禁則設定が発生した状態(禁則発生後の初期状態)を示している。
この画面302においては、「初期禁則状態表示(Initial Conflict View)」に関する表示領域332が大きく確保されており、当該表示領域332内に、禁則設定の発生状態(禁則発生後の初期状態)を示す有向グラフが示されている。図22(画面302)では、上述の2つの3次元禁則(Q1=q11,Q2=q21,Q3=q31),(Q1=q11,Q2=q21,Q4=q41)が生じている様子が、上述の有向グラフ(図14および図15参照)を用いて示されている。
また、画面300は、「初期禁則状態表示(Initial Conflict View)」に関する表示領域332(図22参照)に加えて、「現在禁則状態表示(Temporary Conflict View)」に関する表示領域352(図23参照)と「解決状態表示(Solution View)」に関する表示領域372(図24参照)とを有している。
表示領域332,352は、それぞれ、対応するバー領域331,351をマウスでクリックすること等によって大きく表示(展開された状態で表示)される。たとえば、図22の画面300(302)等にてバー領域351がマウスでクリックされると、図23に示されるように、画面300(303)内にて表示領域352が大きく表示される。なお、図23の画面300(303)は、現在の禁則発生状況を示しており、表示領域352は、現在の禁則状態を表示する表示領域である。たとえば、ユーザの操作に応じて禁則設定を段階的に(逐次的に)解消していく場合に、その時点(各段階)での禁則状態(現段階での禁則状態)が表示領域352に表示される。また、後述するように、表示領域372は、たとえば表示領域352内の解決候補表示ボタン353の押下に応じて、大きく表示(展開された状態で表示)される(図24参照)。なお、バー領域371がマウスでクリックされた場合にも、表示領域372は、大きく表示される。
以下では、画面303(図23)が表示された状態(「現在禁則状態表示(Temporary Conflict View)」に関する表示領域352が大きく表示された状態)で各種の操作が行われる状況を想定する。表示領域352には、現在の禁則状態が有向グラフを用いて表示される。
また、この状態においては、禁則解消モードが効率優先モードMD1(後述)に設定されており、表示領域352には、複数の禁則項目のうち、効率優先モードMD1において禁則解消のために最初に変更されるべき設定項目に対応する頂点(ノード)が強調表示される。たとえば、図23等に示すように、複数の禁則項目を示す複数の頂点のうち、最大の禁則数を有する頂点(設定項目Q2(設定内容q21)に対応する頂点)が色付け表示される。このような強調表示によれば、ユーザは、効率優先モードMD1における、変更対象の最有力候補を容易に視認することが可能である。
<禁則解消モード>
ここで、「禁則解消モード」について説明する。
プリンタドライバは、複数の種類の禁則設定を解消する禁則解消モードとして、2つのモードMD1,MD2を有している。1つのモードは、効率優先モードMD1である。他の1つのモードは、優先度優先モードMD2である。
効率優先モードMD1は、複数の種類の禁則設定が発生している際に、当該複数の種類の禁則設定に関する複数の禁則項目のうちの共通禁則項目の設定内容を優先的に変更することによって、当該複数の種類の禁則設定を解消するモードである。効率優先モードMD1においては、各禁則設定における禁則要因に係る設定項目(禁則項目)が特定されるとともに、当該複数の種類の禁則設定のうちの少なくとも一部の2種類以上の禁則設定に共通する禁則項目(「共通禁則項目」)が抽出される。そして、共通禁則項目の設定内容が優先的に変更される。
一方、優先度優先モードMD2は、複数の種類の禁則設定が発生している際に、当該複数の種類の禁則設定に関する複数の禁則項目のうち、その優先度が最も低い禁則項目の設定内容を優先的に変更することによって当該複数の種類の禁則設定を解消するモードである。優先度優先モードMD2においては、禁則設定を解消するために当該禁則設定に係る禁則項目のうちのいずれかの設定項目の設定内容を変更する場合において、後述するように、比較的高い優先度を有する設定項目の設定内容をなるべく変更せずに維持しておき、比較的低い優先度を有する設定項目の設定内容が先に変更される。端的に言えば、優先度の低い設定項目から順にその設定内容が変更される。
なお、ユーザは、2つのモードMD1,MD2のうち使用すべきモードを指定することが可能である。具体的には、ユーザは、画面300内のモード指定欄311に設けられた2つのラジオボタン312,313の一方を選択することによって、使用すべき禁則解消モードを指定することが可能である。ラジオボタン312がクリックされると、効率優先モードMD1が指定され、ラジオボタン313がクリックされることによって、優先度優先モードMD2が指定される。なお、デフォルト状態では、効率優先モードMD1が禁則解消モードとして選択されている。
<5.解決策提示処理等(S20)>
<解決候補表示ボタン押下時の動作>
ステップS14の次のステップS20の処理について説明する。図5は、各種の操作に応じた処理(ステップS20)(図4も参照)を示すフローチャートである。
以下では、まず、画面303(図23)において解決候補表示ボタン353が押下される場合について説明する。
解決候補表示ボタン353が押下されると、ステップS15からステップS21(S50とも表記する)(図10参照)に進む。図10は、ステップS50の詳細動作を示すフローチャートである。
ステップS51において、選択されているモードが2つのモードMD1,MD2のいずれであるかが判定される。効率優先モードMD1が選択されている場合には、ステップS51からステップS52に進む。一方、優先度優先モードMD2が選択されている場合には、ステップS51からステップS57に進む。
ステップS57,S58では、優先度優先モードMD2による禁則解消動作が実行される。具体的には、ステップS57にて、その優先度が最も低い禁則項目の設定内容が先ず変更される。たとえば、2種類の禁則設定に係る複数の禁則項目のうち最低優先度を有する設定項目(禁則項目)Q4の設定内容q41(図29も参照)が他の設定内容q42に変更される。これにより、対応する禁則設定(識別ラベル「5」の禁則設定)が解消される。次に、ステップS58において全ての禁則設定が解消されたか否かが判定される。未だ解消されていない禁則設定が残っている場合には、再びステップS57に戻る。そして、今度は、更に、残存している別の禁則設定(識別ラベル「1」の禁則設定)において、最低優先度を有する設定項目Q3の設定内容q31が他の設定内容q32に変更される。これら2つの設定変更が実行することによって禁則が解消される。
一方、ステップS52〜S55では、効率優先モードMD1による禁則解消動作が実行される。
ステップS52においては、最大の「禁則数」を有する禁則設定内容の個数が複数であるか単数であるかが判定される。
たとえば、複数の種類の禁則設定が発生している場合、当該複数の種類の禁則設定に係る複数の禁則設定内容(複数の頂点)のうち、「禁則数」が「2以上」の禁則設定内容が抽出される。換言すれば、複数の種類の禁則設定のうちの少なくとも一部の2種類以上の禁則設定に共通する禁則項目である共通禁則項目が抽出される。また、ここでは、複数の頂点(ノード)のうち最大の「禁則数」を有する頂点(ノード)が、最初に変更すべき(最も優先して変更すべき)設定項目(設定内容)として、決定される。換言すれば、最も多数の種類の禁則設定に共通する共通禁則項目(最多共通項目とも称する)が設定変更対象項目の最有力候補(第1候補)として決定される。なお、各頂点の禁則数は、現在禁則状態行列Gに基づいて判定されればよい。具体的には、各頂点(禁則項目)の禁則数は、現在禁則状態行列Gにおける、各禁則項目の現在設定値に対応する位置の「禁則数」として求められればよい。
図23に示すような禁則発生状況においては、「2以上」の「禁則数」を有する禁則設定内容q11,q21が、最大の禁則数を有する禁則設定内容として抽出される。具体的には、「禁則数=2」を有する2つの頂点(禁則設定内容)q11,q21が、最大の禁則数を有する禁則設定内容として抽出される。換言すれば、複数の共通禁則項目Q1,Q2のうち、最も多数の種類の禁則設定に共通する共通禁則項目である最多共通項目Q1,Q2が設定変更対象項目の最有力候補として決定される。
そして、最大の禁則数「2」を有する頂点(2つ(最大禁則数)の禁則に関与する禁則設定内容)の個数が複数(ここでは2個)である旨が判定される。
最大禁則数を有する頂点の個数が複数である旨が判定される場合には、ステップS52からステップS53に進む。
ステップS53では、最大禁則数「2」を有する複数の頂点(禁則設定内容)q11,q21のうち、最も低い優先度を有する頂点q21が、変更対象(設定変更対象内容)に決定される。詳細には、最低優先度を有する共通禁則項目Q2が変更対象項目の最有力候補として決定される。
さらに、当該禁則設定内容q21に対応する設定項目Q2の設定内容が、「禁則数」を最も減少させる設定内容(たとえば、「禁則数」を2つ減らしてゼロにする設定内容q22)へと変更すべき旨が決定される。詳細には、変更対象項目の最有力候補として決定された共通禁則項目Q2に関して、その設定変更によって禁則数を最も多く低減することが可能な一の設定内容q22が求められ(決定され)、共通禁則項目Q2の設定内容が一の設定内容q22に変更すべき旨が決定される。その後、ステップS55に進む。
一方、最大の禁則数を有する禁則設定内容の個数が単数である旨が判定される場合には、ステップS52からステップS54に進む。ステップS54では、最大の禁則数を有する当該禁則設定内容が変更対象に決定される。そして、当該禁則設定内容に対応する設定項目の設定内容が、「禁則数」を最も減少させる設定内容に変更される。その後、ステップS55に進む。
ステップS55では、全ての禁則が解消されたか否かが判定される。未だ解消されていない禁則設定が残っている場合には、再びステップS52に戻る。そして、ステップS52〜S55の動作が再び実行される。なお、ステップS52〜S55では、残存している禁則について上記と同様の動作が行われる。
効率優先モードMD1においては、禁則設定内容q21に対応する設定項目Q2の設定内容が、「禁則数」を最も減少させる設定内容(たとえば、「禁則数」を2つ減らしてゼロにする設定内容q22)へと変更されると、2種類の禁則設定(ラベル「1」および「5」の禁則)が同時に解消される。したがって、効率的な変更処理が行われる。
そして、ステップS59において、禁則解消後の状態(および禁則解消策)が表示される。たとえば、共通禁則項目の設定内容の変更後の状態が表示される。
たとえば、図24に示すように、禁則解消後の状態が表示領域372に表示される。図24は、禁則解消後の状態を示す図である。詳細には、図24の表示領域372においては、有向グラフの各頂点が破線で示されるとともに、頂点間を接続する枝(エッジ)部分に表示されていた線と識別ラベル(「1」および「5」)とが削除されている。図24(および図23)の表示領域352の表示内容(変更前の表示内容)と比較すると判るように、禁則設定が解消されたことが、このような表示変更によって示されている。
その後、表示領域372内の変更ボタン373が押下されると、ステップS35(図4)に進む。ステップS35においては、表示領域372等に表示された解消策が実際に実行される。すなわち、解決候補として提示されていた1又は2以上の設定変更が実際に実行される。たとえば、効率優先モードMD1において、設定変更対象項目の最有力候補として決定された共通禁則項目の設定内容を変更して共通禁則項目に関する禁則設定を解消する処理、を含む設定変更処理が行われる。
以上のようにして、所定の基準に基づいて禁則設定を自動的に解消するための自動的な設定変更動作(「自動変更」)が実行される。なお、この実施形態では、実際に変更動作が行われる前に、図23のような現状の禁則発生状態を示す画面303と図24のような禁則解消後の状態を示す画面304とが表示される。ユーザは、これらの画面303,304を視認することによって、「どのような禁則が発生しているのか」および/または「当該禁則がどのように解消されるのか」等を知得することができる。
また、この実施形態では、特定の設定項目に関するユーザからの設定変更指示(詳細には、ユーザによって指定された設定項目をユーザによって指定された設定内容(設定値)に変更する指示)に基づき禁則設定を解消していく設定変更動作(「手動変更」)をも実行することが可能である。ユーザは、図23のような現状の禁則発生状態を示す画面300(303等)を視認することによって、現在発生している禁則を知得しつつ、当該禁則の解消を試行することが可能である。
以下では、ユーザの手動操作による禁則設定の解消動作について説明する。
<手動操作時の動作(頂点クリック)>
まず、画面303(図23参照)が表示されている状態において、頂点(ノード)に対するクリック操作(複数の表示要素(頂点)の中から所望の表示要素を選択する選択操作)が行われた場合について説明する。
当該クリック操作が行われると、ステップS15からステップS22(図5)に進む。ステップS22では、次のような動作が行われる。
具体的には、画面303に代えて、図25に示すような画面300(305)が表示される。画面305においては、クリックされた頂点(具体的には、設定項目Q2(設定内容q21))に対して吹き出し画像が付与されている。当該吹き出し画像(重畳画像とも称する)の内部には、設定項目Q2に関する複数の設定内容q21,q22,q23のそれぞれに関する情報(図17の現在禁則状態行列Gに基づく情報)が表示されている。具体的には、各設定内容q21,q22,q23の「詳細状態」の情報、および各設定内容q21,q22,q23に変更した後の「禁則数」の情報等が表示されている。
詳細には、設定内容q22の詳細状態「0」(図17参照)、および設定内容q22に変更した後の禁則数「0」が表示されている。詳細状態「0」は、図25では、丸印で示されている。
また、設定内容q23の詳細状態「1」(図17参照)、および各設定内容q23に変更した後の禁則数「3」が表示されている。詳細状態「1」は、図25では、三角印で示されている。なお、設定内容の詳細状態「2」(図17参照)は、その他の記号等(たとえば「×」印等)で示される(図26および図27等参照)。
なお、他の各頂点をクリックする場合にも、同様に、各頂点に関する情報が表示される。ユーザは、幾つかの頂点をクリックすることによって、所要の情報を知得することが可能である。
<手動操作時の動作(変更対象項目の変更)>
次に、変更対象項目の手動変更について説明する。
たとえば、頂点に対する上述のクリック操作に応じて図25の画面305が表示されている状態にて、吹き出し画像内における所望の設定内容(たとえば、設定内容q22)の記述部分がクリック(選択)されると、設定変更対象項目(Q2)を当該所望の設定内容(q22)に変更すべき旨の指示が受け付けけられた旨が判定され、ステップS15からステップS24に進む。ステップS24では、ステップS12(ステップS200)(図6)と同様の動作(禁則発生判定処理および禁則グラフ生成処理等)が行われるとともに、表示内容が更新される。さらに、当該指示に基づく実際の設定変更処理も行われる。なお、更新後の表示内容(更新後の有向グラフ等)は、表示領域352等に表示される。
具体的には、設定項目Q2の設定内容が元の設定内容q21から当該所望の設定内容(q22等)へと変更される。設定内容q22へと変更された場合には、上述の変更後の内容(図24の表示領域372の表示内容)と同様の内容が表示領域352内に表示される。
なお、ユーザは、たとえば、図23(あるいは図25)等の表示領域352において設定項目Q2とは別の設定項目Q1を示す頂点をクリックして吹き出し画像を表示させ(図26の画面306参照)、当該吹き出し画像内の所望の設定内容q12を選択することによって、設定項目Q1の設定内容を元の設定内容q11から当該所望の設定内容q12へと変更することもできる。すなわち、このような手動操作によって、禁則状態を解消することも可能である。
同様に、ユーザは、たとえば、図23(あるいは図25)等の表示領域352においてさらに別の設定項目Q4を示す頂点をクリックして吹き出し画像を表示させ(図27の画面307参照)、当該吹き出し画像内の所望の設定内容q42を選択することによって、設定項目Q4の設定内容を元の設定内容q41から当該所望の設定内容q42へと変更することができる。
なお、図27においては、設定内容(q41およびq43)の詳細状態の情報「2」(図17の現在禁則状態行列Gを参照)が、「×」印で示されている。たとえば、ユーザは、図27の画面300(効率優先モードMD1の画面)を視認して「共通禁則項目」の存在を把握している場合であっても、最低優先度の禁則項目Q4を変更する禁則解消策(設定内容q42(「×」印が付された設定内容)への設定変更)を意図的に(敢えて)採用することも可能である。
このような変更対象項目の変更操作が行われると、ステップS24からステップS31に進む。ステップS31においては、全ての禁則設定が解消されたか否かが判定される。未だ解消されていない禁則設定が残存している場合には、再びステップS15に戻る。一方、全ての禁則設定が解消された場合には、このステップS20の処理は終了する。
<手動操作時の動作(優先度の変更)>
次に、優先度の手動変更について説明する。
ユーザは、その優先度を変更したい2つの設定項目(詳細には、対応する頂点)を選択する。具体的には、印刷指示装置50のキーボードのコントロールキーを押下しつつ、画面300内において2つの設定項目Q1,Q2に対応する2つの頂点を順次にマウスで左クリックすることによって、当該2つの設定項目Q1,Q2を選択することが可能である。そして、この状態にて、マウスの右ボタンをクリックすることによって表示されるサブメニュー画面の中から、「優先度変更(優先度入替)」のメニュー項目を選択する。このような選択操作(入替指示操作)に応答して、当該2つの設定項目Q1,Q2の優先度が入れ替えられる。
具体的には、そのような入替指示操作が検出されると、ステップS15からステップS23(図5)に進む。ステップS23では、次述するような優先度変更処理が行われる。その後、ステップS24の処理が行われ、表示内容が更新される。
たとえば、2つの設定項目Q1,Q2の優先度が入れ替え指示が付与されると、優先度変更処理(ステップS23)が行われる。たとえば、設定項目Q1の優先度が設定項目Q2の優先度よりも高い場合(図11および図14等参照)に当該入替指示が付与されると、設定項目Q1の優先度が設定項目Q2の優先度よりも低くなるような変更処理(優先度入替処理)が行われる。
より詳細には、優先度の入替対象に係る設定項目Q1,Q2が2次元禁則の禁則項目である場合には、図18に示すような処理(2次元禁則用隣接行列M2の変更処理)が行われる。一方、優先度の入替対象に係る設定項目Q1,Q2が多次元禁則の禁則項目である場合には、図19に示すような処理(多次元禁則行列Mnの変更処理)が行われる。なお、図18は、2次元禁則用隣接行列M2の変更処理(優先度入替処理)を示す図であり、図19は、多次元禁則行列Mnの変更処理(優先度入替処理)を示す図である。
以下では、まず、2次元禁則用隣接行列の変更処理(優先度入替処理)について説明する。
2次元禁則用隣接行列M2の当該変更処理(図18参照)は、元(変更前)の2次元禁則用隣接行列M2(図13)において、(v,w)成分と(w,v)成分とを入れ替えることによって、実現される。なお、値v,wは互いに異なる自然数である。ここで、値vは、入替対象の一方の設定項目(たとえばQ1)の設定内容(禁則設定内容)(たとえばq11)に対応する位置(行位置あるいは列位置)を示し、値wは、他方の入替対象の設定項目(たとえばQ2)の設定内容(禁則設定内容)(たとえばq21)に対応する位置(列位置あるいは行位置)を示す。
上述のように、変更前の2次元禁則用隣接行列M2(図13)において、2次元禁則用隣接行列M2の第v行(設定値q11に対応する行)と第w列(設定値q21に対応する列)との交差部分に「1」が存在する。すなわち、(v,w)成分は「1」である。また、(w,v)成分は、「0」である。
これに対して、変更後の2次元禁則用隣接行列M2(図18)においては、(図13とは逆に、)第w行(設定値q21に対応する行)と第v列(設定値q11に対応する列)との交差部分に「1」が存在する。すなわち、(w,v)成分が「1」である。また、(v,w)成分は、「0」である。
このように、(v,w)成分と(w,v)成分とが入れ替えられた2次元禁則用隣接行列M2が生成される。なお、この入替後(更新後)の2次元禁則用隣接行列M2を用いて2次元禁則の検出処理等(ステップS24)を行うことによって、入替後の優先度を反映した2次元禁則検出処理および2次元有向グラフ生成処理等が実行される。
つぎに、多次元禁則行列Mnの変更処理(優先度入替処理)について説明する。
多次元禁則行列Mnの当該変更処理(図19参照)は、元(変更前)の多次元禁則行列Mn(図16)において、第cの禁則(第c列)に関して、(x,c)成分と(y,c)成分とを入れ替えることによって、実現される。ここで、値xは、入替対象の一方の設定項目(たとえばQ1)の設定内容(禁則設定内容)(たとえばq11)に対応する行位置を示し、値yは、他方の入替対象の設定項目(たとえばQ2)の設定内容(禁則設定内容)(たとえばq21)に対応する行位置を示す。なお、値x,y,cはそれぞれ自然数である。
上述のように、変更前の多次元禁則行列Mn(図16)においては、第1列(c=1)の禁則に関して、第x行(q11成分に対応する行)に「3/3」が存在し、第y行(q21成分に対応する行)に「2/3」が存在する。換言すれば、(x,c)成分は、「3/3」であり、(y,c)成分は、「2/3」である。
これに対して、変更後の多次元禁則行列Mn(図19)においては、第1列(c=1)の禁則に関して、第x行(q11成分に対応する行)に「2/3」が存在し、第y行(q21成分に対応する行)に「3/3」が存在する。換言すれば、(x,c)成分は、「2/3」であり、(y,c)成分は、「3/3」である。
同様に、第5列(c=5)の禁則に関しても、同様の入替処理が行われる。具体的には、(x,c)成分は、「2/3」に変更され、(y,c)成分は、「3/3」に変更される。
このように、(x,c)成分と(y,c)成分とが入れ替えられた多次元禁則行列Mn(図19)が生成される。なお、この入替後の多次元禁則行列Mnを用いて多次元禁則の検出処理等(ステップS24)を行うことによって、入替後の優先度を反映した多次元禁則検出処理および多次元有向グラフ生成処理等が実行される。
以上のようにして、2次元禁則用隣接行列M2あるいは多次元禁則行列Mnが変更される。
その後、変更後(入替後)の行列(M2あるいはMn)に基づいてステップS24の処理が行われ、表示内容が更新される。この結果、たとえば、図28に示されるように、表示領域352においては、当該2つの設定項目Q1,Q2に対応する2つの頂点が入れ替わって表示される。図28は、優先度入替操作後の禁則発生状況に関する表示画面300(308)を示す図である。詳細には、この画面308内において、最も右側には設定項目Q1に代えて設定項目Q2(設定内容q21)が表示され、中央には設定項目Q2に代えて設定項目Q1(設定内容q11)が表示される。換言すれば、設定項目Q2,Q1,Q3がこの順序で右側から左側に向けて配置される。
<手動操作時の動作(1つ前の状態に戻すボタンを押下)>
また、画面300(308等)内の「1つ前の状態に戻す」ボタン354が押下されると、ステップS15からステップS25(図5)に進む。ステップS25では、「1つ前の状態」に戻す処理が行われる。
たとえば、変更対象項目の変更操作の直後に、「1つ前の状態に戻す」ボタン354が押下される場合には、変更対象項目が変更される前の状態に戻すための処理(設定内容を1つ前の状態に戻す処理、および1つ前の状態を示す有向グラフの生成処理等)が行われる。そして、「1つ前の状態」に対応する有向グラフが表示領域352に表示される。
あるいは、優先度の変更操作の直後に、「1つ前の状態に戻す」ボタン354が押下される場合には、優先度が変更される前の状態に戻すための処理(優先度の変更(入替)前の状態に戻す処理、および当該変更前の状態を示す有向グラフの生成処理等)が行われる。優先度の変更(入替)前の状態に戻す処理としては、2次元禁則用隣接行列M2あるいは多次元禁則行列Mnを変更前の状態に戻す処理等が行われる。そして、「1つ前の状態」に対応する有向グラフが表示領域352に表示される。
<手動操作時の動作(初期状態に戻すボタンを押下)>
また、画面300(308等)内の「初期状態に戻す」ボタン355が押下されると、ステップS15からステップS26に進む。ステップS26では、「初期状態」に戻す処理が行われる。具体的には、その時点までの手動操作による全ての変更が破棄され、各種の設定内容が初期状態(ステップS14の状態)に戻されるとともに、初期状態を示す有向グラフの生成処理等が行われる。そして、「初期状態」(初期禁則発生状態)に対応する有向グラフが表示領域352に表示される。
<手動操作時の動作(モード変更ボタンを押下)>
また、画面300(303等)内のラジオボタン312,313のいずれかが押下されると、ステップS15からステップS27に進む。ステップS27では、いずれのモードへの移行指示が受け付けられたか(いずれのラジオボタン312,313が押下されたか)が判定される。効率優先モードMD1への移行指示が受け付けられた(ラジオボタン312が押下された)場合には、ステップS28に進む。一方、優先度優先モードMD2への移行指示が受けつけられた(ラジオボタン313が押下された)場合には、ステップS29に進む。
ステップS28では、禁則解消モードが効率優先モードMD1に設定される。また、ステップS28では、複数の禁則項目のうち、効率優先モードMD1において禁則解消のために最初に変更されるべき設定項目(設定内容)に対応する頂点が特定され、当該頂点が強調表示される(ここでは、特定色(たとえば、黄色)の背景色を有する状態で表示される)。たとえば、図23等に示すように、複数の禁則項目を示す複数の頂点のうち、最大の禁則数を有する頂点q21が色付け表示される(図では砂地ハッチングを付して示す)。また、最大の禁則数を有する頂点が複数個存在する場合には、当該複数の頂点(q21およびq22)のうち、最低の優先度を有する頂点(q21)が、最初に変更されるべき設定項目(変更対象項目)の最有力候補として色付け表示される。このような強調表示(色付け表示等)によれば、ユーザは、効率優先モードMD1における、変更対象の最有力候補を容易に視認することが可能である。
ステップS29では、禁則解消モードが優先度先モードMD2に設定される。また、ステップS29では、複数の禁則項目のうち、優先度先モードMD2において禁則解消のために最初に変更されるべき設定項目(設定内容)に対応する頂点が特定され、当該頂点が強調表示される(ここでは、特定色(たとえば、黄色)の背景色を有する状態で表示される)。たとえば、図29等に示すように、各禁則設定において最低優先度を有する禁則項目(たとえば、q31,q41)が色付け表示される(図では砂地ハッチングを付して示す)。図29は、モード切替操作後(優先度優先モードMD2への切替操作後)の禁則発生状況に関する表示画面300(309)を示す図である。このような強調表示によれば、ユーザは、優先度先モードMD2における、変更対象の最有力候補を容易に視認することが可能である。
以上のように、このプリンタドライバは、ユーザの手動操作による禁則解消処理をも実行することが可能である。
また、一部の設定をユーザの手動操作で変更した後に、当該手動操作による変更を維持したまま、以後の禁則解消操作を自動的に行うことも可能である。より詳細には、たとえば、ユーザは、上述のような手動操作によって、特定の2つの頂点(ノード)の優先度を入れ替えた後(および/または特定の頂点の設定内容を新たな設定内容に手動操作で変更した後)において、解決候補表示ボタン353を押下すればよい。このような操作に応じて、プリンタドライバは、手動による設定変更を維持した上での更なる解決策を自動的に決定し、当該解決策を表示領域372に表示する。ユーザは、当該解決策を確認し、当該解決策を了承する場合には、変更ボタン373を押下する。プリンタドライバは、変更ボタン373の押下に応じて、当該解決策に係る実際の設定変更を実行する。このように、手動操作による設定変更と自動的な設定変更との組み合わせで、禁則設定を解消することも可能である。
<6.実施形態の効果等>
以上のような動作(特に図10のステップS51〜S55,S59および図5のステップS28等参照)によれば、効率優先モードMD1において、「共通禁則項目」(複数の種類の禁則設定のうちの少なくとも一部の2種類以上の禁則設定に共通する禁則項目)が抽出される。具体的には、2以上の禁則数を有する頂点(禁則項目)が「禁則数最大の頂点」として存在する場合、当該2種類以上の禁則設定に共通する禁則項目(共通禁則項目)が存在し、当該共通禁則項目が抽出される。そして、複数の種類の禁則設定を解消していくための設定変更対象項目の候補(最有力候補)として、当該共通禁則項目が決定される(ステップS53,S54)。したがって、複数の種類の禁則設定を効率的に解消することが可能である。
また、複数の共通禁則項目が抽出される場合、当該複数の共通禁則項目のうち最多共通項目(最も多数の種類の禁則設定に共通する共通禁則項目)が設定変更対象項目の最有力候補として決定される(ステップS53参照)。たとえば、2つの禁則数を有する頂点(禁則項目)Q7と3つの禁則数を有する頂点(禁則項目)Q8とが仮に存在する場合、3つの禁則数を有する頂点(禁則項目)Q8が「禁則数最大の頂点」として決定される。そして、当該3つの禁則数を有する頂点(換言すれば、3種類の禁則設定に共通する禁則項目(共通禁則項目))Q8が、複数の種類の禁則設定を解消していくための設定変更対象項目の最有力候補として決定される(ステップS53,S54)。当該禁則項目Q7の設定変更を行う場合に比べて、当該禁則項目Q8の設定変更を行うことによれば、比較的多数(ここでは3つ)の禁則設定が一度に解消され得るので、複数の種類の禁則設定を非常に効率的に解消することが可能である。
また、複数の共通禁則項目が抽出される場合において、最多共通項目として2以上の共通禁則項目が存在するときには、当該2以上の共通禁則項目(たとえば、禁則設定Q1,Q2)のうちその優先度合いが最も低い共通禁則項目(たとえば、Q2)が設定変更対象項目の最有力候補として決定される(ステップS53)。これによれば、優先度合いをも考慮して効率的に複数の種類の禁則設定を解消することが可能である。
また、ユーザは、画面300内のモード指定欄311(図23および図29等参照)を用いて、2つのモードMD1,MD2の中から、所望のモードを選択(指定)することが可能である。そして、ユーザによって指定されたモードを用いて設定変更対象項目の最有力候補が決定され得る。ユーザは、たとえば、効率優先モードMD1を用いることが可能であるので、専ら優先度先モードMD2を用いる場合に比べて、多様な禁則解消策を得ることが可能である。
また、図23に示されるように、禁則発生時においては現在の禁則発生状況を示す画面300が表示されるとともに、効率優先モードMD1においては、当該画面300において共通禁則項目(Q2等)が示される。したがって、ユーザは、共通禁則項目の存在を知得して、当該共通禁則項目を利用した禁則解消処理を行うことが可能である。
特に、各禁則項目が、それぞれ対応する各表示要素(図形要素)として視覚化されて表示されるので、禁則発生状況が視覚化され禁則設定を把握し易い。また、複数の種類の禁則設定に関して、所定数の種類(たとえば2種類)の禁則設定に共通する共通禁則項目Q2は、当該所定数の種類の禁則設定に共通する1つの表示要素(図形要素)として示されるので、ユーザは、当該1つの表示要素に対応する禁則項目が共通禁則項目であることを直感的に理解することが可能である。
また、図25に示されるように、ユーザが一の頂点(一の設定項目)(たとえばQ2)
をクリックすると、当該一の設定項目(Q2)の設定内容の各変更候補(q21,q22,q23等)と当該一の設定内容を当該各変更候補に変更したときに変更候補が関与する各禁則数(「2」,「0」,「3」)とが表示される。したがって、ユーザは、当該変更候補への変更に応じた禁則数の変化を容易に知得することができる。
また、図24の画面300(304)(特にその下段側の表示領域372(Solution View欄))等においては、共通禁則項目の設定内容の変更を伴う改善策(当該変更後の状態)が表示される。したがって、ユーザは、当該改善策を確認することが可能である。より詳細には、ユーザは、当該改善策によってどのように禁則が解消されるかを容易に知得することが可能である。
また、この実施形態では、特定の設定項目に関するユーザからの設定変更指示に基づき、禁則設定を解消していく設定変更動作(「手動変更」)をも実行することが可能である。より詳細には、共通禁則項目に関する設定内容を変更すること等が可能である。したがって、ユーザの意図を適切に反映した禁則解消策を採用することが可能である。
また、この実施形態においては、複数の禁則項目のうちの1つの禁則項目の設定内容が変更されるごとに、当該設定内容の変更に伴う禁則設定の変更状況が動的に検出される。具体的には、2次元禁則行列(詳細には2次元禁則用隣接行列M2)と多次元禁則行列Mnとを用いることによって、ジョブに関する複数の設定項目のうちの一の設定項目の設定内容が現在の設定値から変更後の設定値へと変更された後の禁則発生状況が検出される(ステップS21,S24等参照)。したがって、複数の設定項目に関して順次にその設定内容が変更される場合において、各設定変更時点での禁則発生状況を随時把握することが可能である。
また、各設定変更時点での禁則発生状況が有向グラフ等を用いて視覚化されることによって、ユーザは禁則発生状況を直感的に把握することが可能である。
<7.変形例等>
以上、この発明の実施の形態について説明したが、この発明は上記説明した内容のものに限定されるものではない。
たとえば、上記実施形態等においては、設定項目(および設定内容)を示す表示要素として、楕円図形を例示している(図11および図14等参照)が、これに限定されず、当該表示要素は、その他の図形要素であってもよい。具体的には、当該表示要素は、円、矩形、菱形、星形などの比較的基本的な図形要素であってもよく、あるいは、立体的なボタン画像などの比較的複雑な図形要素であってもよい。また、当該表示要素は、プリンタドライバ内の設定に用いられるコントロール要素(ボタン、リストボックス、あるいはコンボボックス等)であってもよい。
また、上記実施形態等においては、2次元禁則および多次元禁則が有向グラフを用いて表現されているが、これに限定されない。たとえば、2次元禁則および多次元禁則が無向グラフを用いて表現されてもよい。
また、上記実施形態等においては、図14等に示されるように、2種類の禁則設定(特に共通禁則項目を有する2種類の禁則設定)が識別ラベル(「1」,「5)」で互いに区別されているが、これに限定されない。
たとえば、図30に示されるように、複数の種類の禁則設定ごとの線が、各禁則設定ごとに決定された固有の色で表示されることによって、当該複数の種類の禁則設定が互いに識別されるようにしてもよい。より具体的には、第1の種類の禁則設定に関する複数の設定項目が「青色」の線で接続され、第2の種類の禁則設定に関する複数の設定項目が「赤色」の線で接続されるようにしてもよい。なお、図30(および次述する図31)では、線の色の相違(青色と赤色との相違)を線種の相違(破線と実線との相違)で表現している。また、これに限定されず、実際に、線色の相違に代えて線種の相違で複数の種類の禁則設定が互いに識別されるようにしてもよい。
また、上記実施形態等においては、図11および図14等に示されるように、有向グラフにおいて、各禁則設定に関する2以上の禁則項目に対応する2以上の表示要素を線で結んで表示することによって、当該2以上の表示要素に対応する設定項目の設定内容が各禁則設定の要因であることが提示されている。しかしながら、本発明は、これに限定されない。
たとえば、図31に示されるように、各禁則設定に関する2以上の禁則項目に対応する2以上の表示要素を枠で囲んで表示することによって、当該2以上の表示要素に対応する設定項目の設定内容が各禁則設定の要因であることが提示されるようにしてもよい。図31は、枠を利用したグラフ表示(無向グラフ表示)の一例を示す図である。
図31では、一の種類の禁則設定に関する3つの禁則項目Q1,Q2,Q3(3つの設定内容q11,q21,q31)に対応する3つの表示要素を枠で囲んで表示することによって、当該3つの表示要素に対応する設定項目の設定内容が一の種類の禁則設定の要因であることが提示されている。また、他の種類の禁則設定に関する3つの禁則項目Q1,Q2,Q4(3つの設定内容q11,q21,q41)に対応する3つの表示要素を枠で囲んで表示することによって、当該3つの表示要素に対応する設定項目の設定内容が当該他の種類の禁則設定の要因であることが提示されている。このように、禁則設定ごとに、各禁則設定の2以上の禁則項目に対応する2以上の表示要素を枠で囲んで表示することによって、当該2以上の表示要素に対応する設定項目の設定内容が当該各禁則設定の要因であることが提示される。また、このような場合において、複数の種類の禁則設定ごとの枠が、各禁則設定ごとに決定された固有の色で表示されることによって、当該複数の種類の禁則設定が互いに識別されることが好ましい。
あるいは、図32に示されるように、線あるいは枠を利用せずに、複数の表示要素(複数の設定項目)が禁則設定の要因であることが示されるようにしてもよい。具体的には、各禁則設定に関する2以上の禁則項目に対応する2以上の表示要素の近傍(あるいは内部でもよい)に同一の識別ラベルを表示することによって、当該2以上の表示要素に対応する設定項目の設定内容が当該各禁則設定の要因であることが提示されるようにしてもよい。図32は、ラベルを利用したグラフ表示(無向グラフ表示)の一例を示す図である。
図32では、一の種類の禁則設定に関する3つの禁則項目Q1,Q2,Q3(3つの設定内容q11,q21,q31)に対応する3つの表示要素の近傍(詳細には、上方近傍)に同一の識別ラベル(「1」)を表示することによって、当該3つの表示要素に対応する設定項目の設定内容が当該一の種類の禁則設定の要因であることが提示されている。また、他の種類の禁則設定に関する3つの禁則項目Q1,Q2,Q4(3つの設定内容q11,q21,q41)に対応する3つの表示要素の近傍(詳細には、上方近傍)に同一の識別ラベル(「5」)を表示することによって、当該3つの表示要素に対応する設定項目の設定内容が当該他の種類の禁則設定の要因であることが提示されている。このように、禁則設定ごとに、各禁則設定の2以上の禁則項目に対応する2以上の表示要素の近傍(詳細には、上方近傍)に同一の識別ラベル(「1」)を表示することによって、当該2以上の表示要素に対応する設定項目の設定内容が当該各禁則設定の要因であることが提示されている。特に、複数の種類の禁則設定ごとの識別ラベルとして、各禁則設定ごとに決定された固有の識別ラベル(「1」および「5」)がそれぞれ付与されることによって、複数の種類の禁則設定が互いに識別されている。
また、上記実施形態等においては、禁則の発生状況等が図形(有向グラフ等)を用いて提示されているが、これに限定されない。たとえば、図33に示されるように、文字(文字列)で表現されてもよい。特に、図33においては、複数の種類の禁則設定のうちの少なくとも一部の2種類以上の禁則設定において共通する禁則項目(共通禁則項目)が存在する場合において、当該共通禁則項目(共通要因)が文字を用いて明示されている。より具体的には、「共通要因:禁則数=2の設定値:Q2=q21,Q1=q11」との文字列表現によって、2つの種類の禁則設定に共通する共通禁則項目Q2が存在すること(およびその禁則設定内容q21)、ならびに2つの種類の禁則設定に共通する共通禁則項目Q1が存在すること(およびその禁則設定内容q11)が示されている。なお、実際には、「Q1」および「Q2」は、設定項目(禁則項目)の名称を示す文字列(「出力用紙サイズ」および「通紙方向」等)でそれぞれ構成され、「q11」および「q21」は、設定内容(設定値)を示す文字列(「B5」および「短辺」等)でそれぞれ構成されればよい。
また、上記実施形態等においては、各設定項目相互間の優先度が有向グラフ表現における矢印の向きで表現されているが、これに限定されない。たとえば、画面内での有向グラフあるいは無向グラフの各頂点(各設定項目)の特定方向(左右方向等)における相対位置によって、各設定項目相互間の優先度が示されてもよい。より詳細には、表示領域352(332,372等)内において、複数の設定項目のうち比較的高い優先度を有する設定項目が比較的一方側(たとえば右側等)に配置されればよい。この場合、複数の設定項目のうち最も左側に位置する頂点(ノード)(最低優先度を有する頂点)に対応する設定項目から順に、その設定内容を変更していくことによって、優先度優先モードMD2と同様の禁則解消動作が実現され得る。
また、上記実施形態等においては、情報処理装置50で実行されるプリンタドライバを用いた印刷設定処理に対して本発明の思想が適用される態様が例示されているが、これに限定されない。たとえば、MFP10の操作パネル部6c上で行われる印刷設定処理に対して同様の思想が適用されるようにしてもよい。この場合には、MFP10のコントローラ9あるいは操作パネル部6c内のコントローラ(不図示)によって、上記の思想を反映したプログラムが実行されればよい。
また、上記実施形態等においては、プリントジョブに関する印刷設定処理に本発明の思想を適用する態様について説明しているが、本発明は、その他のジョブ(たとえば、コピージョブあるいはスキャンジョブ等)に関する設定処理にも適用することが可能である。より詳細には、MFP10の操作パネル部6cを用いたコピー設定操作(あるいはスキャン設定操作等)において上記の思想が適用されるようにしてもよい。