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に登録します。
* ======================================================================
* This IIP method (avEnrollVisualStyles) enroll all framework user
* visual styles. To use this routine define the visual style into the LANSA
* repository in the usual manner and then add a new invocation of
* avEnrollVisualStyle to the following routine. If the visual style is
* subsequently changed only this component needs to be recompiled to
* effect the change into all other components.
Mthroutine Name(avEnrollVisualStyles) Options(*REDEFINE)
...
* Test Style with red background for highlighting instance list rows
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)