(57)【要約】【課題】設定項目の追加・削除等の変更をした場合にプリセットデータを抽出するプログラムの変更の必要がないユーザインターフェイス制御方法、ユーザインターフェイス制御装置及びプログラムを提供する。【解決手段】設定項目「カラーモード」「メディア」「印刷品質」を選択した際に、自動設定されるべき設定項目１，２，…の組合せを特定する条件を論理式で表現する。論理式で用いられている論理変数は、選択時に真、非選択時に偽になる論理変数Ｘ１，…，Ｘｎ（ｎは２以上の整数）と、非選択時に真、選択時に偽になる論理変数Ｘ１￣，…，Ｘｎ￣である。論理変数のうち設定モードに係る論理変数をＸｐとすると、論理式は（（第１論理式）∧Ｘｐ）∨（（第２論理式）∧Ｘｐ￣）として表される。ＣＰＵは禁則条件の論理式Ｅを計算し、プリセットデータを抽出する。【選択図】図４
2007299325.tif 000002
【特許請求の範囲】
【請求項１】
複数の設定項目毎に選択肢を入力可能に表示手段に表示されるユーザインターフェイスを入力手段からの入力に基づき制御するユーザインターフェイス制御方法であって、
前記複数の設定項目に設定すべき選択肢の組合せを示すプリセットデータを特定するために必要な条件を前記設定項目の各選択肢を論理変数として表現した論理式を記憶手段に記憶しておき、
前記入力手段から前記プリセットデータに対応する選択情報の入力があると、該選択情報から定まる特定の選択肢が選択されている情報を前記論理式における該選択肢と対応する前記論理変数に適用するとともに当該適用後の論理式の演算を行って設定情報を取得する演算ステップと、
前記演算ステップで取得した前記設定情報から定まる選択肢の組合せで前記設定項目を設定する処理ステップと
を備えたことを特徴とするユーザインターフェイス制御方法。
【請求項２】
請求項１に記載のユーザインターフェイス制御方法において、
前記論理式は、前記選択肢が選ばれている場合に真になり選ばれていない場合に偽になる論理変数をＸ１，…，Ｘｎ（ｎは２以上の整数）を全設定項目の全選択肢に対して定義するとともに、前記論理変数Ｘ１，…，Ｘｎの否定であって、選択肢が選ばれていない場合に真になり選ばれている場合に偽になる論理変数Ｘ１￣，…，Ｘｎ￣を定義し、前記論理変数を論理和・論理積により組み合せることによって、前記プリセットデータを特定する条件を表現した論理式であることを特徴とするユーザインターフェイス制御方法。
【請求項３】
請求項２に記載のユーザインターフェイス制御方法において、
前記複数の設定項目は、前記選択情報として選択肢が選ばれるプリセット選択用の設定項目と、前記選択情報として選ばれた選択肢に対応する論理変数の真・偽が前記論理式中の対応する論理変数に適用された当該論理式の演算結果から選択肢が特定されるプリセットデータ本体部分となる設定項目とに分かれ、プリセット選択用の設定項目の各選択肢に対応する論理変数が論理積で結合されて第１サブ論理式（Ｘａ１∧…∧Ｘａｎ）（ｎは自然数）を構成し、前記プリセットデータ本体部分となる設定項目の各選択肢に対応する論理変数の否定の論理和で結合されて第２サブ論理式（Ｘｂ１￣∨Ｘｂ２￣∨…∨Ｘｂｎ￣）（ｎは自然数）を構成し、１つのプリセットデータを表現する（Ｘａ１∧…∧Ｘａｎ）∨（Ｘｂ１￣∨Ｘｂ２￣∨…∨Ｘｂｎ￣）を一つの論理式単位として、各プリセットデータを表現する複数の論理式単位が論理和で結合されることで前記論理式は構成されていることを特徴とするユーザインターフェイス制御方法。
【請求項４】
請求項１乃至請求項３のいずれか一項に記載のユーザインターフェイス制御方法において、
前記ユーザインターフェイスは、前記選択情報を入力して前記設定項目の選択肢を自動設定するプリセット設定モードと、前記設定項目の選択肢を前記入力手段の入力に基づき選択して設定を行う通常設定モードとに切り換え可能に制御され、
前記通常設定モードで前記設定項目の選択肢が選択されたときに該選択肢との組合せが禁止されるべき他の前記設定項目の選択肢を選択不能に無効化するために該無効化させるべき選択肢を特定する条件を表現した第２論理式と、プリセット用の前記論理式である第１論理式とを論理和で結合した論理式が前記記憶手段に記憶されていることを特徴とするユーザインターフェイス制御方法。
【請求項５】
複数の設定項目毎に選択肢を入力可能に表示手段に表示されるユーザインターフェイスを入力手段からの入力に基づき制御するユーザインターフェイス制御方法であって、
前記ユーザインターフェイスは複数の設定モードに切り換え可能に制御され、
前記各設定モードに応じた第１論理式及び第２論理式を含むとともに、該各設定モードのうち一の前記設定モードが選ばれている旨のモード情報が適用されると、該第１論理式及び第２論理式のうち該選択中の設定モードに応じた一の論理式が有効になり非選択中の他の設定モードに応じた他の論理式が無効になる論理演算がなされる論理式のデータを記憶手段に記憶しておき、
前記入力手段から設定に係る入力情報を入力すると、前記入力情報と前記モード情報とを前記論理式に適用して該論理式の演算を行うことで設定情報を取得する演算ステップと、
前記演算ステップで取得した前記設定情報に基づいて選択中の設定モードに応じた所定の処理を行う処理ステップと
を備えたことを特徴とするユーザインターフェイス制御方法。
【請求項６】
複数の設定項目毎に選択肢を入力可能に表示手段に表示されるユーザインターフェイスを入力手段からの入力に基づき制御するユーザインターフェイス制御方法であって、
前記ユーザインターフェイスは複数の設定モードに切り換え可能であり、
前記ユーザインターフェイスが第１設定モードにあるときに入力される第１入力情報に基づき設定項目毎に設定すべき選択肢の組合せを定めるプリセット情報を取得可能な第１論理式と、前記ユーザインターフェイスが第２設定モードにあるときに入力される第２入力情報に基づき設定項目毎の選択肢の有効又は無効を判定可能な禁則情報を取得可能な第２論理式とを含むとともに、前記第１設定モード及び第２設定モードのうち一の設定モードが選ばれている旨を示すモード情報が適用されることにより該第１論理式及び第２論理式のうち選択中の設定モードに対応する一方が有効になり非選択中の設定モードに対応する他方が無効になる論理演算がなされる論理式のデータを記憶手段に記憶しておき、
前記第１入力情報を入力した場合は、該第１設定モードが選ばれている旨のモード情報と前記第１入力情報とを前記論理式に適用して該論理式の演算を行うことでプリセット情報を取得し、前記第２入力情報を入力した場合は、該第２設定モードが選ばれている旨のモード情報と前記第２入力情報とを前記論理式に適用して該論理式の演算を行うことで禁則情報を取得する演算ステップと、
前記演算ステップで取得した前記設定情報又は前記禁則情報に基づいて選択中の設定モードに応じた所定の処理を行う処理ステップと
を備えたことを特徴とするユーザインターフェイス制御方法。
【請求項７】
請求項５又は請求項６に記載のユーザインターフェイス制御方法において、
前記論理式は、前記選択肢及び前記モード情報のそれぞれに対応する論理変数を論理演算子で結合して表現されていることを特徴とするユーザインターフェイス制御方法。
【請求項８】
請求項７に記載のユーザインターフェイス制御方法において、
前記論理式は、選ばれている場合に真になり選ばれていない場合に偽になる論理変数Ｘ１，…，Ｘｎ（ｎは２以上の整数）と、前記論理変数Ｘ１，…，Ｘｎの否定であって、選ばれていない場合に真になり選ばれている場合に偽になる論理変数Ｘ１￣，…，Ｘｎ￣とを定義し、当該論理変数を論理和・論理積により組み合せた論理式であることを特徴とするユーザインターフェイス制御方法。
【請求項９】
請求項５乃至請求項８のいずれか一項に記載のユーザインターフェイス制御方法において、
前記論理式は、前記設定モードに係る論理変数をＸｐとし、（（第１論理式）∧Ｘｐ）∨（（第２論理式）∧Ｘｐ￣）として表され、前記Ｘｐは前記設定モードが選ばれている場合に真になり選ばれていない場合に偽となる論理変数であり、前記Ｘｐ￣は前記設定モードが選ばれていない場合に真になり選ばれている場合に偽になる論理変数であることを特徴とするユーザインターフェイス制御方法。
【請求項１０】
請求項１乃至選択肢９のいずれか一項に記載のユーザインターフェイス制御方法において、
前記論理式は、前記論理変数及び論理演算子が数値に変換された数値列からなることを特徴とするユーザインターフェイス制御方法。
【請求項１１】
請求項１０に記載のユーザインターフェイス制御方法において、
前記演算ステップにおける前記論理式への情報の適用は、該情報に対応する論理変数の状態値が前記数値列中の対応する数値に置き換えられることを特徴とするユーザインターフェイス制御方法。
【請求項１２】
請求項１０又は請求項１１のいずれか一項に記載のユーザインターフェイス制御方法において、
前記数値列は、前記論理式が逆ポーランド記法に並び替えられた順番で数値が配列された数値列であることを特徴とするユーザインターフェイス制御方法。
【請求項１３】
請求項１０乃至請求項１２のいずれか一項に記載のユーザインターフェイス制御方法において、
前記演算ステップでは、前記数値列の演算をスタック計算で行うことを特徴とするユーザインターフェイス制御方法。
【請求項１４】
請求項１３に記載のユーザインターフェイス制御方法において、
前記演算ステップでは、前記数値列を演算の際に格納する作業用メモリ上で該数値列の数値を順次参照するとともに、数値の参照が終わったメモリ領域をスタック領域として用い、参照数値が論理変数に対応するものである場合は該参照数値を前記スタック領域にプッシュし、参照数値が論理演算子に対応するものである場合は前記スタック領域から複数の数値をポップして当該複数の数値に該論理演算子で規定される演算を施してその演算結果を前記スタック領域にプッシュするスタック操作を行うことで、前記数値列の演算を行うことを特徴とするユーザインターフェイス制御方法。
【請求項１５】
複数の設定項目毎に選択肢を入力可能に表示手段に表示されるユーザインターフェイスを入力手段からの入力に基づき制御するユーザインターフェイス制御装置であって、
前記複数の設定項目に設定すべき選択肢の組合せを示すプリセットデータを特定するために必要な条件を前記設定項目の各選択肢を論理変数として表現した論理式を記憶する記憶手段と、
前記入力手段から前記プリセットデータに対応する選択情報の入力があると、該選択情報から定まる特定の選択肢が選択されている情報を前記論理式における該選択肢と対応する前記論理変数に適用するとともに当該適用後の論理式の演算を行って設定情報を取得する演算手段と、
前記演算手段が取得した前記設定情報から定まる選択肢の組合せで前記設定項目を設定する処理手段と
を備えたことを特徴とするユーザインターフェイス制御装置。
【請求項１６】
複数の設定項目毎に選択肢を入力可能に表示手段に表示されるユーザインターフェイスを入力手段からの入力に基づき制御するユーザインターフェイス制御装置であって、
前記入力手段からの入力も基づき前記ユーザインターフェイスの設定モードを切り換えるモード切換手段と、
前記各設定モードに応じた第１論理式及び第２論理式を含むとともに、該各設定モードのうち一の前記設定モードが選ばれている旨のモード情報が適用されると、該第１論理式及び第２論理式のうち該選択中の設定モードに応じた一の論理式が有効になり非選択中の他の設定モードに応じた他の論理式が無効になる論理演算がなされる論理式のデータを記憶する記憶手段と、
前記入力手段から設定に係る入力情報を入力すると、前記入力情報と前記モード情報とを前記論理式に適用して該論理式の演算を行うことで設定情報を取得する演算手段と、
前記演算ステップで取得した前記設定情報に基づいて選択中の設定モードに応じた所定の処理を行う処理手段と
を備えたことを特徴とするユーザインターフェイス制御装置。
【請求項１７】
複数の設定項目毎に選択肢を入力可能に表示手段に表示されるユーザインターフェイスを入力手段からの入力に基づき制御する処理をコンピュータが実行するためのユーザインターフェイス制御用プログラムであって、
前記複数の設定項目に設定すべき選択肢の組合せを示すプリセットデータを特定するために必要な条件を前記設定項目の各選択肢を論理変数として表現した論理式を記憶手段に記憶しておき、
コンピュータが、前記入力手段から前記プリセットデータに対応する選択情報の入力があると、該選択情報から定まる特定の選択肢が選択されている情報を前記論理式における該選択肢と対応する前記論理変数に適用するとともに当該適用後の論理式の演算を行って設定情報を取得する演算ステップと、
前記演算ステップで取得した前記設定情報から定まる選択肢の組合せで前記設定項目を設定する処理ステップと
を実行するためのプログラム。
【請求項１８】
複数の設定項目毎に選択肢を入力可能に表示手段に表示されるユーザインターフェイスを入力手段からの入力に基づき制御する処理をコンピュータが実行するユーザインターフェイス制御用プログラムであって、
前記ユーザインターフェイスは複数の設定モードに切り換え可能に制御され、
前記各設定モードに応じた第１論理式及び第２論理式を含むとともに、該各設定モードのうち一の前記設定モードが選ばれている旨のモード情報が適用されると、該第１論理式及び第２論理式のうち該選択中の設定モードに応じた一の論理式が有効になり非選択中の他の設定モードに応じた他の論理式が無効になる論理演算がなされる論理式のデータが記憶手段に記憶されており、
コンピュータが、前記入力手段から設定に係る入力情報を入力すると、前記入力情報と前記モード情報とを前記論理式に適用して該論理式の演算を行うことで設定情報を取得する演算ステップと、
前記演算ステップで取得した前記設定情報に基づいて選択中の設定モードに応じた所定の処理を行う処理ステップと
を実行するためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば印刷条件を設定する際に複数の設定項目の選択肢が選択可能に表示手段に表示されるユーザインターフェイスを入力手段からの入力に従って制御するユーザインターフェイス制御方法、ユーザインターフェイス制御装置及びプログラムに関する。
【背景技術】
【０００２】
例えばプリンタによる印刷は、印刷サイズや用紙種などの印刷設定情報を設定して行われる。例えば特許文献１には、スタンドアロン型のプリンタにおいて、プリンタの表示画面に表示された入力画面上で入力装置を用いて印刷設定情報を選択できるプリンタが開示されている。また、特許文献２及び特許文献３には、ホストコンピュータの表示装置の画面に、ユーザが入力装置を用いて印刷設定情報を設定可能な設定画面を表示するプリンタドライバが開示されている。特許文献２の技術では、用紙が不足した用紙トレイが設定画面上で選択できないような禁則処理が行われる構成となっていた。
【０００３】
また、特許文献１〜３に開示のとおり、設定画面（ユーザインターフェイス）では、用紙サイズ、用紙種、印刷速度など複数の設定項目毎にそれぞれ複数の選択肢が用意され、ユーザは設定項目毎に所望の選択肢を選択することにより印刷設定情報を設定できるようになっていた。
【０００４】
ところで、この種のユーザインターフェイスで選択可能な設定項目には、前述の用紙サイズ、用紙の種類などの他、カラー／モノクロ、高速印刷（低解像度印刷）／写真印刷（高解像度印刷）、縁なし印刷／縁あり印刷など、多岐に渡って種々の設定項目を選択できる。
【０００５】
また、近年、プリンタドライバが画面に表示するユーザインターフェイスにおいて、ユーザが多数の設定項目の選択肢をいちいち設定しなくても、適切な印刷条件がプリセットされ、ユーザが簡単な選択操作をするだけで適切な印刷条件が自動設定される機能が備えられるようになってきている。例えばカラーモード（カラー／モノクロ）、メディア（普通紙／マット紙／光沢紙／…）、印刷品質（テキスト／ドラフト）などユーザが希望する主要な印刷条件が決まれば、その主要な印刷条件の下で印刷画質等が極力よくなるように予め用意されたその他の詳細設定項目の選択肢が自動で設定される。この種のプリセットデータは複数用意されており、ユーザは簡単な操作をするだけで適切な印刷条件が自動で設定される。その選択方法には例えば２つの方法があった。１つは、ユーザインターフェイス上でプリセット番号を選択すると、そのプリセット番号に対応するプリセットデータが引き当てられ、適切な印刷条件が自動設定されるものである。他の１つは、ユーザインターフェイスに通常設定モードとプリセット設定モードが用意され、プリセット設定モードで、前述のカラーモード、メディア、印刷品質など主要な設定項目についての選択肢を選択する。すると、その選択肢が設定された場合に適切と判断される詳細設定項目の選択肢の組合せを示すプリセットデータが引き当てられ、これが自動設定されるものである。
【０００６】
従来は、プリセット番号毎、あるいは主要な設定項目の選択肢の組合せ毎に、プリセットデータを対応付けたテーブルを備え、該テーブルを参照することで適切な印刷条件を引き当てるように構成されていた。
【０００７】
また、ユーザが設定項目の選択肢を選択して印刷条件を設定する場合においても、ある設定項目の選択肢Ａ１と他の設定項目の選択肢Ｂ１との組合せが、適切な印刷画質を得るうえで適さない場合には、選択肢Ａ１が選択されたときに他の設定項目の選択肢Ｂ１が無効化（非表示またはグレーアウト）されるようになっている。例えば印刷品質の設定項目で、印刷品質より印刷速度を優先する「ドラフト」が選択されているときは、「双方向印刷」の設定項目では、キャリッジの往復走査のうち一方向のみで印刷が行われ印刷速度の遅い「単方向印刷」が選択できないように、双方向印刷「オフ」の選択肢が無効化される。このように不適切な選択肢の組合せを回避できるように、禁則条件から、各設定項目を有効化すべきか無効化すべきかを判断して、設定不可能な組み合わせになる選択肢については無効化するようにユーザインターフェイスを制御するように構成されている。
【特許文献１】特開２００１−３１２４９１号公報
【特許文献２】特開２００４−５４５５号公報
【特許文献３】特開２００５−１６５７１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記２つの従来方法には、設定項目を後から追加・削除等のため、テーブルのフォーマット規則を後から変更した場合、ドライバ側のプログラムの変更が必要になり、フォーマット変更に弱いという問題があった。また、プリセットデータを読み込んで設定するドライバ側のロジックを、禁則データを処理するロジック等の他のロジックと共用することができなかった。
【０００９】
本発明は上記問題点に鑑みてなされたものであって、その目的は、設定項目の追加・削除等の変更をした場合にプリセットデータを抽出するプログラムの変更の必要がないユーザインターフェイス制御方法、ユーザインターフェイス制御装置及びプログラムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明は、複数の設定項目毎に選択肢を入力可能に表示手段に表示されるユーザインターフェイスを入力手段からの入力に基づき制御するユーザインターフェイス制御方法であって、前記複数の設定項目に設定すべき選択肢の組合せを示すプリセットデータを特定するために必要な条件を前記設定項目の各選択肢を論理変数として表現した論理式を記憶手段に記憶しておき、前記入力手段から前記プリセットデータに対応する選択情報の入力があると、該選択情報から定まる特定の選択肢が選択されている情報を前記論理式における該選択肢と対応する前記論理変数に適用するとともに当該適用後の論理式の演算を行って設定情報を取得する演算ステップと、前記演算ステップで取得した前記設定情報から定まる選択肢の組合せで前記設定項目を設定する処理ステップとを備えたことを要旨とする。
【００１１】
これによれば、入力手段から選択情報の入力があると、演算ステップにおいて、該選択情報から定まる特定の選択肢が選択されている情報を論理式における該選択肢と対応する論理変数に適用するとともに当該適用後の論理式の演算を行って設定情報を取得する。そして、処理ステップでは、演算ステップで取得した設定情報から定まる選択肢の組合せで設定項目を設定する。
【００１２】
換言すると、選択情報を入力することで、プリセットデータのうち特定の設定項目に係る特定の選択肢が定まり、この特定の選択肢が選択されている情報が論理式に適用（代入）される。そして、この適用後の論理式の演算結果として得られる設定情報から、選択情報に対応するプリセットデータのうち前記特定の選択肢が属する設定項目以外の残りの設定項目における選択肢の組合せが定まる。特定の選択肢の設定と併せ、残りの設定項目に係る選択肢の組合せが設定項目に設定されることで、プリセットデータが設定される。よって、この方法によれば、プリセットデータを抽出するための条件を表現した論理式のデータがあればよく、従来のように、プリセットデータを抽出するテーブルを持つ必要がない。よって、設定項目の追加・削除等の変更をした場合に、従来のテーブルを持つ構成で発生するフォーマット変更がないので、プリセットデータを抽出するプログラムの変更の必要がない。なお、選択情報は、特定の選択肢が選ばれていることが分かる情報であればよく、特定の設定項目で特定の選択肢をユーザが入力手段により選んだ情報であってもよい。また、特定の選択肢と対応付けられたプリセット番号などの情報であってもよい。
【００１３】
また、本発明のユーザインターフェイス制御方法では、前記論理式は、前記選択肢が選ばれている場合に真になり選ばれていない場合に偽になる論理変数をＸ１，…，Ｘｎ（ｎは２以上の整数）を全設定項目の全選択肢に対して定義するとともに、前記論理変数Ｘ１，…，Ｘｎの否定であって、選択肢が選ばれていない場合に真になり選ばれている場合に偽になる論理変数Ｘ１￣，…，Ｘｎ￣を定義し、前記論理変数を論理和・論理積により組み合せることによって、前記プリセットデータを特定する条件を表現した論理式であることが好ましい。
【００１４】
これによれば、選択情報から定まる選択肢に対応する論理変数（例えばＸａ，Ｘｂ，Ｘｃ）によって、（Ｘａ∧Ｘｂ∧Ｘｃ）というサブ論理式を組み込めば、選択情報からこの選択肢の組合せが選ばれている場合は（Ｘａ∧Ｘｂ∧Ｘｃ）＝真（例えば「１」）なり、選ばれていない選択肢の組合せの場合は、（Ｘａ∧Ｘｂ∧Ｘｃ）＝偽（例えば「−１」）になる。また、選択情報に対応するプリセットデータ本体部分のサブ論理式を（Ｘｄ￣∨Ｘｅ￣∨Ｘｆ￣∨g￣∨…）とすれば、これの禁則条件上の意味で選択肢ｄ，ｅ，ｆ，ｇ，…が選択される必要があるとなり、プリセットデータの選択肢の組合せを表現したものになる。そして、（（Ｘａ∧Ｘｂ∧Ｘｃ）∨（Ｘｄ￣∨Ｘｅ￣∨Ｘｆ￣∨Ｘg￣∨…））を１つの論理式単位とし、選択情報の種類ごとの論理式単位を論理和で結合することで、例えば禁則条件の論理式を構築することが可能になる。もちろん、禁則条件でなく、設定を許可する条件とすることも可能である。その場合は、論理式単位を（Ｘａ∧Ｘｂ∧Ｘｃ）∨（Ｘｄ∧Ｘｅ∧Ｘｆ∧Ｘg∨…）の形式とし、選択情報の種類ごとの論理式単位を論理和で結合することで、例えば許可の条件の論理式を構築することが可能になる。このように、論理変数Ｘ１，Ｘ２，…，Ｘｎ及び論理変数Ｘ１￣，Ｘ２￣，…，Ｘｎ￣を定義することで、プリセットデータを特定可能な論理式を構築可能になる。
【００１５】
また、本発明のユーザインターフェイス制御方法では、前記複数の設定項目は、前記選択情報として選択肢が選ばれるプリセット選択用の設定項目と、前記選択情報として選ばれた選択肢に対応する論理変数の真・偽が前記論理式中の対応する論理変数に適用された当該論理式の演算結果から選択肢が特定されるプリセットデータ本体部分となる設定項目とに分かれ、プリセット選択用の設定項目の各選択肢に対応する論理変数が論理積で結合されて第１サブ論理式（Ｘａ１∧…∧Ｘａｎ）（ｎは自然数）を構成し、前記プリセットデータ本体部分となる設定項目の各選択肢に対応する論理変数の否定の論理和で結合されて第２サブ論理式（Ｘｂ１￣∨Ｘｂ２￣∨…∨Ｘｂｎ￣）（ｎは自然数）を構成し、１つのプリセットデータを表現する（Ｘａ１∧…∧Ｘａｎ）∨（Ｘｂ１￣∨Ｘｂ２￣∨…∨Ｘｂｎ￣）を一つの論理式単位として、各プリセットデータを表現する複数の論理式単位が論理和で結合されることで前記論理式は構成されていることが好ましい。
【００１６】
これによれば、選択情報として、特定の設定項目の選択肢がそれぞれ選択されると、論理式のうち、選択情報となる第１サブ論理式の部分は、（Ｘａ１∧…∧Ｘａｎ）＝１（真）、これ以外で選択肢が１つでも選ばれていない第１サブ論理式の部分は、（Ｘａ１∧…∧Ｘａｎ）＝−１（偽）となる。よって、論理式中にある複数の論理式単位は、選択情報となる第１サブ論理式の部分は、（Ｘａ１∧…∧Ｘａｎ）＝１（真）を含むものは残り、それ以外の（Ｘａ１∧…∧Ｘａｎ）＝−１を含むものは消える。つまり、（Ｘａ１∧…∧Ｘａｎ）の部分がスイッチとして機能する。そして、スイッチとして機能する第１サブ論理式を含む論理式単位における、（Ｘｂ１￣∨Ｘｂ２￣∨…∨Ｘｂｎ￣）が演算結果となる。（Ｘｂ１￣∨Ｘｂ２￣∨…∨Ｘｂｎ￣）は、これらの論理変数に対応する選択肢以外が選ばれることを禁止することを意味し、換言すれば、これらの選択肢が必ず選ばれる必要があることを意味する。これにより１つの選択肢の組合せが特定され、プリセットデータ本体部分の選択肢の組合せが特定されることになる。なお、論理式単位（Ｘａ１∧…∧Ｘａｎ）∨（Ｘｂ１￣∨Ｘｂ２￣∨…∨Ｘｂｎ￣）は、論理式構造を示すもので、Ｘａ１，Ｘａｎや、Ｘｂ１￣，Ｘｂ２￣，…Ｘｂｎ￣の論理変数は、論理式単位毎に適宜なものが配置される。
【００１７】
また、本発明のユーザインターフェイス制御方法では、前記ユーザインターフェイスは、前記選択情報を入力して前記設定項目の選択肢を自動設定するプリセット設定モードと、前記設定項目の選択肢を前記入力手段の入力に基づき選択して設定を行う通常設定モードとに切り換え可能に制御され、前記通常設定モードで前記設定項目の選択肢が選択されたときに該選択肢との組合せが禁止されるべき他の前記設定項目の選択肢を選択不能に無効化するために該無効化させるべき選択肢を特定する条件を表現した第２論理式と、プリセット用の前記論理式である第１論理式とを論理和で結合した論理式が前記記憶手段に記憶されていることが好ましい。
【００１８】
これによれば、プリセットデータを表現する第１論理式と、選択を禁止すべき選択肢を特定する条件を表現した第２論理式とを論理和で組み合わせることで一体化された論理式が用いられる。よって、通常設定モードでの処理とプリセット設定モードでの処理で、データの読出し・演算・設定を行うロジックを共通化でき、プログラムが共用可能となる。
【００１９】
本発明は、複数の設定項目毎に選択肢を入力可能に表示手段に表示されるユーザインターフェイスを入力手段からの入力に基づき制御するユーザインターフェイス制御方法であって、前記ユーザインターフェイスは複数の設定モードに切り換え可能に制御され、前記各設定モードに応じた第１論理式及び第２論理式を含むとともに、該各設定モードのうち一の前記設定モードが選ばれている旨のモード情報が適用されると、該第１論理式及び第２論理式のうち該選択中の設定モードに応じた一の論理式が有効になり非選択中の他の設定モードに応じた他の論理式が無効になる論理演算がなされる論理式のデータを記憶手段に記憶しておき、前記入力手段から設定に係る入力情報を入力すると、前記入力情報と前記モード情報とを前記論理式に適用して該論理式の演算を行うことで設定情報を取得する演算ステップと、前記演算ステップで取得した前記設定情報に基づいて選択中の設定モードに応じた所定の処理を行う処理ステップとを備えたことを要旨とする。
【００２０】
これによれば、複数のうち一の設定モードで入力手段から設定に係る入力情報を入力すると、演算ステップにおいて、設定モードが選ばれている旨のモード情報と入力情報とを論理式に適用して該論理式の演算を行うことで設定情報が取得される。この論理式の演算においては、設定モードが選ばれている旨のモード情報が適用されると、選択中の設定モードに応じたサブ論理式が有効になり非選択中のサブ論理式が無効になる論理演算がなされ、非選択中のサブ論理式が無効となることで、そのときの設定モードに対応するサブ論理式だけに基づき演算した場合と同じ演算結果（設定情報）が得られる。処理ステップでは、演算ステップで取得した設定情報に基づいて選択中の設定モードに応じた所定の処理が行われる。よって、複数の設定モードがあっても、設定モード毎の演算を共通の論理式を用いて行うことができるので、例えば設定モード間で共通の演算プログラムを使用することが可能になり、必要なソフトウェア資源を少なくできる。なお、設定情報とは、設定項目に所定の選択肢を設定する狭義の設定情報と、設定項目に設定可能な又は設定不可能な選択肢を特定する禁則情報を含む。
【００２１】
本発明は、複数の設定項目毎に選択肢を入力可能に表示手段に表示されるユーザインターフェイスを入力手段からの入力に基づき制御するユーザインターフェイス制御方法であって、前記ユーザインターフェイスは複数の設定モードに切り換え可能であり、前記ユーザインターフェイスが第１設定モードにあるときに入力される第１入力情報に基づき設定項目毎に設定すべき選択肢の組合せを定めるプリセット情報を取得可能な第１論理式と、前記ユーザインターフェイスが第２設定モードにあるときに入力される第２入力情報に基づき設定項目毎の選択肢の有効又は無効を判定可能な禁則情報を取得可能な第２論理式とを含むとともに、前記第１設定モード及び第２設定モードのうち一の設定モードが選ばれている旨を示すモード情報が適用されることにより該第１論理式及び第２論理式のうち選択中の設定モードに対応する一方が有効になり非選択中の設定モードに対応する他方が無効になる論理演算がなされる論理式のデータを記憶手段に記憶しておき、前記第１入力情報を入力した場合は、該第１設定モードが選ばれている旨のモード情報と前記第１入力情報とを前記論理式に適用して該論理式の演算を行うことでプリセット情報を取得し、前記第２入力情報を入力した場合は、該第２設定モードが選ばれている旨のモード情報と前記第２入力情報とを前記論理式に適用して該論理式の演算を行うことで禁則情報を取得する演算ステップと、前記演算ステップで取得した前記設定情報又は前記禁則情報に基づいて選択中の設定モードに応じた所定の処理を行う処理ステップとを備えたことを要旨とする。
【００２２】
これによれば、第１設定モードで第１入力情報を入力した場合は、演算ステップにおいて、第１設定モードが選ばれている旨のモード情報と第１入力情報とを論理式に適用して該論理式の演算を行うことでプリセット情報を取得する。そして、処理ステップにおいて、その取得したプリセット情報に基づいて第１設定モードに応じた所定の処理を行う。この場合、所定の処理として、例えばプリセット情報から決まる選択肢の組合せを設定項目に設定する設定処理が行われる。また、第２設定モードで第２入力情報を入力した場合は、演算ステップにおいて、第２設定モードが選ばれている旨のモード情報と第２入力情報とを論理式に適用して該論理式の演算を行うことで禁則情報を取得する。そして、処理ステップにおいて、その取得した禁則情報に基づいて第２設定モードに応じた所定の処理を行う。この場合、所定の処理として、例えば禁則情報から決まる選択肢を選択不能状態に無効化する無効化処理や、第２入力情報に含まれる選択肢の設定が不可能である旨を報知する処理などが行われる。
【００２３】
また、本発明のユーザインターフェイス制御方法では、前記論理式は、前記選択肢及び前記モード情報のそれぞれに対応する論理変数を論理演算子で結合して表現されていることが好ましい。
【００２４】
これによれば、論理式は選択肢及びモード情報のそれぞれに対応する論理変数を用いているので、モード情報の選択状態を表す状態値に応じた選択肢の組合せを特定することが可能である。
【００２５】
また、本発明のユーザインターフェイス制御方法では、前記論理式は、選ばれている場合に真になり選ばれていない場合に偽になる論理変数Ｘ１，…，Ｘｎ（ｎは２以上の整数）と、前記論理変数Ｘ１，…，Ｘｎの否定であって、選ばれていない場合に真になり選ばれている場合に偽になる論理変数Ｘ１￣，…，Ｘｎ￣とを定義し、当該論理変数を論理和・論理積により組み合せた論理式であることが好ましい。
【００２６】
これによれば、論理変数Ｘ１，…，Ｘｎと、これらの否定である論理変数Ｘ１￣，…，Ｘｎ￣とを用いているので、論理式が表現できる条件の幅が広がる。例えば、選択を禁止する禁則条件でも、選択を許可する条件でも対応でき、無効化すべき選択肢が同一設定項目内に複数存在する場合にも対応可能である。
【００２７】
また、本発明のユーザインターフェイス制御方法では、前記論理式は、前記設定モードに係る論理変数をＸｐとし、（（第１論理式）∧Ｘｐ）∨（（第２論理式）∧Ｘｐ￣）として表され、前記Ｘｐは前記設定モードが選ばれている場合に真になり選ばれていない場合に偽となる論理変数であり、前記Ｘｐ￣は前記設定モードが選ばれていない場合に真になり選ばれている場合に偽になる論理変数であることが好ましい。
【００２８】
これによれば、設定モードが選ばれている場合に論理変数Ｘｐが真（例えば「１」）、論理変数Ｘｐ￣が偽（例えば「−１」）になるので、（（第１論理式）∧Ｘｐ）∨（（第２論理式）∧Ｘｐ￣）＝（第１論理式）になる。また、設定モードが選ばれていない場合に論理変数Ｘｐが偽（例えば「−１」）、論理変数Ｘｐ￣が真（例えば「１」）になるので、（（第１論理式）∧Ｘｐ）∨（（第２論理式）∧Ｘｐ￣）＝（第２論理式）になる。論理変数Ｘｐが一種のスイッチの機能を果たすので、第１論理式及び第２論理式のうち設定モードに応じた一方を選択可能となる。このようにモード情報が、選択された設定モードに応じた論理式を選択するスイッチ機能を有するので、複数の設定モードがあっても、それぞれの論理式及びその演算等に用いられる演算プログラムを共通化でき、ソフトウェア資源の節約に寄与する。
【００２９】
また、本発明のユーザインターフェイス制御方法では、前記論理式は、前記論理変数及び論理演算子が数値に変換された数値列からなることを特徴とするユーザインターフェイス制御方法。
【００３０】
これによれば、演算ステップにおける演算の対象が、情報（状態値）適用後の数値列であるので、論理式の解析処理などが不要になり、例えばコンピュータによる演算処理を簡単に済ませられる。
【００３１】
また、本発明のユーザインターフェイス制御方法では、前記演算ステップにおける前記論理式への情報の適用は、該情報に対応する論理変数の状態値が前記数値列中の対応する数値に置き換えられることが好ましい。
【００３２】
これによれば、演算ステップにおける情報の論理式への適用が、状態値の数値列中の対応する数値への置き換えによるので、状態値適用後も数値列に保持される。よって演算時に論理式の解析処理などが不要になり、例えばコンピュータによる演算処理を簡単に済ませられる。
【００３３】
また、本発明のユーザインターフェイス制御方法では、前記数値列は、前記論理式が逆ポーランド記法に並び替えられた順番で数値が配列された数値列であることが好ましい。
これによれば、数値列の数値は演算に順番に並んでいるので、数値を順番に参照していけば数値列の演算を行うことができる。よって、例えばコンピュータによる数値列の演算処理が簡単になる。
【００３４】
また、本発明のユーザインターフェイス制御方法では、前記演算ステップでは、前記数値列の演算をスタック計算で行うことが好ましい。
これによれば、演算ステップでは、数値列の演算をスタック計算で行う。数値列の並び順に従って数値を参照して演算を進めればよいので、コンピュータによる演算処理を簡単に済ませられる。
【００３５】
また、本発明のユーザインターフェイス制御方法では、前記演算ステップでは、前記数値列を演算の際に格納する作業用メモリ上で該数値列の数値を順次参照するとともに、数値の参照が終わったメモリ領域をスタック領域として用い、参照数値が論理変数に対応するものである場合は該参照数値を前記スタック領域にプッシュし、参照数値が論理演算子に対応するものである場合は前記スタック領域から複数の数値をポップして当該複数の数値に該論理演算子で規定される演算を施してその演算結果を前記スタック領域にプッシュするスタック操作を行うことで、前記数値列の演算を行うことが好ましい。
【００３６】
これによれば、作業用メモリに格納した数値列の数値を順次参照するとともに、数値の参照が終わったメモリ領域をスタック領域として活用する。参照数値が論理変数に割り当てられた数値である場合は、該参照数値をスタック領域にプッシュし、参照数値が論理演算子に割り当て得られた数値である場合はスタック領域から複数（２つ）の数値をポップして当該複数の数値に該論理演算子で規定される演算を施してその演算結果をスタック領域にプッシュする。このようなスタック操作を繰り返すことで数値列の演算は進められる。作業用メモリ上の数値参照の終わったメモリ領域をスタック領域に活用するので、スタック計算する場合に別途メモリ領域を用意する必要がない。
【００３７】
本発明は、複数の設定項目毎に選択肢を入力可能に表示手段に表示されるユーザインターフェイスを入力手段からの入力に基づき制御するユーザインターフェイス制御装置であって、前記複数の設定項目に設定すべき選択肢の組合せを示すプリセットデータを特定するために必要な条件を前記設定項目の各選択肢を論理変数として表現した論理式を記憶する記憶手段と、前記入力手段から前記プリセットデータに対応する選択情報の入力があると、該選択情報から定まる特定の選択肢が選択されている情報を前記論理式における該選択肢と対応する前記論理変数に適用するとともに当該適用後の論理式の演算を行って設定情報を取得する演算手段と、前記演算手段が取得した前記設定情報から定まる選択肢の組合せで前記設定項目を設定する処理手段とを備えたことを要旨とする。
【００３８】
本発明は、複数の設定項目毎に選択肢を入力可能に表示手段に表示されるユーザインターフェイスを入力手段からの入力に基づき制御するユーザインターフェイス制御装置であって、前記入力手段からの入力も基づき前記ユーザインターフェイスの設定モードを切り換えるモード切換手段と、前記各設定モードに応じた第１論理式及び第２論理式を含むとともに、該各設定モードのうち一の前記設定モードが選ばれている旨のモード情報が適用されると、該第１論理式及び第２論理式のうち該選択中の設定モードに応じた一の論理式が有効になり非選択中の他の設定モードに応じた他の論理式が無効になる論理演算がなされる論理式のデータを記憶する記憶手段と、前記入力手段から設定に係る入力情報を入力すると、前記入力情報と前記モード情報とを前記論理式に適用して該論理式の演算を行うことで設定情報を取得する演算手段と、前記演算ステップで取得した前記設定情報に基づいて選択中の設定モードに応じた所定の処理を行う処理手段とを備えたことを要旨とする。
【００３９】
これによれば、ユーザインターフェイスの設定モードは入力手段からの入力に基づき、モード切換手段により切り換えられる。入力手段から設定に係る入力情報を入力すると、演算手段は、記憶手段から論理式のデータを読み出すとともに、設定モードが選ばれている旨のモード情報と入力情報とを論理式に適用して該論理式の演算を行って設定情報を取得する。そして、処理手段により、演算手段が取得した設定情報に基づいて選択中の設定モードに応じた所定の処理が行われる。演算手段による演算時には、設定モードが選ばれている旨のモード情報が論理式に適用されることで、論理式の論理演算において該選択中の設定モードに応じた論理式が有効になり非選択中の設定モードに応じた論理式が無効になる。つまり、論理式の論理演算の過程で、非選択中の設定モードに応じた論理式が論理式中が消去され、選択中の設定モードに応じた論理式が残り、入力情報に基づき選択中の設定モードに応じた論理式の演算が行われる。よって、設定モード毎の各演算に、共通の論理式が使用されることから、その演算ロジックを共通化できる。よって、設定モード毎に個別に演算ロジックを備える必要がなく、例えばユーザインターフェイス制御処理に必要なソフトウェア資源を少なく済ませられる。
【００４０】
また、本発明をコンピュータが実行するプログラムとして実現することも可能である。そして、本発明は、複数の設定項目毎に選択肢を入力可能に表示手段に表示されるユーザインターフェイスを入力手段からの入力に基づき制御する処理をコンピュータが実行するためのユーザインターフェイス制御用プログラムであって、前記複数の設定項目に設定すべき選択肢の組合せを示すプリセットデータを特定するために必要な条件を前記設定項目の各選択肢を論理変数として表現した論理式を記憶手段に記憶しておき、コンピュータが、前記入力手段から前記プリセットデータに対応する選択情報の入力があると、該選択情報から定まる特定の選択肢が選択されている情報を前記論理式における該選択肢と対応する前記論理変数に適用するとともに当該適用後の論理式の演算を行って設定情報を取得する演算ステップと、前記演算ステップで取得した前記設定情報から定まる選択肢の組合せで前記設定項目を設定する処理ステップとを実行するためのプログラムであることを要旨とする。このプログラムをコンピュータに実行させることにより、本発明の方法及び装置を実現可能であり、上記方法及び装置の発明と同様の効果を得ることができる。
【００４１】
本発明は、複数の設定項目毎に選択肢を入力可能に表示手段に表示されるユーザインターフェイスを入力手段からの入力に基づき制御する処理をコンピュータが実行するユーザインターフェイス制御用プログラムであって、前記ユーザインターフェイスは複数の設定モードに切り換え可能に制御され、前記各設定モードに応じた第１論理式及び第２論理式を含むとともに、該各設定モードのうち一の前記設定モードが選ばれている旨のモード情報が適用されると、該第１論理式及び第２論理式のうち該選択中の設定モードに応じた一の論理式が有効になり非選択中の他の設定モードに応じた他の論理式が無効になる論理演算がなされる論理式のデータが記憶手段に記憶されており、コンピュータが、前記入力手段から設定に係る入力情報を入力すると、前記入力情報と前記モード情報とを前記論理式に適用して該論理式の演算を行うことで設定情報を取得する演算ステップと、前記演算ステップで取得した前記設定情報に基づいて選択中の設定モードに応じた所定の処理を行う処理ステップとを実行するためのプログラムであることを要旨とする。このプログラムをコンピュータに実行させることにより、本発明の方法及び装置を実現可能であり、上記方法及び装置の発明と同様の効果を得ることができる。
【発明を実施するための最良の形態】
【００４２】
以下、本発明を具体化した一実施形態を、図１〜図１２に基づいて説明する。
図１は、印刷システムのハードウェア構成を示すブロック図である。印刷システムは、パーソナルコンピュータ等からなるコンピュータ１１と、コンピュータ１１のインターフェイス（以下「Ｉ／Ｆ１７」）に接続されたプリンタ２１とから構成される。プリンタ２１は例えばインクジェット式プリンタである。
【００４３】
図１に示すように、コンピュータ１１は、ＣＰＵ１２、ＲＯＭ１３、ＲＡＭ１４、ＨＤＤ（Ｈａｒｄ Ｄｉｓｋ Ｄｒｉｖｅ）１５、ビデオ回路１６、Ｉ／Ｆ１７、バス１８、表示装置１９および入力装置２０によって構成されている。
【００４４】
ここで、ＣＰＵ１２は、ＲＯＭ１３やＨＤＤ１５に格納されているプログラムに従って各種演算処理を実行するとともに、装置の各部を制御する制御部である。
ＲＯＭ１３は、ＣＰＵ１２が実行する基本的なプログラムやデータを格納しているメモリである。ＲＡＭ１４は、ＣＰＵ１２が実行途中のプログラムや、演算途中のデータ等を一時的に格納するメモリである。
【００４５】
ＨＤＤ１５は、ＣＰＵ１２からの要求に応じて、ハードディスクに記憶されているデータやプログラムを読み出すとともに、ＣＰＵ１２の演算処理の結果として発生したデータを前述したハードディスクに記憶する記憶装置である。
【００４６】
ビデオ回路１６は、ＣＰＵ１２から供給された描画命令に応じて描画処理を実行し、得られた画像データを映像信号に変換して表示装置１９に出力する回路である。
Ｉ／Ｆ１７は、入力装置２０から出力された信号の表現形式を適宜変換するとともに、プリンタ２１に対して印刷データを出力する回路である。
【００４７】
バス１８は、ＣＰＵ１２、ＲＯＭ１３、ＲＡＭ１４、ＨＤＤ１５、ビデオ回路１６およびＩ／Ｆ１７を相互に接続し、これらの間でデータの授受を可能とする信号線である。
表示装置１９は、例えば、ＬＣＤ（Ｌｉｑｕｉｄ Ｃｒｙｓｔａｌ Ｄｉｓｐｌａｙ）モニタやＣＲＴ（Ｃａｔｈｏｄｅ Ｒａｙ Ｔｕｂｅ）モニタによって構成され、ビデオ回路１６から出力された映像信号に応じた画像を表示する装置である。
【００４８】
入力装置２０は、例えば、キーボードおよびマウスによって構成されており、ユーザの操作に応じた信号を生成して、Ｉ／Ｆ１７に供給する装置である。
以下、図２に示す各機能部分について個々に説明する。
【００４９】
図２に示すように、コンピュータ１１には、アプリケーションプログラム、ビデオドライバプログラムおよびプリンタドライバプログラム等が実装されており、これらが所定のオペレーティングシステム（ＯＳ）の下で動作している。コンピュータ１１に内蔵されたＣＰＵ１２がＨＤＤ１５等に格納されている前述の各種プログラムを実行することにより、アプリケーション部２３、ビデオドライバ２４およびプリンタドライバ２５が構築されている。
【００５０】
プリンタドライバ２５は、ＵＩ制御装置３０および印刷部３８を備えている。ＵＩ制御装置３０は、記憶部３１、データロード部３２、テーブル作成部３３、演算部３４、ＵＩ制御部３５、印刷部３８を備えている。なお、これらの機能部分は、コンピュータ１１のハードウェアと、ＨＤＤ１５に記憶されているソフトウエアとが協働することにより実現される。
【００５１】
アプリケーション部２３は、例えば画像編集などを行う機能を有し、ディジタルカメラ等から取り込まれた画像あるいはユーザによって描画された画像の加工処理が可能である。アプリケーション部２３で扱う画像は、ビデオドライバ２４に出力されることで表示装置１９の画面に表示される。アプリケーション部２３は、入力装置２０が操作されて印刷実行の指令を受け付けると、その印刷対象の画像データをプリンタドライバ２５に出力する。
【００５２】
ビデオドライバ２４は、ビデオ回路１６を駆動するためのプログラムであり、例えばアプリケーション部２３から供給された画像データに対してガンマ処理やホワイトバランスの調整等を行った後、映像信号を生成して表示装置１９に供給して画像を表示させる。また、プリンタドライバ２５はＵＩ２６の画像データをビデオドライバ２４を介して表示装置１９の画面に表示させる。
【００５３】
プリンタドライバ２５は、表示装置１９の画面に、ユーザが印刷条件を入力設定するためのユーザインターフェイス（以下、「ＵＩ２６」という）の表示制御を行うユーザインターフェイス制御装置（以下、「ＵＩ制御装置３０」という）を備えている。ＵＩ制御装置３０は、ユーザが入力装置２０を操作してアプリケーション部２３に対して例えば印刷実行指令または印刷設定表示指令などの印刷に係る指令を入力すると、その指令を受け付けたプリンタドライバ２５により起動される。
【００５４】
ＵＩ制御装置３０は、用紙サイズ、メディア、カラーモードなどの設定項目が選択可能に配置された設定画面を有するＵＩ２６を表示させる。ＵＩ２６には印刷条件を構成する各種設定項目毎に、例えばコンボボックス、ラジオボタン、チェックボックス等の選択機能部のうちの一つが対応付けて配置されており、ユーザは、ＵＩ２６上に各設定項目毎の選択機能部を必要に応じて選択操作して選択肢を変更することで所望の印刷条件を設定する。本実施形態では、ＵＩ２６には、図１２（ａ）に示す通常設定モードの設定画面（以下、「通常設定画面２６Ａ」という）と、図１１（ａ）に示すプリセット設定モードの設定画面（以下、「プリセット設定画面２６Ｂ」という）とが用意されている。
【００５５】
図１１は、プリセットに係る各種設定画面を示すもので、同図（ａ）がプリセット設定画面、同図（ｂ）が詳細設定画面を示す。また、図１２は通常設定画面を示す。図１１に示すプリセット設定画面２６Ｂには、主要な設定項目「カラーモード」、「メディア」、「印刷品質」の３つが用意されている。各設定項目の選択肢として、カラーモードにはカラー／モノクロが用意され、メディアには普通紙／ＯＨＰ紙／マット紙／光沢紙、…等が用意され、さらに印刷品質にはドラフト／テキストが用意されている。これら３種類の設定項目の選択肢が選択された状態でＯＫボタン２９を操作すると、詳細設定画面２６Ｃに用意された各設定項目の選択肢の中から、前記３種類の設定項目の選択肢の組合せに応じた適切な選択肢が自動選択されるように構成されている。なお、詳細設定画面２６Ｃは、図１２に示す通常設定画面２６Ａにおいて詳細設定ボタン（図示省略）を操作すると、表示される設定画面であり、プリセット設定画面２６Ｂで設定を行うときは自動設定されるため表示されることはない。
【００５６】
図１１（ｂ）に示す詳細設定画面２６Ｃには、設定項目として、例えば「設定項目１」「設定項目２」「設定項目３」「設定項目４」の４つが用意されている。本例では、「設定項目１」が「双方向印刷」のオン／オフを選択する項目であり、「設定項目２」が「マイクロウィーブ」のオン／オフを選択する項目となっている。印刷実行指令時または印刷設定表示指令時に起動されたＵＩ制御装置３０は、通常設定画面２６Ａをまず表示し、この通常設定画面２６Ａでプリセットボタン（図示せず）が操作された入力があると、図１１（ａ）に示すプリセット設定画面２６Ｂを表示するようになっている。なお、プリセット設定画面２６Ｂで設定可能な設定項目の数や設定内容は適宜変更可能であり、また詳細設定画面２６Ｃで設定可能な設定項目の数や設定内容も適宜変更可能である。また、設定項目が多い場合は詳細設定画面が複数あったり、詳細設定画面の設定項目の一つの選択肢の下位にさらに詳細な詳細設定画面が用意された階層構造になっていてもよい。
【００５７】
図１２に示す通常設定画面２６Ａは、例えば設定項目として、「用紙サイズ」、「カラーモード」、「メディア」が用意されており、前記詳細設定ボタンを操作すると表示される図１１（ｂ）に示す詳細設定画面２６Ｃで他の設定項目の選択肢が選択可能となっている。この場合、設定項目間で、一緒に設定できない選択肢の組合せがある。例えば設定項目「メディア」において写真印刷時に設定される「光沢紙」と、設定項目「印刷品質」における写真印刷に適さない「ドラフト」との組合せが、それに該当する。選択肢の組合せとして不適切な組合せについては予め設定できないように禁止しておくことで、ユーザが不適切な印刷条件で印刷してしまうことを防止するようにしている。選択が禁止された選択肢の組合せで印刷条件が設定されることを防止する方法として、選択禁止の選択肢をグレーアウト状態してユーザによる選択を不能にする方法がとられる。また、通常設定画面２６Ａには、設定を確定するときに操作されるＯＫボタン２７が用意されている。なお、選択が禁止された選択肢を選択不能状態に無効化する方法は、選択肢の非表示であってもよい。
【００５８】
印刷条件を設定するためにＵＩ２６上で選択できる設定項目は、詳細設定画面等の下位の設定画面で設定されるものも含めると、プリンタ２１の機種によって異なるものの、例えば１０〜２０程度ある。各設定項目毎に２〜１０程度用意されている選択肢を設定項目毎に１つずつ選択して印刷条件を設定する。
【００５９】
図２に示すＵＩ制御装置３０は、通常設定画面２６Ａおよび詳細設定画面２６Ｃにおいて選択肢が変更された入力を得ると、その他の設定項目の選択肢のうち組合せが禁止された選択肢を判定して、禁止された選択肢が存在する場合はその選択肢を選択不能な状態に無効化する処理を行う。
【００６０】
ＵＩ制御装置３０は、プリセット設定画面２６ＢでＯＫボタン２９が操作された入力を得たときにプリセットされるべき選択肢を判定する判定処理、および通常設定画面２６Ａで選択肢が変更された入力を得たときに、選択が禁止されるべき選択肢を判定する判定処理を行う。これらの判定処理は、共通の論理式を数値化した禁則データ（数値列）に基づき行う構成となっている。ＵＩ制御装置３０は、通常設定画面２６Ａまたはプリセット設定画面２６Ｂで前記判定処理開始のトリガとなるＵＩ制御開始の入力を得ると、そのときのモードで選択されている各選択肢の状態値を数値列に代入し、その代入後の数値列を演算して得られた演算結果からプリセットデータまたは禁則情報を取得する。そして、取得した禁則情報に基づいてプリセット設定モードではプリセットされるべき選択肢を特定し、一方、通常設定モードでは選択不能にされるべき選択肢を特定する。
【００６１】
本実施形態では、図２に示すプリンタメーカー側のコンピュータ５０で作成された論理式５２を数値に変換した数値列５５が、プリンタドライバプログラムと共にＣＤ−ＲＯＭ４１に記憶され、このＣＤ−ＲＯＭ４１がプリンタ２１に同梱されてユーザに提供される。そして、ＣＤ−ＲＯＭ４１からユーザのコンピュータ１１にプリンタドライバプログラム及び各種データがインストールされることにより、ＵＩ制御装置３０を有するプリンタドライバ２５がコンピュータ１１に実装される。
【００６２】
ここで、コンピュータ５０で行われる処理について説明する。コンピュータ５０には、開発者がプリンタ用のＵＩ制御装置３０を開発するためのツールが実装されており、このツールの一部の機能として数値列作成部５１が備えられている。開発用のツールはソフトウェアにより構成され、コンピュータ５０がそのソフトウェアを実行することで、数値列作成部５１はその一部の機能として構築されている。数値列作成部５１は、開発者が入力手段（図示せず）を操作することで与えられた禁則情報に基づいて論理式５２を作成するとともに該論理式５２を所定の規則に従って数値列５５に変換する。論理式５２は、複数の設定項目間で選択が禁止されるべき組合せを定める禁則条件を、選択肢を論理変数として表現された論理式であり、前述のように、プリセットされるべき選択肢の特定と、選択が禁止されるべき選択肢の特定とに共用される。この論理式５２の詳細については後述する。
【００６３】
次に、ＵＩ制御装置３０の構成部分について説明する。
図２に示す記憶部３１は、ＨＤＤ１５の所定記憶領域またはメモリにより構成されたもので、ＵＩ制御処理に必要なデータが格納されている。記憶部３１には、前述のとおり、ＣＤ−ＲＯＭ４１から読み込まれた数値列５５のデータが記憶されている。また、記憶部３１には、ＵＩ２６上の選択肢毎に選択／非選択のどちらの状態にあるかその選択状態の状態値をフラグで管理する所定記憶領域が用意されている。初期状態では各状態値（フラグ）はデフォルトの値が設定されており、入力装置２０の操作によって選択肢の選択状態が変更される度に、フラグの値が変更されるように構成されている。
【００６４】
データロード部３２は、入力装置２０からＵＩ制御処理開始のトリガとなる前記入力があると、そのときのモードに応じた設定画面における各選択肢の選択状態を示す状態値（フラグ）データと、数値列５５のデータとを、記憶部３１からロードする。本実施形態では、選択肢の選択状態が変更された操作の入力が、ＵＩ制御処理開始のトリガとなる。
【００６５】
テーブル作成部３３は、データロード部３２がロードした数値列５５のデータと、選択肢毎の状態値とに基づきテーブル４４（図３に示す）を作成する。
演算部３４は、テーブル作成部３３が作成したテーブル４４を参照して、数値列５５を構成する多数の数値のうち各選択肢の論理変数に割り当てられた数値を、対応する選択肢の状態値に置き換える処理を行う。つまり、数値列５５で表現された論理式の論理変数に状態値を代入する処理を行う。そして、状態値適用後の数値列を計算する所定の演算処理を行う。
【００６６】
ＵＩ制御部３５は、プリセット設定モードの場合は、演算部３４の演算結果から特定されるプリセットされるべき選択肢を設定する。つまり、記憶部３１の所定記憶領域に管理されている各選択肢の状態値を、プリセットされるべき選択肢が選択されている状態に強制的に切り換える。また、通常設定モードの際は、演算部３４の演算結果から、設定不可能な選択肢を判定し、設定不可能な選択肢が存在した場合は、通常設定画面２６Ａおよび詳細設定画面２６Ｃにおいてその設定不可能な選択肢を選択不能なグレーアウト状態に切り換える。
【００６７】
印刷部３８は、ＵＩ２６上のＯＫボタン２７，２９が操作された入力が与えられると、記憶部３１から状態値のデータを読み出して印刷設定情報を取得するとともに、印刷対象の画像データに解像度変換処理、色変換処理、ハーフトーン処理およびラスタライズ処理を施して生成した印刷データをプリンタ２１に出力する。印刷データは、プリンタ２１が解釈できる形式のデータであって、前記画素データと、各種のコマンドデータとを有するデータである。
【００６８】
解像度変換処理は、印刷対象となる例えばＲＧＢ画像の解像度を、設定項目「印刷品質」の選択肢から決まる印刷解像度に変換する処理である。また、この処理を行う際は、設定項目「用紙サイズ」の選択肢から決まる用紙サイズに応じた画像サイズに変倍する変倍処理やトリミング処理等が必要に応じて行われる。色変換処理は、ＲＧＢ表色系で表現されたＲＧＢ画像データを、色変換テーブル（図示せず）を参照して、ＣＭＹＫ表色系の画像データに変換する処理である。ハーフトーン処理は、多段階の階調値を有するＣＭＹＫ画素データを、プリンタ２１が表現可能な、少段階の階調値を有するＣＭＹＫ画素データに変換する処理である。ラスタライズ処理は、前記ハーフトーン処理がなされたＣＭＹＫ画像データを、プリンタ２１に転送すべきデータ順に変更する処理である。ラスタライズ処理されたデータは、コマンドが付された印刷データとしてプリンタ２１に出力される。
【００６９】
次に、数値列５５について説明する。数値列５５は、プリンタメーカー側のコンピュータ５０で作成されるもので、その作成手順を以下に説明する。図３は、プリセットデータを論理変数に変換する処理の流れを説明するためのテーブル図を示す。同図（ａ）はプリセットテーブル、同図（ｂ）は論理変数変換テーブル、同図（ｃ）は論理変数変換後のプリセットテーブルである。
【００７０】
同図（ａ）に示すプリセットテーブル６１は、主要な設定項目「カラーモード」「メディア」「印刷品質」の組合せ毎にプリセット番号が付され、それぞれにプリセットデータが設定されている。プリセットデータは、主要な設定項目以外の複数の設定項目に設定されるべき選択肢の組合せが設定されたデータ列である。ここで、本実施形態では、設定項目１は、双方向印刷のオン／オフ設定であり、設定項目２はマイクロウィーブのオン／オフ設定であるので、これら設定項目１および設定項目２についてはオンまたはオフが設定されている。また、設定項目３および設定項目４など３つ以上の選択肢を有する設定項目については、各設定項目中のいずれか１つの選択肢が設定されている。なお、プリセット番号は説明の便宜上付したもので無くてもよい。
【００７１】
図３（ｂ）に示す論理変数変換テーブル６２は、設定項目毎の選択肢を論理変数に変換するためのテーブルであり、選択肢の各々に対応する論理変数が設定されている。例えば設定項目「カラーモード」では、選択肢「カラー」に論理変数「Ｘ１」、選択肢「モノクロ」に論理変数「Ｘ２」が設定されている。以下、他の設定項目の選択肢の各々に、普通紙「Ｘ３」、ＯＨＰシート「Ｘ４」、ドラフト「Ｘ５」、テキスト「Ｘ６」、双方向印刷オン「Ｘ７」、双方向印刷オフ「Ｘ８」、マイクロウィーブオン「Ｘ９」、マイクロウィーブオフ「Ｘ１０」、…が設定されている。なお、メディアには普通紙とＯＨＰシート以外にも複数の選択肢があり、実際にはすべての選択肢に論理変数が設定されているが、図３（ｂ）では、説明の便宜上、普通紙とＯＨＰシートだけに論理変数を設定した例で示している。
【００７２】
ここで、設定項目について説明する。設定項目「カラーモード」はカラー印刷かモノクロ印刷かを選択するものである。設定項目「メディア」は印刷媒体を選択するもので、選択肢として例えば「普通紙、ＯＨＰシート、マット紙、光沢紙、半光沢紙、…」がある。設定項目「印刷品質」には選択肢として「ドラフト」と「テキスト」がある。「ドラフト」は印刷品質よりも印刷速度を優先する印刷（下書き印刷）を指し、選択肢「テキスト」は印刷速度よりも印刷品質を優先する印刷を指す。
【００７３】
設定項目「双方向印刷」には「オン」と「オフ」がある。「オン」のときは、キャリッジの往復走査の両方向で印刷が行われる双方向印刷（Bi−ｄ）が設定され、「オフ」のときはキャリッジの往復走査の一方向のみで印刷が行われる単方向印刷（Uni−ｄ）が設定される。印刷品質は双方向印刷より単方向印刷の方がよく、印刷速度は単方向印刷より双方向印刷の方がよい。このため、印刷速度を優先するドラフトモードでは双方向印刷が設定され、印刷品質を優先するテキストモードでは単方向印刷が設定される。
【００７４】
また、設定項目「マイクロウィーブ」には「オン」と「オフ」がある。「オン」のときは、印刷品質を優先するマイクロウィーブと呼ばれる記録方式が設定され、「オフ」のときは印刷速度を優先するバンド印刷と呼ばれる記録方式が設定される。バンド印刷は、記録ヘッドのノズル数を最大限に活用するので印刷速度は速いものの、ノズル毎の個体差に起因するドット着弾位置のズレ（ヘッド飛行曲がり）や紙送り量誤差が視覚的に目立ちやすい記録方式である。また、マイクロウィーブ印刷は、副走査方向（紙送り方向）の隣接ドットを異なるノズルで印刷するため紙送り量が小さいものの、ヘッド飛行曲がりや紙送り量誤差が分散されて視覚的に目立ちにくく、良好な画質が得られる記録方式である。このため、印刷速度を優先するドラフトモードではバンド印刷が設定され、印刷品質を優先するテキストモードではマイクロウィーブ印刷が設定される。なお、プリセットの対象となるその他の設定項目の例として、フチ無し印刷や、ＡＰＦ（画質自動調整）を挙げることができる。これらの設定項目はいずれもオン／オフで設定される。
【００７５】
図３（ｃ）に示すプリセットテーブル６３は、図３（ａ）に示すプリセットテーブル６１を論理変数で表したものである。このプリセットテーブル６３は、プリセットテーブル６１中の各選択肢を、図３（ｂ）の論理変数変換テーブル６２を参照して、論理変数に変換することにより作成される。
【００７６】
図４は、論理式を作成する処理の流れを説明するためのテーブル図を示す。同図（ａ）はプリセット論理式テーブル、同図（ｂ）はプリセット論理式、同図（ｃ）はマニュアル禁則論理式、同図（ｄ）は論理変数変換後のプリセットテーブル、同図（ｅ）は論理式をそれぞれ示す。
【００７７】
図４（ａ）に示すプリセット論理式テーブル６４は、図３（ｃ）に示すプリセットテーブル６３において、プリセット番号毎のプリセット条件を、禁則条件の論理式で表現したものである。例えばプリセット番号「１」では、主要な設定項目の各選択肢に割り当てられた論理変数が論理積で結合された（Ｘ１∧Ｘ３∧Ｘ５）と、その他の設定項目１，２，３…の選択肢に割り当てられた論理変数の否定が論理和で結合された（Ｘ７￣∨Ｘ９￣∨Ｘ１１￣∨Ｘ１４￣∨…）とが論理積で結合された論理式が設定されている。
【００７８】
論理式で用いられている論理変数には、「Ｘ１，Ｘ２，Ｘ３，Ｘ４，Ｘ５，…」と、「Ｘ１￣，Ｘ２￣，Ｘ３￣，Ｘ４￣，Ｘ５￣，…」がある。論理変数Ｘｎ（但しｎ＝１,2,…）は、論理変数Ｘｎで表された選択肢Ｎが選択されているときに真（TRUE）となり、この選択肢Ｎが選択されていないときに偽（FALSE）となる論理変数である。一方、論理変数Ｘｎ￣（但しｎ＝１,2,…）は、論理変数Ｘｎで表された選択肢Ｎが選択されていないときに真（TRUE）となり、この選択肢Ｎが選択されているときに偽（FALSE）となる論理変数である。論理変数Ｘｎ，Ｘｎ￣は、それぞれ真（TRUE）である場合に値「１」をとり、偽（FALSE）である場合に値「−１」をとる。
【００７９】
ここで、プリセット番号１の例では、その論理式のうち（Ｘ１∧Ｘ３∧Ｘ５）は、論理変数Ｘ１，Ｘ３，Ｘ５のすべてが選択されているときに真（TRUE）となり、そのうち１つでも非選択のものがあれば偽（FALSE）となる。また、この論理式のうち（Ｘ７￣∨Ｘ９￣∨Ｘ１１￣∨Ｘ１４￣∨…）は、論理変数Ｘ７￣，Ｘ９￣，Ｘ１１￣，Ｘ１４￣のうち１つでも真（TRUE）であれば真（TRUE）となる論理式であり、この論理式は後述の禁則条件においては、論理変数Ｘ７，Ｘ９，Ｘ１１，Ｘ１４のすべてが選択されなければならないことを意味する。
【００８０】
図４（ｂ）は、プリセット論理式を示す。プリセット論理式Ｅｐは、図４（ａ）に示すプリセット論理式テーブル６４中の各プリセット番号に対応する各論理式を論理和で結合した論理式である。このプリセット論理式Ｅｐは、プリセットされるべき選択肢の組合せを特定する禁則条件を論理式で表現したものになっている。図４（ｂ）のプリセット論理式Ｅｐの右辺における各行において、前段の論理式（Ｘ１∧Ｘ３∧Ｘ５）、（Ｘ１∧Ｘ３∧Ｘ６）、（Ｘ１∧Ｘ４∧Ｘ５）、…は、主要な設定項目のうち対応する選択肢がすべて選択されているときに真（TRUE）＝１になり、対応する選択肢のうち１つでも非選択のものがあれば偽（FALSE）＝−１となる。このため、前段の論理式が偽（FALSE）＝−１になった行（プリセット番号）の論理式はその値が「−１」になる（∵−１∧Ａ＝−１）。よって、前段の論理式が真（TRUE）＝１になった行（プリセット番号）の論理式は、その行の後段の論理式に等しく、この後段の論理式が、プリセット論理式Ｅｐに等しくなる。
【００８１】
例えば１行目の（Ｘ１∧Ｘ３∧Ｘ５）＝１であれば、他の行の前段（Ｘ１∧Ｘ３∧Ｘ６）、（Ｘ１∧Ｘ４∧Ｘ５）、…はそれぞれ「−１」になって、他の行の論理式はすべて値が「−１」になるので、この場合、プリセット論理式Ｅｐ＝（Ｘ７￣∨Ｘ９￣∨Ｘ１１￣∨Ｘ１４￣∨…）になる。つまり、前段の論理式（Ｘ１∧Ｘ３∧Ｘ５）、（Ｘ１∧Ｘ３∧Ｘ６）、（Ｘ１∧Ｘ４∧Ｘ５）、…が、一種のスイッチとして機能する。
【００８２】
このプリセット論理式Ｅｐが禁則条件を表すものであるので、上記の例の場合は、禁則条件上においては、前述のように、論理変数Ｘ７，Ｘ９，Ｘ１１，Ｘ１４のすべてが選択されなければならないことを意味する。このようにプリセット論理式Ｅｐは、プリセット設定画面２６Ｂにおいて、主要な設定項目「カラーモード」「メディア」「印刷品質」の選択肢の組合せが１つ決まると、その組合せに対応するプリセットされるべき他の設定項目「設定項目１」「設定項目２」…の選択肢の組合せを特定可能となっている。
【００８３】
図４（ｃ）は、マニュアル禁則論理式を示す。マニュアル禁則論理式Ｅｍは、通常設定モードにおいて、設定不可能な選択肢の組合せを特定する禁則条件を論理式で表現したものである。このマニュアル禁則論理式Ｅｍは、ある設定項目中の選択肢が変更された場合、その変更された選択肢と組み合わせて設定することが不可能な選択肢を特定することができる。
【００８４】
禁止されるべき選択肢の組合せについては、それぞれを表す論理変数が論理積（∧）で繋がれ、例えば「Ｘｎ∧Ｘｍ」、「Ｘｎ￣∧Ｘｍ」、「Ｘｎ∧Ｘｍ￣」、「Ｘｎ￣∧Ｘｍ￣」「（Ｘｎ∧Ｘｍ）∧Ｘｌ」、…のように論理式中に組み込まれる。そして、これらの禁止の組合せを論理積で繋いだそれぞれが、論理和（∨）で繋がれて小集団の式が形成され、さらにその論理和で繋がれた小集団の式が他の小集団の式と論理和で繋がれることにより、例えば論理式５２は構築されている。よって、ある禁止の組合せを追加したい場合は、論理式中にその禁止の組合せに対応する各論理変数を論理積（∧）で繋いだ、例えば「Ｘｎ∧Ｘｍ」または前記小集団の式を、既存の論理式５２中に論理和で繋ぐかたちで追加すればよい。また、ある禁止の組合せを削除したい場合は、その禁止の組合せに対応する各論理変数を論理積（∧）で繋いだ、例えば「Ｘｎ∧Ｘｍ」または前記小集団の式を、既存の論理式５２から削除すればよい。このように論理式５２を用いれば、禁止の組合せの追加・削除は比較的簡単に行える。
【００８５】
例えば複数の設定項目の選択肢が設定された状態で、その他に未設定の設定項目が存在する場合、例えばＥｍ＝Ｘ１∨Ｘ４￣が計算結果として得られた場合、禁則条件上においては、その未設定の設定項目について、論理変数Ｘ１の選択肢が選択されることを禁止し、かつ、論理変数Ｘ４の選択肢が選択されないことを禁止することを意味する。つまり、論理変数Ｘ１の選択肢は選択禁止（設定禁止）で、論理変数Ｘ４の選択肢が必ず選択される必要があることを意味する。本実施形態では、設定禁止の論理変数に対応する選択肢は選択できないように無効化（グレーアウト）するようにしている。
【００８６】
図４（ｄ）は、設定モードテーブルを示す。設定モードテーブル６５は、プリセット設定モードのオン／オフと論理変数との対応関係を示すものである。通常設定画面２６Ａに用意されている図１２に示すプリセットボタン２８が操作されてプリセット設定画面２６Ｂが表示されているときに、プリセット設定モードはオンになり、プリセットボタン２８が操作されず通常設定画面２６Ａが表示されているときに、プリセット設定モードはオフになる。論理変数Ｘｐは、プリセット設定モードがオンのときに真（TRUE）になり、オフのときに偽（FALSE）となる。また、論理変数Ｘｐ￣は、プリセット設定モードがオフのときに真（TRUE）になり、オンのときに偽（FALSE）となる。論理変数Ｘｐ，Ｘｐ￣は共に、真（TRUE）のときに「−１」、偽（FALSE）のときに「１」の値をとる。
【００８７】
図４（ｅ）は、禁則論理式を示す。この禁則論理式Ｅは、図４（ｂ）に示すプリセット論理式Ｅｐと、図４（ｃ）に示すマニュアル禁則論理式Ｅｍとを含む１つの論理式に組み立てたものである。この禁則論理式Ｅは、プリセット設定モードのオン／オフの論理変数Ｘｐを使って、Ｅ＝（Ｅｐ∧Ｘｐ）∨（Ｅｍ∧Ｘｐ￣）で表される。プリセット設定モードがオンの場合、（Ｅｐ∧Ｘｐ）＝Ｅｐ、（Ｅｍ∧Ｘｐ￣）＝−１となるので、Ｅ＝Ｅｐとなる。一方、プリセット設定モードがオフの場合、（Ｅｐ∧Ｘｐ）＝−１、（Ｅｍ∧Ｘｐ￣）＝Ｅｍとなるので、Ｅ＝Ｅｍとなる。このように禁則論理式Ｅにおいて、プリセット設定モードのオン／オフを表す論理変数Ｘｐが一種のスイッチとして機能する。本実施形態では、この禁則論理式Ｅを用いることにより、プリセット設定と通常設定において共通の論理式を用いることを可能としている。
【００８８】
次にプリンタメーカー側のコンピュータ５０で行われる論理式５２（禁則論理式Ｅ）から数値列を生成する処理について説明する。図５は、コンピュータ５０で行われる処理を説明する流れ図である。数値列を作成する一連の処理は、数値列作成部５１が行う。数値列作成部５１が行う処理は、図５（ａ）〜（ｄ）に示すように、（ａ）論理式５２の作成、（ｂ）逆ポーランド記法への並び替え、（ｃ）論理変数・論理記号の数値変換処理、の主に３つの処理からなる。
【００８９】
図５（ａ）に示す論理式５２は、上述の手法に基づきコンピュータ５０の数値列作成部５１が作成する。開発者が入力装置（図示せず）を操作して選択肢の論理変数を必要に応じて定義して、数値列作成部５１からの要求に応じてプリセット情報および禁止される組合せ情報を入力すると、数値列作成部５１は、上述の規則に従って論理式５２を作成する。
【００９０】
すなわち、数値列作成部５１は、設定項目中の特定の選択肢が選ばれた場合に真（TRUE）、 選ばれていない場合に偽（FALSE）になる論理変数Ｘ１，Ｘ２，Ｘ３，…を全設定項目の全選択肢分定義する。次に、Ｘ１，Ｘ２，Ｘ３，…の否定、すなわち選択肢が選ばれない場合に真（TRUE）、選ばれた場合に偽（FALSE）となる論理変数Ｘ１￣，Ｘ２￣，Ｘ３￣，…と定義する。そして、入力装置から与えられたプリセット情報を基に、これらの論理変数を論理和・論理積による組み合せることによって、プリセット論理式Ｅｐを作成する。入力装置から与えられた禁止される組合せ情報を基に、これらの論理変数を論理和・論理積で組み合せることによって、マニュアル禁則論理式Ｅｍを作成する。そして、論理変数Ｘｐ，Ｘｐ￣を使って、プリセット論理式Ｅｐとマニュアル禁則論理式Ｅｍとを１つに結合して禁則論理式Ｅで表される論理式５２を作成する。
【００９１】
こうして論理式５２が作成されると、数値列作成部５１は、次に図５（ｂ）に示すように、論理式５２を逆ポーランド記法へ並び替える処理を行う。この処理の結果、同図（ｂ）に示すように、論理式５２中の括弧「（）」が外されて論理変数・論理記号が計算順序の順番に並び替えられた、逆ポーランド記法の論理式５３が得られる。
【００９２】
次に、数値列作成部５１は、この逆ポーランド記法の論理式５３を、図５（ｃ）に示す変換テーブル５４を参照して、図５（ｄ）に示す数値列５５に変換する。この変換テーブル５４は予めメモリの所定記憶領域に記憶されているものを読み出して使用する。あるいは、その都度、設定項目の選択肢の数に応じて数値列作成部５１が作成してもよい。
【００９３】
図５（ｃ）に示す変換テーブル５４は、論理変数・論理記号とそれらの変換先の数値との対応関係を示したテーブルである。変換テーブル５４では、「TRUE（真）」が「１」、「FALSE（偽）」が「−１」に変換されるように設定され、また論理積（∧）が「２」、論理和（∨）が「−２」に変換されるように設定されている。また、論理変数については、論理変数「Ｘ１，Ｘ２，Ｘ３，Ｘ４，…」がそれぞれ「３、４，５，６，…」に変換され、論理変数「Ｘ１￣，Ｘ２￣，Ｘ３￣，Ｘ４￣，…」がそれぞれ「−３、−４，−５，−６，…」に変換されるように設定されている。また、「０」は終端用（NULL）に使用される。なお、「TRUE」および「FALSE」の変換は、論理式５３から数値列５５への変換には使用されないので、数値列５５は「１」および「−１」を含まない。
【００９４】
こうして数値列作成部５１は、変換テーブル５４を参照して、図３（ｂ）に示す逆ポーランド記法の論理式５３を図３（ｄ）に示す数値列５５に変換する。数値列５５には、その最終端位置に、数値列５５の終端位置であることを示す「０」が配置される。コンピュータ１１がこの数値列５５の演算を行うときには、数値列５５における同図の左端位置が演算開始位置になり、この演算開始位置から順次右側へ１つずつ参照する数値をシフトしながら演算を進めることになる。そして、終端用の「０」を参照すると、すべての数値の演算が終了したことになる。この演算終了位置を認識できるように終端用の「０」は数値列５５の最後に配置される。
【００９５】
この数値列５５のデータは、前述のように、プリンタドライバプログラムと共にＣＤ−ＲＯＭ４１に書き込まれ、ＣＤ−ＲＯＭ４１からプリンタドライバプログラムと共にユーザのコンピュータ１１にインストールされることにより、ＨＤＤ１５内の所定記憶領域からなる図２に示す記憶部３１に格納される。コンピュータ１１は数値列５５をソフトウェアの設定データとして持ち、ＵＩ制御装置３０がＵＩ２６を制御するときに使用する。ユーザがアプリケーション部２３から印刷実行を指示し、プリンタドライバ２５が印刷指令を受け付けると、ＵＩ制御装置３０が表示装置１９の画面にＵＩ２６を表示させるとともに、入力装置２０の操作によってユーザがそのＵＩ２６上で選択肢を選択した場合に禁止されるべき組合せの選択を禁止する禁則制御を行う。
【００９６】
図６は、ＵＩ２６上でＵＩ制御処理開始のトリガとなる入力装置２０から入力を得たときに、ＣＰＵ１２が実行するＵＩ制御処理用プログラム（禁則制御処理用プログラム）を示すフローチャートである。ＵＩ制御処理開始のトリガとなる入力は、本実施形態では、通常設定モードとプリセット設定モードで異なる。通常設定モードにおいては、設定項目の選択肢が変更されたり、未設定の設定項目で選択肢が選択されたりした際の入力装置２０からの入力が、ＵＩ制御処理開始のトリガとなる。また、プリセット設定モードにおいては、プリセット設定画面２６Ｂで主要な設定項目「カラーモード」「メディア」「印刷品質」の選択肢が選択された状態でＯＫボタン２９が操作された際の入力装置２０からの入力が、ＵＩ制御処理開始のトリガとなる。
【００９７】
記憶部３１には、プリセット設定モードのオン／オフを管理する所定記憶領域が設けられている。通常設定画面２６Ａでプリセットボタン２８が操作されてプリセット設定画面２６Ｂが表示されている状態にあるときは、プリセット設定モードがオンになる。また、プリセットボタン２８が操作されず通常設定画面２６Ａの表示状態にあるときや、プリセット設定画面２６Ｂでキャンセルボタン（図示省略）が操作されて通常設定画面２６Ａに復帰した状態にあるときは、プリセット設定モードがオフになる。プリセット設定モードがオンのときは前記所定記憶領域のフラグに「１」がセットされ、オフのときはフラグが「０」にリセットされるようになっている。論理変数Ｘｐは、プリセット設定モード管理用のフラグが「１」のときに状態値「１」をとり、このフラグが「０」のときに状態値「−１」をとる。なお、ＵＩ制御処理は、このＵＩ制御処理用プログラムを実行するＣＰＵ１２により構成されるＵＩ制御装置３０が行う。
【００９８】
以下、ＵＩ制御処理について、図６のフローチャートに従って、図７〜図１０を適宜参照しつつ説明する。図７は作業用メモリ４３における演算開始前の前処理を示す説明図であり、図８は作業用メモリ４３における演算手順を説明する説明図である。また、図９は論理変数を含む数値式の演算方法を説明する説明図であり、図１０は計算完了時の作業用メモリ４３を示す説明図である。なお、以下の説明においては、通常設定画面２６Ａでプリセットボタン２８が操作されて表示装置１９の画面に表示されたプリセット設定画面２６Ｂで、主要な設定項目「カラーモード」「メディア」「印刷品質」の選択肢が選択された状態でＯＫボタン２９が操作された場合を想定する。このＯＫボタン２９が操作された際の入力は入力装置２０から図２に示すＵＩ制御装置３０のデータロード部３２に与えられる。この入力を契機にＵＩ制御処理は開始される。
【００９９】
まずステップＳ１０では、作業用のメモリ領域の準備をする。本実施形態では、ＲＡＭ１４に作業用メモリ領域を確保し、そのメモリ領域を作業用メモリ４３（図７及び図８に示す）として使用する。なお、選択肢が125個以下の場合は、１つの数値につき１バイト分確保し、選択肢が125個を超える場合は、１つの数値につき２バイト分確保する。この選択肢の個数には、プリセット設定モードのオン／オフの選択肢も含む。
【０１００】
ステップＳ２０では、数値列５５を作業用メモリ４３にコピーする。すなわち、記憶部３１から数値列５５を読み出して、図７（ａ）に示すように、作業用メモリ４３に格納する。なお、選択肢が125個以下の場合は、１つの数値を先に確保した１バイト分に格納し、選択肢が125個を超える場合は、１つの数値を先に確保した２バイト分に格納する。
【０１０１】
ステップＳ３０では、設定状態（選択状態）を示すテーブルを生成する。すべての選択肢に対して論理変数Ｘ１，Ｘ２，Ｘ３，…が割り当てられており、ＵＩ２６上で選択されている選択肢の設定状態（選択状態）から、各論理変数Ｘ１，Ｘ２，Ｘ３，…のうち選択肢が選択済みの設定項目中の選択肢については、選択・非選択が分かる。選択されている選択肢の論理変数に対応する数値（Index）には「１」（TRUE）、選択されていない（非選択）の選択肢の論理変数に対応する数値（Index）には「−１」（FALSE）をそれぞれ設定して、図７（ｂ）に示すテーブル４４を作成する。同図の例では、主要な設定項目「カラーモード」「メディア」「印刷品質」の各選択肢およびプリセット設定モードのオン／オフの選択肢に対応する論理変数に割り当てられた数値には、そのときの選択状態に応じた状態値が設定される。図７（ｂ）のテーブル４４は、プリセット設定画面２６Ｂにおける３つの設定項目で「カラー」「普通紙」「テキスト」がそれぞれ選択された場合（図３における「プリセット番号２」の場合）の例である。この例の場合、選択されている選択肢の論理変数Ｘ３，Ｘ８，…，Ｘｐに対応する数値（Index）「５」「８」…，「１２７」に対しては「１」が状態値として設定され、選択されていない（非選択の）選択肢の論理変数Ｘ２，Ｘ４，Ｘ５，…に対応する数値（Index）「４」「６」「７」…に対しては「−１」が状態値として設定されている。このとき、今からプリセットを行なおうとしている設定項目の選択肢に対応する数値に関しては、置き換えを行なわない。よって、今からプリセットされるべき設定項目の選択肢に対応する論理変数Ｘ７，Ｘ８に割り当てられた数値「９」「１０」に対してはそのまま「９」「１０」が設定されている。なお、論理変数Ｘ１￣，Ｘ２￣，Ｘ３￣,…，Ｘｐ￣の状態値は、Ｘ１，Ｘ２，Ｘ３，…，Ｘｐの状態値に「−１」を乗ずることによって取得可能である。また、テーブル４４において、数値（Index）「０」「１」「２」は選択肢を表す数値ではないので、未使用となる。
【０１０２】
ここで、通常設定モードである場合は、設定項目の選択肢が選択される度にＵＩ制御処理を開始するので、状態値が「１」（TRUE）又は「−１」（FALSE）に決まっていない未定の論理変数が存在する。選択されている選択肢の論理変数に対応する数値（Index）には「１」（TRUE）、選択されていない（非選択）の選択肢の論理変数に対応する数値（Index）には「−１」（FALSE）をそれぞれ状態値として設定する。このとき、今から禁則判定を行なおうとしている設定項目の選択肢に対応する数値に関しては、置き換えを行なわない。このようにテーブル４４の作成手順はプリセット設定モードの場合と基本的に同じである。
【０１０３】
ステップＳ４０では、論理変数に割り当てられている数値を、テーブル４４から取得した論理変数の状態値に置き換える。すなわち、図７（ａ）に示す数値列５５のうち論理変数が割り当てられた数値（Index）「３，４，５，…」を、テーブル４４中の対応する状態値（「１」または「−１」）に置き換えて、図７（ｃ）に示すような数値列５６に変換する。
【０１０４】
ステップＳ５０では、置き換え後の数値列５６をスタック操作で計算する。図８は、スタック操作で行われる計算手順を示すものである。このスタック操作で数値列５６を計算することで、禁則情報を抽出する。以下、スタック操作による計算方法を説明する。
【０１０５】
置き換えられた数値列５６を、作業用メモリ４３における同図における左端位置から右方向に１つずつ数値を参照していき、作業用メモリ４３自体をスタックとして活用する、スタック操作を行うことで数値列５６の計算を実施する。
【０１０６】
図８（ａ）は、数値置き換え直後から最初の数値を参照して計算を行うまでの過程を示す。ここで、作業用メモリ４３をスタックとして活用してスタック操作による計算を行うためには、数値の参照位置を管理するとともに、スタック終端位置を管理する必要がある。ＣＰＵ１２はメモリ上に所定記憶領域を確保して、スタック終端位置を管理している。また、メモリ上に別の所定記憶領域を確保して、ここで作業用メモリ４３上の数値列５６中の数値を１つずつ順番に参照する参照位置４５（アドレス）を管理している。
【０１０７】
参照位置４５は作業用メモリ４３における図８の左端位置を参照開始位置とし、数値を参照する度に１つずつ右方向へ移動していく。一方、スタック終端４６は、作業用メモリ４３上において図６の左端位置を初期位置とする。スタック操作は次の規則に従って行われる。参照位置４５の数値（参照数値）が論理変数の状態値である「１」（TRUE）又は「−１」（FALSE）の場合は、その参照数値を作業用メモリ４３のスタック終端４６の位置にプッシュする。数値をプッシュした場合は、スタック終端４６を１つ右へ移動する。また、参照位置４５の数値（参照数値）が論理記号を表す数値である「２」（論理積）又は「−２」（論理和）の場合は、作業用メモリ４３中のスタック領域から２つ数値をポップして、そのポップした数値の個数分（２つ分）スタック終端４６を左へ戻す。このような規則に従って行われるスタック操作と、参照位置４５およびスタック終端４６の位置管理は、ＵＩ制御用プログラムに基づいてＣＰＵ１２が行う。なお、図８における作業用メモリ４３における１つの数値が格納される格納エリア（同図における１升分）のアドレスを、便宜上、左端位置から順に第１アドレス、第２アドレス、第３アドレス、…と呼ぶことにする。
【０１０８】
まず図８（ａ）に示すように、最初の参照位置４５である１番目の数値を参照する。参照数値が「１」（TRUE）であるので、その参照数値を作業用メモリ４３上のスタック終端４６の位置である第１アドレスにプッシュする。プッシュしたことによってスタック終端４６は１つ右へ移動する。こうして１個目の数値の参照およびプッシュが終わると、図８（ｂ）に示すように、参照位置４５およびスタック終端４６が共に２個目の数値が位置する第２アドレスを示す状態になる。
【０１０９】
次に図８（ｂ）に示すように、参照位置４５にある２個目の数値を参照すると、その参照数値が「１」であるので、その参照数値を作業用メモリ４３上のスタック終端４６の位置である第２アドレスにプッシュする。プッシュしたことによってスタック終端４６は１つ右へ移動する。こうして２個目の数値の参照およびプッシュが終わると、図示はしないが、参照位置４５およびスタック終端４６が共に３個目の数値が位置する第３アドレスを示す状態になる。
【０１１０】
次に図８（ｃ）に示すように、参照位置４５にある３個目の数値を参照すると、その参照数値が「２」（論理積）であるので、作業用メモリ４３のスタック領域から２つ数値をポップして、スタック終端４６をポップした個数分（２つ分）だけ左へ戻す。ここで、参照数値「２」が論理積（∧）を意味するので、ポップした２つの数値の論理積を計算する。すなわち、１（TRUE）２（∧）１（TRUE）を計算する。そして、この計算結果である「１」をスタック終端４６の位置にプッシュする。このプッシュによってスタック終端４６は１つ右へシフトし、図８（ｄ）に示すように第２アドレスを示す状態になる。そして、参照位置４５は４個目の数値の位置である第４アドレスを示す状態になる。なお、スタック終端４６は、数値を次にプッシュすべき位置を指すので、数値をポップするときの位置は、スタック終端４６より１つ左側の位置となる。
【０１１１】
次に図８（ｄ）に示すように、参照位置４５にある４個目の数値を参照すると、その参照数値が「−１」（FALSE）であるので、その参照数値を作業用メモリ４３上のスタック終端４６の位置である第２アドレスにプッシュする。この場合、プッシュした数値が上書きされる。このプッシュによってスタック終端４６は１つ右へ移動する。こうして４個目の数値の参照およびプッシュが終わると、図示はしないが、参照位置４５が５個目の数値の位置である第５アドレスを示す状態になるとともに、スタック終端４６が３個目の数値の位置である第３アドレスを示す状態になる。以下、スタック操作を同様の手順で、終端数値「０」を参照するまで繰り返す。
【０１１２】
但し、論理変数の数値を含むので、論理積または論理和の計算をする際にその計算対象の１組の数値のうち少なくとも一方に論理変数の数値が含まれる場合がある。このような論理変数の数値を少なくとも一方に含む式の計算は、図９に示す演算ルールに従って効率かつ正確に行えるようにしている。
【０１１３】
以下、論理変数の数値を含む場合の演算ルールについて、図９を用いて説明する。同図（ａ）〜（ｆ）に示す６つの演算ルールが予めプログラムに組み込まれている。これらの演算ルールはいずれも論理積または論理和の演算則から論理的に導かれるものである。
【０１１４】
同図では、演算の対象となる論理変数の数値をＡ，Ｂで表し、これらの数値Ａ，Ｂの論理変数をそれぞれＸｎ，Ｘｍとしている。同図（ａ）〜（ｆ）に示した各演算式では、数値の後の括弧内に、その数値に対応する論理変数、論理記号、状態値を示している。
【０１１５】
図９（ａ）に示す数値列「Ａ２１」で表される演算式は、論理変数Ｘｎと状態値「１」との論理積（∧）、すなわち「Ｘｎ∧１」を意味する。Ｘｎ∧１の場合、Ｘｎが「１」の場合にその演算結果が「１」、Ｘｎが「−１」の場合にその演算結果が「−１」となるので、Ｘｎ∧１＝Ｘｎになる。よって、「Ａ２１」の場合は、スタック終端位置に「Ａ」をプッシュする。
【０１１６】
図９（ｂ）に示す数値列「Ａ２−１」で表される演算式は、論理変数Ｘｎと状態値「−１」との論理積（∧）、すなわち「Ｘｎ∧−１」を意味する。Ｘｎ∧−１の場合、Ｘｎが「１」と「−１」のどちらの値をとっても、その演算結果は「−１」となるので、Ｘｎ∧−１＝−１になる。よって、「Ａ２−１」の場合は、スタック終端位置に「−１」をプッシュする。
【０１１７】
図９（ｃ）に示す数値列「Ａ−２１」で表される演算式は、論理変数Ｘｎと状態値「１」との論理和（∨）、すなわち「Ｘｎ∨１」を意味する。Ｘｎ∨１の場合、Ｘｎが「１」と「−１」のどちらの値をとっても、その演算結果は「１」となるので、Ｘｎ∨１＝１になる。よって、「Ａ−２１」の場合は、スタック終端位置に「１」をプッシュする。
【０１１８】
図９（ｄ）に示す数値列「Ａ−２−１」で表される演算式は、論理変数Ｘｎと状態値「−１」との論理和（∨）、すなわち「Ｘｎ∨−１」を意味する。Ｘｎ∨−１の場合、Ｘｎが「１」の場合にその演算結果が「１」、Ｘｎが「−１」の場合にその演算結果が「−１」となるので、Ｘｎ∨−１＝Ｘｎになる。よって、「Ａ−２−１」の場合は、スタック終端位置に「Ａ」をプッシュする。
【０１１９】
図９（ｅ）に示す数値列「Ａ２Ｂ」で表される演算式は、論理変数Ｘｎと論理変数Ｘｍとの論理積（∧）、すなわち「Ｘｎ∧Ｘｍ」を意味する。Ｘｎ∧Ｘｍの場合、Ｘｎ，Ｘｍの両方の状態値が未定なので「１」又は「−１」のどちらの値をとるかは分からない。しかし、同一設定項目内の２つの選択肢を同時に選択することはあり得ない。よって、同一設定項目内の２つの選択肢を同時に選択するような、あり得ない組合せの論理積であった場合は、Ｘｎ∧ＸｍをFALSE（「−１」）として除外する。よって、「Ａ２Ｂ」の場合は、Ａ，Ｂが同一設定項目内の２つの選択肢を表す数値であれば、スタック終端位置に「−１」をプッシュする。
【０１２０】
図９（ｆ）に示す数値列「Ａ−２Ｂ」で表される演算式は、論理変数Ｘｎと論理変数Ｘｍとの論理和（∨）、すなわち「Ｘｎ∨Ｘｍ」を意味する。Ｘｎ∨Ｘｍの場合、Ｘｎ，Ｘｍの両方の状態値が未定なので「１」又は「−１」のどちらの値をとるかは分からない。よって、「Ａ２Ｂ」の場合、Ａ，Ｂが異なる設定項目内の２つの選択肢を表す数値であれば、スタック終端位置に「Ａ」と「Ｂ」をプッシュする。２つの数値をプッシュした場合は、スタック終端４６の位置は右へ２つ移動することになる。なお、Ｘｎ￣，Ｘｍ￣のような否定の場合も、同様の規則が適用される。また、数値列の計算結果において、矛盾する論理式が出ないように、ＣＰＵ１２がＵＩ制御処理上で参照する数値がメモリには記憶されている。例えば、論理式に同一設定項目内の選択肢は、同時に設定不可である条件を入れて演算を行う構成にしており、負の数値（否定の論理変数）が複数個発生することが回避されるようになっている。
【０１２１】
このように論理変数に割り当てられた数値を少なくとも一方に含む組合せによる演算の場合は、上記の規則に従って計算を行う。そして、終端数値「０」を参照すると、数値列５６の計算を完了する。終端数値「０」を参照した段階ではスタック終端４６は、その前回の数値参照時に行われた最後の計算結果がプッシュされた位置より１つ右へ移動した状態にある。例えば計算完了時には、作業用メモリ４３の先頭位置から演算結果を読み出す際の最終読出し位置をスタック終端４６の位置で特定できると都合がよいので、終端数値「０」を参照したときにはスタック終端４６を左へ１つ戻すようにする。よって、作業用メモリ４３の先頭位置からスタック終端位置までのメモリ領域に格納された数値列（数値１つも含む）が、禁則論理式Ｅの演算結果として取得される。
【０１２２】
図１０は、計算完了時の作業用メモリ４３を示す。終端数値「０」を参照した段階で、作業用メモリ４３において先頭位置からスタック終端位置までのメモリ領域に格納された数値列が、計算結果となっている。ＣＰＵ１２は、作業用メモリ４３の先頭位置からスタック終端位置までの数値を読み出して計算結果を取得する。同図に示す例では、「−１０−１１−１３−１６…−２５」が計算結果として得られる。この数値列を論理式に直すと、禁則論理式Ｅは、Ｅ＝Ｘ８￣∨Ｘ９￣∨Ｘ１１￣Ｘ１４￣∨…∨Ｘ２３￣となる。これは、論理変数Ｘ８，Ｘ９，Ｘ１１，Ｘ１４，…Ｘ２３のうち少なくとも１つが非選択となることを禁止することを意味する。つまり、論理変数Ｘ８，Ｘ９，Ｘ１１，Ｘ１４，…Ｘ２３のすべてが選択される必要があることを意味する。よって、論理変数Ｘ８，Ｘ９，Ｘ１１，Ｘ１４，…Ｘ２３のそれぞれに対応する選択肢のすべてが選択される必要があるというプリセット情報が得られる。
【０１２３】
こうして図６に示すステップＳ５０における数値列のスタック操作による計算は行われ、その計算結果が得られると、次にステップＳ６０に進む。
図６に示すステップＳ６０では、プリセット設定モードであるか否かを判断する。これは、プリセット設定モードのオン／オフ管理用のフラグをみて判断する。フラグが「１」であればプリセット設定モードであり、フラグが「０」であればプリセット設定モードではない、つまり通常設定モードである。プリセット設定モードであれば、ステップＳ７０に進み、プリセット設定モードでなければステップＳ８０に進む。
【０１２４】
ステップＳ７０では、計算結果に従ってプリセット設定する。すなわち、図１０の例では、得られた計算結果「−１０−１１−１３−１６…−２５」から、禁則論理式Ｅ＝Ｘ８￣∨Ｘ９￣∨Ｘ１１￣Ｘ１４￣∨…∨Ｘ２３￣が得られる。よって、論理変数Ｘ８，Ｘ９，Ｘ１１，Ｘ１４，…Ｘ２３のそれぞれに対応する選択肢のすべてが選択される必要があるというプリセット情報が得られる。そして、これらの選択肢のすべてが選択された状態に詳細設定画面２６Ｃにおける設定項目を設定する。この場合、他の選択肢が選択されていても、プリセット情報に基づく選択肢が強制的に設定される。
【０１２５】
一方、ステップＳ８０では、計算結果に従って選択肢を無効化する。例えば禁則論理式Ｅ＝ＡＢ（但しＡ，Ｂはそれぞれ数値）が得られたとする。この場合、数値Ａが正の数値の場合は、数値Ａに対応する選択肢を選択不能な状態に無効化（グレーアウト）する。また、数値Ａが負の数値の場合は、該当する設定項目において数値Ａに対応する選択肢以外の選択肢をすべて選択不能な状態に無効化（グレーアウト）する。この場合、数値Ａに対応する選択肢しか設定できないことになる。他方の数値Ｂについても同様で、その値の正負に応じて定まる所定の選択肢を無効化（グレーアウト）する。
【０１２６】
このように通常設定モードとプリセット設定モードにおいて、共通の禁則論理式Ｅを用いてＵＩ制御処理を行うことができる。なお、ステップＳ１０〜Ｓ５０が演算ステップに相当し、ステップＳ６０〜Ｓ８０が処理ステップに相当する。
【０１２７】
例えば図１１（ａ）に示すプリセット設定画面２６Ｂにおいて、３つの設定項目「カラーモード」「メディア」「印刷品質」でそれぞれ選択肢として「カラー」「普通紙」「テキスト」を選択して、ＯＫボタン２９を操作したとする。すると、ＣＰＵ１２は、ＯＫボタン２９の操作の入力をトリガとして、図６のフローチャートで示されるＵＩ制御処理を実行し、ステップＳ５０で計算結果が得られると、その計算結果から取得されるプリセット情報に従って、図１１（ｂ）に示すように詳細設定画面２６Ｃの設定項目１〜４の選択肢が自動で設定される。
【０１２８】
また、図１２に示す通常設定画面２６Ａにおいて、設定項目「カラーモード」「メディア」が未設定の状態で、ユーザが設定項目「用紙サイズ」で「Ａ４」を選択したとする。すると、この「Ａ４」を選択した際の入力を入力装置２０から得たＣＰＵ１２は、その入力をトリガとしてＵＩ制御処理を開始する。そして、ステップＳ５０で計算結果が得られると、その計算結果から取得される禁則情報に従って、図１２（ｂ）に示すように通常設定画面２６Ａで選択肢が未設定であった設定項目「カラーモード」で例えば「モノクロ」が無効化され、設定項目「メディア」で例えば「ＯＨＰシート」が無効化される。
【０１２９】
ここで、設定項目には優先順位があり、優先順位が高いか同じ設定項目については状態値を設定するが、優先順位が低い設定項目には状態値を設定せず論理変数の数値をそのまま設定して、テーブル４４を作成する。図１２の例は、例えば設定項目「カラーモード」が設定項目「用紙サイズ」よりも優先順位が低い例であり、設定項目「カラーモード」の選択肢を表す論理変数に割り当てられた数値は状態値には置き換えられない。よって、数値列の演算結果として得られる数値列の中に設定項目「カラーモード」中の選択肢に対応する数値が含まれることになって、既に「カラー」が選択状態にあった設定項目「カラーモード」において「モノクロ」が無効化される。なお、図１１および図１２では、無効化された選択肢には括弧を付している。
【０１３０】
以上詳述したように本実施形態によれば、以下の効果を得ることができる。
（１）主要な設定項目の各選択肢に割り当てられた論理変数が論理積で結合された第１サブ論理式（Ｘａ１∧…∧Ｘａｎ）（本例ではｎ＝３）と、その他の設定項目１，２，３…の選択肢に割り当てられた論理変数の否定が論理和で結合された第２サブ論理式（Ｘｂ１￣∨Ｘｂ２￣∨…∨Ｘｂｎ￣）（本例ではｎは４以上）とを論理積で結合した。そして、この１つのプリセットデータを特定する論理式（Ｘａ１∧…∧Ｘａｎ）∧（Ｘｂ１￣∨Ｘｂ２￣∨…∨Ｘｂｎ￣）を１つの論理式単位とし、各プリセットデータを特定する論理式単位を論理和で結合してプリセット論理式を構築した。よって、プリセット設定画面２６Ｂで、選択情報として１つの主要な設定項目の組合せが選択されてＯＫボタン２９が操作されると、その選択された主要な設定項目の選択肢の組合せに対応する第１サブ論理式が（Ｘａ１∧…∧Ｘａｎ）＝１になり、これ以外の選択肢の組合せに対応する第１サブ論理式が（Ｘａ１∧…∧Ｘａｎ）＝−１になる。このように第１サブ論理式がスイッチとして機能して、詳細設定画面２６Ｃ上の設定項目に設定すべき選択肢の組合せを示す第２論理式が演算結果として、Ｅ＝（Ｘｂ１￣∨Ｘｂ２￣∨…∨Ｘｂｎ￣）のように得られる。従って、設定項目の追加・削除等の変更をした場合にプリセットデータを抽出するプログラムの変更の必要がない。
【０１３１】
（２）プリセット設定モードのオン／オフの選択肢を表す論理変数Ｘｐを用い、プリセット論理式Ｅｐ（第１論理式）とマニュアル禁則論理式Ｅｍ（第２論理式）とを、Ｅ＝（Ｅｐ∧Ｘｐ）∨（Ｅｍ∧Ｘｐ￣）のように１つの論理式に組み合わせた形式とした。よって、プリセット設定モードと通常設定モードで、共通の論理式を用いて演算を行うので、プリセット設定モード時と通常設定モード時で使用される演算プログラムを共通化することができる。このため、ＵＩ制御処理に用いられるソフトウェアを簡単にすることができる。
【０１３２】
（３）論理式を数値に変換した数値列５５を記憶部３１に記憶しておき、数値列５５を演算して、プリセット情報または禁則情報を取得する構成を採用した。よって、論理式の解析処理など複雑な処理をＣＰＵ１２が行わなくて済み、ＣＰＵ１２が行うＵＩ制御処理（ＵＩ制御用プログラム）を簡単なものとすることができる。例えばＵＩ２６へ処理結果を反映させる応答速度の遅延を極力回避することができる。従って、禁則条件の論理式を演算するのに必要なデータ量も数値列とすることで比較的少なく、しかも比較的簡単な処理でＵＩ制御を行うことができる。
【０１３３】
（４）作業用メモリ４３をスタックとして活用して、スタック操作を行うことによって数値列５６の演算を行うので、演算に必要なメモリ容量を少なく済ませられる。
（５）数値列５５は、論理式を逆ポーランド記法に並び替えたものを数値に変換されたものなので、先頭から順番に数値を参照することにより数値列５６の演算をスタック計算で行うことができる。このため、数値列５６の計算を比較的簡単な演算処理で済ませることができる。
【０１３４】
（６）論理変数を少なくとも一方に含む２つの数値の計算に際して、図９で説明した所定のルールを設けたので、論理変数を含む計算であるものの、比較的スムーズにしかも正確な演算結果を得ることができる。
【０１３５】
前記実施形態に限定されず、以下の構成で実施することもできる。
（変形例１）前記実施形態では、主要な設定項目で選択された選択肢の組合せ（選択情報）に応じてプリセットデータを引き当てる構成としたが、これに限定されない。例えば、図３に示すようなプリセット番号と主要な設定項目を対応付けておく。例えばプリセット番号を選択すると、該プリセット番号に対応付けられた主要な設定項目の特定の選択肢の組合せ（例えば「カラー」「普通紙」「テキスト」）が定まり、この特定の選択肢が選ばれている情報（状態値）が論理式に適用される構成とする。そして、論理式の計算結果から、選択されたプリセット番号に対応するプリセットデータが引き当てられる。また、プリセットモードのプリセット設定画面でプリセット番号を選択する構成としてもよい。この場合、論理式には各プリセット番号に応じた論理変数も組み込んでおき、プリセット番号と全設定項目の選択肢の組合せとを対応付けた条件式を含めておく。プリセット番号が選択されると、論理式中におけるそのプリセット番号に対応する論理変数の数値を状態値「１」に置き換え、この状態値適用後の数値列を計算することで、プリセット番号に対応するプリセットデータを取得する。例えばプリセット番号の論理変数をＸp1，…，Ｘpn（ｎは自然数）とすると、例えばプリセット番号「２」を例にして、Ｘp2∧（Ｘ１￣∨Ｘ３￣∨Ｘ６￣∨Ｘ８￣∨Ｘ９￣∨Ｘ１２￣∨Ｘ１４￣∨…）を１つの論理式単位とし、これと同形式で表現されたプリセット番号毎の論理式単位を論理和で組み合わせて論理式を構築する。
【０１３６】
（変形例２）前記実施形態では、禁則条件の論理式としたが、これに限定されない。例えば設定を許可する条件を表現した論理式としてもよい。論理式単位を（Ｘａ∧Ｘｂ∧Ｘｃ）∨（Ｘｄ∧Ｘｅ∧Ｘｆ∧Ｘg∨…）の形式とし、選択情報の種類ごとの論理式単位を論理和で結合することで、例えば許可の条件の論理式を構築してもよい。この場合、計算結果がＥ＝（Ｘｄ∧Ｘｅ∧Ｘｆ∧Ｘg∨…）となれば、選択肢ｄ，ｅ，ｆ，g，…を設定する。なお、Ｘｄ，Ｘｅ，Ｘｆ，Ｘg，…は、選択肢ｄ，ｅ，ｆ，g，…に対応する論理変数である。
【０１３７】
（変形例３）前記実施形態では、プリセットデータを特定する禁則条件を表現した第１論理式と禁則データを特定する禁則条件を表現した第２論理式とを一体化した論理式を使用したが、これに限定されない。例えば第１論理式と第２論理式を別々記憶手段に記憶しておき、そのときの設定モードに応じてプリセット設定モードのときは第１論理式を読み出し、通常設定モードのときは第２論理式を読み出す構成を採用することもできる。
【０１３８】
（変形例４）前記実施形態では、プリセットデータを引き当てる際の手掛かりにする選択情報を、主要な３つの設定項目を選択した情報としたが、選択情報とするために選択する設定項目の数は３つに限定されず、１つ、２つあるいは４つ以上としてもよい。また、選択情報から特定されて選択肢が自動設定される設定項目の数も、任意に設定できる。例えば１つであってもよい。
【０１３９】
（変形例５）前記実施形態では、通常設定モードにおいて、選択肢を選択する度にＵＩ制御処理を開始して選択禁止の選択肢をグレーアウト状態に無効化する方法を採用したが、これに限定されない。例えば全設定項目の選択肢が選択された状態（デフォルト選択状態を含む）でＯＫボタン２７を操作すると、その操作をトリガとしてＵＩ制御処理を開始し、数値列５６の計算結果がＥ＝−１の場合は、その設定を確定して印刷部３８にその旨を通知し、一方、計算結果がＥ＝１の場合は、設定不可能な旨のメッセージを表示装置１９に表示する。
【０１４０】
（変形例６）前記実施形態におけるテーブル４４のフォーマットに限定されない。例えば状態値置き換え処理の高速化のために、正の数値用と負の数値用に２つテーブルを用意する方法や、２の補数でIndex参照する方法等を採用することもできる。
【０１４１】
（変形例７）前記実施形態では、禁則条件を表す論理式を使用したが、禁則の反対で許可される条件を表す論理式を採用してもよい。この場合、数値列の計算結果に基づき選択可能状態に有効化されるべき選択肢を求めることにより、それ以外の選択肢を無効化する構成とする。禁則条件か許可条件かどちらを選択するかは、論理式が簡単で済む方を選択するのが好ましく、選択禁止の条件より選択許可の条件の方が少ない場合は、許可条件の論理式を採用することが好ましい。
【０１４２】
（変形例８）前記実施形態では、数値列のスタック計算を、作業用メモリ上でスタック操作を行うことで作業用メモリ上の数値の参照が終わったメモリ領域をスタック領域として活用する構成としたが、これに限定されない。スタック専用のメモリ領域を別途確保し、作業用メモリから読み出した数値をスタック専用のメモリ領域にプッシュしたり、スタック専用メモリ領域から数値をポップしたりする構成を採用できる。この構成によれば、スタック専用メモリ領域を別途確保する必要があり、しかも数値データの読出し・書込み回数が増える処理にはなるものの、数値列の演算で済むので、論理式の解析処理など複雑な演算が伴うことは同様に回避できる。
【０１４３】
（変形例９）前記実施形態では、ＵＩ２６上に用意されたすべての選択肢を論理変数にして論理式を作成したが、一部の選択肢のみを論理変数に表現した論理式を採用し数値列計算を行う構成とすることもできる。例えば選択情報のどれを選んでも、同一選択肢が設定される設定項目については、敢えて計算して特定するまでもなく既知であるので、選択肢が予め既知の設定項目については論理式から外してもよい。
【０１４４】
（変形例１０）前記実施形態では、論理式を表現した数値列の演算を含むＵＩ制御処理をＣＰＵにプログラムを実行させるソフトウェアにより実現したが、ＵＩ制御処理の少なくとも一部の処理をハードウェアにより実現することもできる。例えばＡＳＩＣ等のカスタマＩＣに禁則条件を示す論理式及びその演算プログラム用の回路を形成してＵＩ制御処理をハードウェア上の演算で行ってもよい。ＵＩ制御処理がパーソナルコンピュータ以外の例えばプリンタや複合機等の電子機器で行われる構成であれば、電子回路として論理式（数値列）を含む数値列演算回路を持つことも可能である。
【０１４５】
（変形例１１）ユーザインターフェイス制御方法及び制御装置をパーソナルコンピュータ等のコンピュータにおいて実現したが、前述のようにプリンタや複合機等の電子機器において適用することもできる。この場合、電子機器に内蔵されたＣＰＵにＵＩ制御用プログラムを実行させる構成を採用してもよい。また、プリンタや複合機以外の電子機器に適用することもでき、例えばプロジェクタ、デジタルカメラ、デジタルビデオカメラ、携帯電話機などに適用することもできる。
【０１４６】
前記実施形態及び変形例から把握される技術的思想を以下に記載する。
（１）請求項１３に記載のユーザインターフェイス制御方法において、前記演算ステップでは、スタック終端位置を管理しており、スタック終端位置に基づいてスタック領域へのプッシュ位置及びポップ位置を特定することを特徴とするユーザインターフェイス制御方法。
【図面の簡単な説明】
【０１４７】
【図１】一実施形態における印刷システムのハードウェア構成を示すブロック図。
【図２】印刷システムの概略構成を示すブロック図。
【図３】（ａ）〜（ｃ）プリセットテーブルを説明するテーブル図。
【図４】（ａ）〜（ｅ）メーカー側のコンピュータで予め行われる処理を説明する流れ図。
【図５】（ａ）〜（ｄ）メーカー側のコンピュータで予め行われる処理を説明する流れ図。
【図６】ＵＩ制御処理を示すフローチャート。
【図７】（ａ）〜（ｃ）作業用メモリにおける演算開始前の前処理を示す説明図。
【図８】（ａ）〜（ｄ）作業用メモリにおける演算手順を説明する説明図。
【図９】（ａ）〜（ｆ）論理変数を含む数値式の演算方法を説明する説明図。
【図１０】計算完了後の作業用メモリを示す図。
【図１１】（ａ）プリセット設定画面、（ｂ）詳細設定画面のそれぞれ画面図。
【図１２】（ａ）（ｂ）通常設定画面におけるＵＩ制御処理を説明する説明図。
【符号の説明】
【０１４８】
１０…印刷システム、１１…コンピュータ、１２…モード切換手段及び処理手段を構成するＣＰＵ、１３…ＲＯＭ、１４…ＲＡＭ、１５…ＨＤＤ、１６…ビデオ回路、１９…表示手段としての表示装置、２０…入力手段としての入力装置、２１…プリンタ、２３…アプリケーション部、２４…ビデオドライバ、２５…プリンタドライバ、３０…ＵＩ制御装置、３１…記憶手段としての記憶部、３２…データロード部、３３…テーブル作成部、３４…演算手段としての演算部、３５…処理手段としてのＵＩ制御部、３８…印刷部、４３…作業用メモリ、４４…テーブル、４５…参照位置、４６…スタック終端、５２…論理式、５５…数値列、５６…数値列。
【図１】
2007299325.tif 000003
【図２】
2007299325.tif 000004
【図３】
2007299325.tif 000005
【図４】
2007299325.tif 000006
【図５】
2007299325.tif 000007
【図６】
2007299325.tif 000008
【図７】
2007299325.tif 000009
【図８】
2007299325.tif 000010
【図９】
2007299325.tif 000011
【図１０】
2007299325.tif 000012
【図１１】
2007299325.tif 000013
【図１２】
2007299325.tif 000014