A. リスト・コンポーネントで、コンボ・ボックスのEditAppearanceが使われるのは、フィールドのコンポーネント・ソースにピックリストが存在し、列のUsePicklistプロパティがTRUEである場合です。そうでなければEditAppearanceは必要ありません。
Q. コンボ・ボックスが表示されません。
A. グリッド内にコンボ・ボックスの形でフィールドを表示したい場合、次の点を確認してください。
編集しようとしているフィールドのコンポーネント・ソースにピックリストが定義されていること
列のReadOnlyプロパティがFALSEであること
列のUsePicklistプロパティがTRUEであること
PRIM_EVPLに対して使う、DefaultVisual(true)と設定したピックリストを作成しました。このコンポーネントにはAppearance(DropDown)プロパティもあります。
A. この場合、列のUsePicklistプロパティがFALSEになっています。TRUEにすればDropDownとして表示されるはずです。それでもうまくいかない場合は、グリッド内にドロップダウン・リストを表示する、上のサンプルと細かく見比べてみてください。
Q. リストに対してAdd_Entryを実行したとき、ピックリストの各項目のテキストが表示されてしまうのはなぜですか。A. リスト上のフィールドに対してピックリストを適用した場合、表示される内容は、Add_Entryを実行した時点の値と、ピックリストのNoMatchActionプロパティによって決まります。詳しくはNoMatchActionプロパティの使用例を参照してください。
Q. UsePicklistプロパティとは何ですか。A. PRIM_EVEF、PRIM_EVSE、PRIM_GDCL、PRIM_LVCL、PRIM_TVCLには、UsePicklistというプロパティがあります。これは設計時にのみ必要となるプロパティです。コンポーネントの表示方法について、フィールドに別途指定したピックリストを援用するかどうか、切り替える役割があります。
例:数値フィールドの表示方法として「PRIM_EVSE(SpinEdit)」が定義され、さらにピックリストも指定されているとしましょう。UsePicklistプロパティがFALSEであれば、スピン編集ボックスの形で表示したとき、所定の数値範囲にわたって値を調整するという、普通の使い方ができるようになります。一方、TRUEであれば、ピックリストに列挙されている値を順に切り替える、という使い方になります。
このプロパティの目的は、旧版との互換性を維持しながら新しい機能も使えるようにすることです。旧コンポーネントもUsePicklist = FALSEであれば従来通りの動作をする一方、新しいコンポーネントをUsePicklist = TRUEとすれば、新たな機能が使えるようになるのです。
Q. NoMatchActionプロパティとは何ですか。A. これはPRIM_PKLTのプロパティで、ピックリストに載っていない値が設定されたときの動作を指定するために使います。
Q. DisplayAppearanceプロパティ、EditAppearanceプロパティの省略値はどのようになっていますか。A. フィールドの特性を問い合わせ、最も適していると思われる表示方法を自動判定するようになっています。したがって、設計工程において、コンポーネント・エディターで編集している際も、フィールドを追加すれば、最も適していると思われる方法で編集画面に表示されます。
例えば次のように操作してみましょう。
1. 新しいフィールド(alpha 5)を作成してください。
2. フィールドのコンポーネント・ソースを開き、VisualPicklist(PRIM_EVPL)を追加します。
3. VisualPicklistのAppearanceプロパティをCheckBoxに変更します。
4. VisualPicklistのDefaultVisualプロパティをTRUEに変更します。
5. フィールドを保存し、グリッド内の列として表示してみてください。
DisplayAppearanceおよびEditAppearanceが省略値のままであれば、リストの各項目がチェック・ボックスの形で表示されることがわかります。
LANSA がフィールドをどのように解釈して適切な省略値を探しだすかについでは、各プロパティの機能ヘルプをダブルクリックして参照してください。
DisplayAppearanceおよびEditAppearanceの値が省略値のままであれば、適切な表示方法が推測されますが、それが常に最適であるとは限らないので、必要であれば他の表示方法を明示的に指定してください。
Q. 編集ボックスのビジュアライゼーションを指定できないのですがなぜでしょうか。A. おそらくPRIM_EVEFのUsePicklistプロパティがTRUEであるためです。FALSEにすれば編集できるようになるはずです。
Q. DefaultVisualプロパティとは何ですか。A. フィールドのビジュアライゼーションの省略値を表すプロパティです。「DefaultVisual(TRUE)」と指定しておけば、「(フィールド名).Visual」という形で指定されたとき、この表示方法が使われます。
Q. なぜこのような込み入った構成なのですか。A. そんなことはありません。込み入っているように思われるのであれば、もう一度説明を読み直してみてください。関連する用語の意味はすべてわかっているでしょうか。まず何をしたいのかを明確にし、それに最も近いサンプルを探してください。
Q. フィールド名を「VisualEdit」としているのに、フォーム・ソースを見ると「.Visual」となっています。どうしてでしょうか。A. フォーム上では、「VisualEdit」でも「.Visual」でも同じフィールドを表します。これはフィールドにDefaultVisual(TRUE)プロパティが設定されているからです。DefaultVisual(TRUE)プロパティが設定されたクラスは、本来の名前のほか、「.Visual」という識別子でも参照できます。逆に、DefaultVisual(TRUE)プロパティを設定するクラスを変更するだけで、「.Visual」として参照されるクラスが切り替わることになります。
Q. プロンプタから対応する(呼び出し元)フィールドに値を渡すにはどうすればよいですか。A. プロンプタ・フォームに適当なプロパティを定義し、これをフォームのDefaultプロパティに設定してください。すると、このプロパティを介して値を返せるようになります。
Q. プロンプタが表示されないのですがどうしてでしょうか。あるフィールドにプロンプタを設定したのにそれを表す省略記号 (...) ボタンが表示されない場合、ShowPrompterプロパティがFALSEである可能性があります。これをTRUEにすれば省略記号 (...) ボタンが現れ、プロンプタが使えるようになるはずです。
Q. スピン編集ボックスは数値フィールドに対してしか使えないのですか。A. いいえ。ピックリストを定義したフィールドに対しても使えます。この場合、ピックリストに列挙されている項目の中から、順次選択を切り替えるという動作になります。Q. チェック・ボックスが灰色表示になるのですがどうしてでしょうか。A. ピックリストに列挙されている先頭または末尾の値に、フィールドの値が一致しない場合、チェック・ボックスは灰色表示になります。