Visual LANSA フレームワーク ガイド > フレームワーク・プログラミング > インスタンスリストとインスタンスリスト・マネージャー > リスト・エントリーの色・スタイルの変更 > VLF-WIN の場合
VLF-WIN の場合

メソッド #avListManager.AddToList と UpdateListEntryData には RowColor というパラメータがあります。これは行の色の文字列を受け取るもので、内容は次の通りです:

1) ブランクまたは指定しない - 色は今のままです。

2) "DEFAULT"  - 通常の色に設定を戻します。

3) IDEで定義されたビジュアル・スタイル名とVLF(UF_SYSTMと同等のもの)で登録されたビジュアル・スタイル名

この機能をWindowsで利用するには、まず最初に使用したい色それぞれのビジュアル・スタイルを作成する必要があります。ユーザーのフレームワークで使用されている基本のビジュアル・スタイルをコピーすることも可能です。  このビジュアル・スタイルを編集し、normbackcolorに必要な値を設定します。

Function Options(*DIRECT)

begin_com role(*EXTENDS #PRIM_VS) default(#SCHEME)

define_com class(#PRIM_VSS) name(#SCHEME) captions(#CAPTION) titles(#CAPTION) values(#VALUE)

define_com class(#PRIM_VSI) name(#CAPTION) facename('VL Shell') fontsize(8) normbackcolor(192:215:249) textcolor(MenuText)

define_com class(#PRIM_VSI) name(#VALUE) alternbackcolor(192:215:249) bordercolor(WindowText) borderstyle(3DLeft) errorbackcolor(192:215:249) facename('VL Shell') fontsize(8) normbackcolor(Red) textcolor(MenuText)

End_Com

 

(必要であればVALUEの他のプロパティを変更することもできます。)

ビジュアル・スタイルを保存し、以下のような行を追加してユーザー・バージョンの UF_SYSTM に登録します。

* ======================================================================

* この IIP メソッド (avEnrollVisualStyles) は、フレームワーク・ユーザーのビジュアル・スタイルを

* すべて登録します。このルーチンを使用するには、ビジュアル・スタイルを通常通り、LANSA リポジトリに

* 定義して、avEnrollVisualStyle の新規の呼び出しを

* これに続くルーチンに追加します。その後ビジュアル・スタイルが変更された場合、

* このコンポーネントのみをリコンパイルすることで、

* この変更によるその他すべてのコンポーネントに与える影響も反映されます。

 

Mthroutine Name(avEnrollVisualStyles) Options(*REDEFINE)

 

...

 

* インスタンスリスト行を強調するための赤のテスト・スタイル

Invoke Method(#Com_Owner.avEnrollVisualStyle) Style(#<<name of my red visual style>>) Caption('Base Style with red')

 

Endroutine

 

ユーザー・バージョンのUF_SYSTMをコンパイルします。

これでフィルターやコマンド・ハンドラーからインスタンスリストを追加したり更新したりする際に次のように行の色を指定することができるようになります。

Invoke #avListManager.AddtoList Visualid1(#UF_VisID1) Visualid2(#UF_VisID2) AKey1(#DEPTMENT) AKey2(#SECTION)  Akey3(#Empno) RowColor(<<name of my red visual style>>)

 

その後この行を元の色に戻す場合は、次のようになります。

Invoke #avListManager.AddtoList Visualid1(#UF_VisID1) Visualid2(#UF_VisID2) AKey1(#DEPTMENT) AKey2(#SECTION)  Akey3(#Empno) RowColor(DEFAULT)

 

色をそのまま残して、RowColorを指定しない場合は以下の通りです:

Invoke #avListManager.AddtoList Visualid1(#UF_VisID1) Visualid2(#UF_VisID2) AKey1(#DEPTMENT) AKey2(#SECTION)  Akey3(#Empno)

 

もしくは、次のように*blanksを設定しても同じです:

Invoke #avListManager.AddtoList Visualid1(#UF_VisID1) Visualid2(#UF_VisID2) AKey1(#DEPTMENT) AKey2(#SECTION)  Akey3(#Empno) RowColor(*blanks)