基本仕様 第 9 章 前の章 次の章

VB C# ALL プログラミング言語によるフィルタ (ここで選んだ言語で選別された説明や図だけが表示されます)

9. 項目の色指定

ここには、MANDALA コントロールのうち、テキストボックス、コンボボックス、チェックボックスに対応づけた項目 (論理的な項目) ついての色指定に関する基本仕様および拡張仕様が書いてあります。

MANDALA コントロールは、スクロールされることもあるので、物理的なコントロールそれ自体の ForeColor や BackColor プロパティを設定するのでは不都合です。そこで、スクロールされてもそれに追従するように、論理的な項目ごとに色指定ができるようになっています。

なお、上で述べた以外の MANDALA コントロールおよび 非 MANDALA コントロールの色については、MANDALA.net は何の制御もしていませんから、もしも必要ならば、Response などの適当なフックメソッドの中で VB または C# のステートメントを使って、自由に色を設定したり変更したりすることができます。ただし、コントロールに対して指定した色は、データと一緒にスクロールされないことにご注意ください。

この章には、色指定について、以下の順に記述してあります。

9.1 色に関する基本仕様

9.2 色に関する拡張仕様

9.3 色指定機能に関する使用例


9.1 色に関する基本仕様

MANDALA コントロールの文字色 (ForeColor) は、黒が基本です。ただし、文字色は、次の場合に黒以外の色に変化します。すなわち、MANDALA コントロールにインプットされた値が (項目の単独チェックで) エラーだと判定された場合には、文字色が赤に変化します。また、MANDALA コントロールにインプットされた値が“関係チェックエラー”だと判定された場合には、文字色がマゼンタ (Magenta) に変化します。

なお、MANDALA コントロールに値をインプットしている最中は、文字色が青緑色つまりカルガモ色 (Teal) に変化します。こうなっているので、MANDALA コントロールの値が確定しているかどうかが一目瞭然となり、デバッグなどの際にも状態がわかるので便利です。

文字色:    基本色は黒
 (ForeColor)  一時的な色として、赤、マゼンタ、青緑

MANDALA コントロールの背景色 (BackColor) は、白が基本です。ただし、背景色は、次の場合に白以外の色に変化します。すなわち、必須入力項目に何もインプットされなかったということが検出された場合には、背景色が赤に変化します。また、何もインプットされないために値が“関係チェックエラー”だと判定された場合には、背景色がマゼンタに変化します。

なお、MANDALA.net の画面オプションというダイアログボックスによって、ブライト処理の指定をすると、カーソルがとどまっているテキストボックスがどこにあるのか一目で分かるように背景色が一時的に黄色に変化します。

背景色:    基本色は白
 (BackColor)  一時的な色として、赤、マゼンタ、黄色

9.2 色に関する拡張仕様

拡張仕様では、上記の色に関する基本仕様に対して次の二つの点が拡張されています。

--- 時代遅れの注意事項ですが、色の選択にあたっては、ディスプレイでの表示可能色に注意を払うことが必要です。たとえば、256 色しか表示できないディスプレイを使用する可能性がある場合には、淡い色がきれいに表示されないことがあります。そういった表示可能色が少ないディスプレイが使われる可能性がある場合には、実際に表示してみてから、ご使用になる色を決定することをお勧めいたします。---

9.2.1 一時的な色をお好みの色に変更する機能

MANDALA コントロールの背景色 (BackColor) や文字色 (ForeColor) は、一時的に、MANDALA.net によって赤やマゼンタや青緑色や黄色に変更されることがありますが、こうした“一時的な色”をお好みの色に変更できます。

一時的な色の変更は、クラス Ae_MsgL0 の中で宣言されている以下の ReadOnly 変数の定義を変更することによって行えます。

クラス Ae_MsgL0 は、プロジェクト全体にわたる標準化のために (個々にカスタマイズするのではなく) 各開発プロジェクトごとにカスタマイズすることをお勧めいたします。

    Friend ReadOnly COLOR_BrightON As System.Drawing.Color = System.Drawing.Color.Yellow

    Friend ReadOnly COLOR_Incomplete As System.Drawing.Color = System.Drawing.Color.Teal

    Friend ReadOnly COLOR_CheckError As System.Drawing.Color = System.Drawing.Color.Red

    Friend ReadOnly COLOR_RelCheck As System.Drawing.Color = System.Drawing.Color.Magenta
    internal readonly System.Drawing.Color COLOR_BrightON = System.Drawing.Color.Yellow;

    internal readonly System.Drawing.Color COLOR_Incomplete = System.Drawing.Color.Teal;

    internal readonly System.Drawing.Color COLOR_CheckError = System.Drawing.Color.Red;

    internal readonly System.Drawing.Color COLOR_RelCheck = System.Drawing.Color.Magenta;
    readonly java.awt.Color COLOR_BrightON = java.awt.Color.yellow;

    readonly java.awt.Color COLOR_Incomplete = new java.awt.Color(0, 128, 128);

    readonly java.awt.Color COLOR_CheckError = java.awt.Color.red;

    readonly java.awt.Color COLOR_RelCheck = java.awt.Color.magenta;

このようにして行った一時的な色の変更は、プロジェクト内のすべての MANDALA フォームに適用されることになります。ですから、一時的な色については、各項目ごとに別々のお好みの色を指定することはできません。全項目に適用される一時的な色を一律に変更することしかできません。

◇ サブクラスを作成して変更する方法

クラス Ae_MsgL0 を変更した場合には、これらのクラスモジュールが更新される度に、同じ変更を繰り返すことが必要になります。 そこで、色に関するカスタマイズをスマートに行うには、以下のようにクラス Ae_MsgL0 のサブクラスとなるクラスモジュールを作成してプロジェクトに組み込んで、このサブクラスの中で上記の変数の値を指定するのがよいでしょう。 なお、このようにした場合には、コード合成ツールによる再合成が必要です。

サブクラスの作成方法については、8.2 サブクラスの作成によるカスタマイズも合わせて参照してください。

Friend Class Ae_MsgLxx : Inherits Ae_MsgL0

    Friend Sub New(ByVal pm_fB As AppliTech.WorkFrame.FormBase)
        MyBase.new(pm_fB)
    End Sub ' New

    Friend Shadows ReadOnly COLOR_BrightON As System.Drawing.Color = System.Drawing.Color.LightGreen

    Friend Shadows ReadOnly COLOR_Incomplete As System.Drawing.Color = ・・・

    Friend Shadows ReadOnly COLOR_CheckError As System.Drawing.Color = ・・・

    Friend Shadows ReadOnly COLOR_RelCheck As System.Drawing.Color = ・・・

End Class ' Ae_MsgLxx
internal class Ae_MsgLxx : Ae_MsgL0 {
    internal Ae_MsgLxx( AppliTech.WorkFrame.FormBase pm_fB ) : base(pm_fB) {
    }
 
    internal new readonly System.Drawing.Color COLOR_BrightON = System.Drawing.Color.LightGreen;

    internal new readonly System.Drawing.Color COLOR_Incomplete = ・・・;

    internal new readonly System.Drawing.Color COLOR_CheckError = ・・・;

    internal new readonly System.Drawing.Color COLOR_RelCheck = ・・・;

} // Ae_MsgLxx
class Ae_MsgLxx extends Ae_MsgL0 {
    Ae_MsgLxx( AppliTech.WorkFrame.FormBase pm_fB ) {
        super(pm_fB);
    }
 
    final java.awt.Color COLOR_BrightON = new java.awt.Color(128, 255, 255);

    final java.awt.Color COLOR_Incomplete = ・・・;

    final java.awt.Color COLOR_CheckError = ・・・;

    final java.awt.Color COLOR_RelCheck = ・・・;

} // Ae_MsgLxx

なお、色には COLOR_ で始まる名前を付けています。この COLOR_ は、Color 用の Const (定数) であることを意味しますが、プログラミング言語上は定数ではなく ReadOnly 変数としています。 こうすることで、サブクラスを作成して変更することが可能になっています。

なお、色には COLOR_ で始まる名前を付けています。この COLOR_ は、Color 用の Const (定数) であることを意味しますが、プログラミング言語上は final 変数としています。 こうすることで、サブクラスを作成して変更することが可能になっています。

9.2.2 各 MANDALA コントロールの基本色をお好みの色に指定する機能

MANDALA コントロールの背景色 (BackColor) は、白が基本であり、MANDALA コントロールの文字色 (ForeColor) は、黒が基本です。この二つの基本色を各項目ごとにお好みの色に指定できます。

「各項目ごとに」 と言いましたが、正確には、「各論理項目ごとに」 指定できると言うべきです。すなわち、ボディ部や拡張ボディ部の項目に関しては、何行目の明細データの何という項目の基本色を何色にするというような指定ができます。そして、ここで指定した色は、データと一緒にスクロールします。

基本色を各論理項目ごとにお好みの色に指定するのは、すこし手間がかかりますから、一律に変更するだけでよければ、クラス Ae_MsgL0 の中で宣言されている以下の ReadOnly 変数の定義を変更することによって行う方が簡単です。 なお、この方法をスマートにしたのが、上述のサブクラスを作成して変更する方法です。

    Friend ReadOnly COLOR_Checked As System.Drawing.Color = System.Drawing.Color.Black

    Friend ReadOnly COLOR_NormalBack As System.Drawing.Color = System.Drawing.Color.White
    internal readonly System.Drawing.Color COLOR_Checked = System.Drawing.Color.Black;

    internal readonly System.Drawing.Color COLOR_NormalBack = System.Drawing.Color.White;
    final java.awt.Color COLOR_Checked = java.awt.Color.black;

    final java.awt.Color COLOR_NormalBack = java.awt.Color.white;

一律に変更するのではなく、基本色を各論理項目ごとにお好みの色に指定するには、以下の三つの指定をしてください。なお、この場合には、上記の二つの ReadOnly 変数を変更しないでください。

◇ 画面オプションというダイアログボックスの指定

ラベルコントロールについても個別色指定をしたい場合には、MANDALA.net の画面オプションというダイアログボックスのオプション Label の個別色指定をオンにしてください。

なお、複数の MANDALA フォームからなるプロジェクトの場合には、すべての MANDALA フォームに対して上記の指定をしてください。

◇ 使用する色をパレットに設定

基本色には、文字色 (ForeColor) と背景色 (BackColor) の二つがありますが、これらのそれぞれに以下のように 0 番から 9 番までの 10 個のパレットを用意してあります。ですから、これらのパレットに、ご使用になる色を設定してください。

文字色パレット: fB.ForeColors(0), fB.ForeColors(1) 〜 fB.ForeColors(9)

背景色パレット: fB.BackColors(0), fB.BackColors(1) 〜 fB.BackColors(9)

なお、fB.ForeColors(0) には黒 (COLOR_Checked) が設定されていますし、fB.BackColors(0) には白 (COLOR_NormalBack) が設定されています。これらは変更しないようにしてください。したがって、これ以外の色を使いたい場合には、1 番から 9 番までパレットにご使用になる色を設定してください。

パレットの設定は、次の例のように、プログラムの実行開始時に画面対応の BeginPrg (実行開始処理) フックメソッドの中で行ってください。

Friend Function 受注業務_実行開始処理(ByVal fB As FormBase) As Boolean
    ・・・・
    '
    fB.ForeColors(1) = System.Drawing.Color.Blue
    '
    fB.BackColors(1) = System.Drawing.Color.FromArgb(CType(192, Byte), _
                       CType(255, Byte), CType(255, Byte)) ' 淡い青緑
    fB.BackColors(2) = System.Drawing.Color.Green
    ・・・・
    '
    Return FormBase.BEGINPRG_Allow
End Function
internal bool 受注業務_実行開始処理( FormBase fB ) {
    ・・・・
    //
    fB.ForeColors(1) = System.Drawing.Color.Blue;
    //
    fB.BackColors(1) = System.Drawing.Color.FromArgb(((System.Byte)(192)),
                       ((System.Byte)(255)), ((System.Byte)(255))); // 淡い青緑
    fB.BackColors(2) = System.Drawing.Color.Green;
    ・・・・
    //
    return FormBase.BEGINPRG_Allow;
}
boolean 受注業務_実行開始処理( FormBase fB ) {
    ・・・・
    //
    fB.ForeColors(1) = java.awt.Color.blue;
    //
    fB.BackColors(1) = new java.awt.Color(192, 255, 255); // 淡い青緑
    fB.BackColors(2) = java.awt.Color.green;
    ・・・・
    //
    return FormBase.BEGINPRG_Allow;
}

◇ 各論理項目ごとに使用するパレットを指定

各論理項目の色は、直接指定するのではなく、間接的に色が入ったパレットを指定します。詳しく述べると、各論理項目ごとに、10 の位の数値で文字色 (ForeColor) のパレットを指定し、1 の位の数値で背景色 (BackColor) のパレットを指定します。たとえば、23 と指定すると、パレット 2 の文字色とパレット 3 の背景色を指定したことになります。

ところで、各論理項目とは、ボディ部や拡張ボディ部に関しては、ボディ部や拡張ボディ部の何行目のどの“コントロール”かということではなく、ボディ部や拡張ボディ部の何行目の明細データのどの“項目”かということです。このことは、ボディ部や拡張ボディ部をスクロールさせてみると分かります。サンプルアプリ Jutyu1 プロジェクトのボディ部をスクロールさせると、背景色もスクロールすることを確認してください。

このことにより、論理的な項目の数は、次の式で表されることが理解できるでしょう。

論理的な項目の数 = ヘッド部の項目の数
                + ボディ部の各明細の項目の数 × ボディ部のデータ行数
                + 拡張ボディ部の各明細の項目の数 × 拡張ボディ部のデータ行数
                + テール部の項目の数

それぞれの論理的な項目には、パレットの番号を示す仮想的な変数 CLs が配列の形で用意されていますから、その変数に値を設定することで色指定ができます。なお、配列の要素の個数は、上記の式で示される 「論理的な項目の数」 だけあります。

各項目の色をパレットを用いて指定する書き方
   fB.SetCLs(Px, 11)

各項目の色をパレットの値を求める書き方
   Pallet = fB.GetCLs(Px)

次のページに、各論理項目が、配列の何番目の要素に対応するのかを示します。

それぞれの論理的な項目には、パレットの番号を示す変数 CLs(Px) が対応していて、この値を設定することによって、それぞれの論理的な項目の文字色と背景色を指定できます。

たとえば、CLs(Px) に 23 を設定すると、文字色として fB.ForeColors(2) というパレットの色が使われます。そして、背景色として fB.BackColors(3) というパレットの色が使われます。

このように、10 の位の数値が文字色パレット番号を示し、1 の位の数値が背景色パレット番号を示します。

 CLs(0):                               ヘッド部の先頭の項目  
 CLs(1):                               ヘッド部の先頭の次の項目

   ・・・・                           (ヘッド部の項目)

 CLs(fB.BodyPx - 1):                   ヘッド部の最終の項目
----------------------------------------------------------------------------------------------
 CLs(fB.BodyPx):                       ボディ部の第 0 明細の先頭の項目  
 CLs(fB.BodyPx + 1):                   ボディ部の第 0 明細の先頭の次の項目

   ・・・・                           (ボディ部の第 0 明細の項目)

 CLs(fB.BodyPx + fB.BodyV - 1):        ボディ部の第 0 明細の最終の項目
----------------------------------------------

   ・・・・                           (ボディ部の各明細の項目)

----------------------------------------------
 CLs(fB.BodyPx + m * fB.BodyV):        ボディ部の第 m 明細 (最終明細) の先頭の項目  
 CLs(fB.BodyPx + m * fB.BodyV + 1):    ボディ部の第 m 明細 (最終明細) の先頭の次の項目

   ・・・・                           (ボディ部の第 m 明細 (最終明細) の項目)

 CLs(fB.EBodyPx - 1):                  ボディ部の第 m 明細 (最終明細) の最終の項目
----------------------------------------------------------------------------------------------
 CLs(fB.EBodyPx):                      拡張ボディ部の第 0 明細の先頭の項目  
 CLs(fB.EBodyPx + 1):                  拡張ボディ部の第 0 明細の先頭の次の項目

   ・・・・                           (拡張ボディ部の第 0 明細の項目)

 CLs(fB.EBodyPx + fB.EBodyV - 1):      拡張ボディ部の第 0 明細の最終の項目
----------------------------------------------

   ・・・・                           (拡張ボディ部の各明細の項目)

----------------------------------------------
 CLs(fB.EBodyPx + n * fB.EBodyV):      拡張ボディ部の第 n 明細 (最終明細) の先頭の項目  
 CLs(fB.EBodyPx + n * fB.EBodyV + 1):  拡張ボディ部の第 n 明細 (最終明細) の先頭の次の項目

   ・・・・                           (拡張ボディ部の第 n 明細 (最終明細) の項目)

 CLs(fB.TailPx - 1):                   拡張ボディ部の第 n 明細 (最終明細) の最終の項目
----------------------------------------------------------------------------------------------
 CLs(fB.TailPx):                       テール部の先頭の項目  
 CLs(fB.TailPx + 1):                   テール部の先頭の次の項目

   ・・・・                           (テール部の項目)

 CLs(fB.PrpC - 1):                     テール部の最終の項目

項目の個別色指定として以上の三つ (画面オプション、各パレットの色、各項目が使うパレット) の指定をすることで、各項目の文字色や背景色を自由に設定できます。

◇ 表示項目とインプット可能項目の背景色を別のものにする

個別色指定において表示項目とインプット可能項目の背景色を別のものにするという使い方が多いようです。そこで、この使い方に限っては非常に簡単に指定できるようにしてあります。各項目の文字色や背景色を個別に設定するのに比べて、格段に手間がかかりません。

すなわち、クラス Ae_MsgL0 の中で宣言されている以下の ReadOnly 変数の定義を変更することによって、表示項目とインプット可能項目の背景色を別のものすることができます。 なお、この方法をスマートにしたのが、上述のサブクラスを作成して変更する方法です。

    Friend ReadOnly COLOR_Indicator As System.Drawing.Color = System.Drawing.Color.White

    Friend ReadOnly COLOR_NormalBack As System.Drawing.Color = System.Drawing.Color.White
    internal readonly System.Drawing.Color COLOR_Indicator = System.Drawing.Color.White;

    internal readonly System.Drawing.Color COLOR_NormalBack = System.Drawing.Color.White;
    final java.awt.Color COLOR_Indicator = java.awt.Color.white;

    final java.awt.Color COLOR_NormalBack = java.awt.Color.white;

COLOR_Indicator には表示項目の背景色を指定し、COLOR_NormalBack にはインプット可能項目の背景色を指定してください。そして、ラベルコントロールに関しても色指定を有効にしたければ (1) 画面オプションというダイアログボックスのオプション Label の個別色指定という指定をすることを忘れないでください。特に、複数の MANDALA フォームからなるプロジェクトの場合には、すべての MANDALA フォームに対して指定をしてください。なお、この場合には、(2) 使用する色をパレットに設定、および (3) 各論理項目ごとに使用するパレットを指定は必要ありません。

9.3 色指定機能に関する使用例

9.3.1 ボディ部の項目の文字色を設定する例

ボディ部の明細行の背景色を 1 行おきに色を変える (奇数番目の明細行と偶数番目の明細行の色を別々にして見やすくする)。

Friend Function 受注業務_実行開始処理(ByVal fB As FormBase) As Boolean
    fB.BackColors(1) = System.Drawing.Color.FromArgb(CType(192, Byte), _
                       CType(255, Byte), CType(255, Byte)) ' 淡い青緑
    '
    Dim Px As Integer
    For Px = fB.BodyPx To fB.EBodyPx - 1 ' ボディ部の項目を対象に
        If ((Px - fB.BodyPx) \ fB.BodyV) Mod 2 = 1 Then ' 明細行インデックスが奇数
            fB.SetCLs(Px, 1)
        End If
    Next Px
    '
    Return FormBase.BEGINPRG_Allow
End Function
internal bool 受注業務_実行開始処理( FormBase fB ) {
    fB.BackColors(1) = System.Drawing.Color.FromArgb(((System.Byte)(192)),
                       ((System.Byte)(255)), ((System.Byte)(255))); // 淡い青緑
    //
    for (int Px = fB.BodyPx ; Px <= fB.EBodyPx; Px++) { // ボディ部の項目を対象に
        if( ((Px - fB.BodyPx) / fB.BodyV) % 2 == 1 ) { // 明細行インデックスが奇数
            fB.SetCLs(Px, 1);
        }
    } // Px
    //
    return FormBase.BEGINPRG_Allow;
}
boolean 受注業務_実行開始処理( FormBase fB ) {
    fB.BackColors(1) = new java.awt.Color(192, 255, 255); // 淡い青緑
    //
    for (int Px = fB.BodyPx ; Px <= fB.EBodyPx; Px++) { // ボディ部の項目を対象に
        if( ((Px - fB.BodyPx) / fB.BodyV) % 2 == 1 ) { // 明細行インデックスが奇数
            fB.SetCLs(Px, 1);
        }
    } // Px
    //
    return FormBase.BEGINPRG_Allow;
}

9.3.2 ヘッド部の項目の文字色を設定する例

Friend Function 受注業務_実行開始処理(ByVal fB As FormBase) As Boolean
    fB.ForeColors(2) = System.Drawing.Color.Blue
    '
    Dim Px As Integer
    For Px = 0 To fB.BodyPx - 1 ' ヘッド部の項目を対象に
        fB.SetCLs(Px, 20)
    Next Px
    '
    Return FormBase.BEGINPRG_Allow
End Function
internal bool 受注業務_実行開始処理( FormBase fB ) {
    fB.ForeColors(2) = System.Drawing.Color.Blue;
    //
    for (int Px = 0; Px < fB.BodyPx; Px++) { // ヘッド部の項目を対象に
        fB.SetCLs(Px, 20);
    } // Px
    //
    return FormBase.BEGINPRG_Allow;
}
boolean 受注業務_実行開始処理( FormBase fB ) {
    fB.ForeColors(2) = java.awt.Color.blue;
    //
    for (int Px = 0; Px < fB.BodyPx; Px++) { // ヘッド部の項目を対象に
        fB.SetCLs(Px, 20);
    } // Px
    //
    return FormBase.BEGINPRG_Allow;
}

ヘッド部の特定の項目の文字色と背景色を設定する。このように、特定の項目だけの設定には、画面対応ではなくデータ項目対応の BeginPrg (実行開始処理) フックメソッドを使うことをお勧めいたします。

Friend Function 発注元名称_実行開始処理(ByVal fB As FormBase, _
    ByVal iB_発注元名称 As ItemBase) As Boolean
    '
    fB.ForeColors(5) = System.Drawing.Color.White
    '
    fB.BackColors(5) = System.Drawing.Color.Black
    '
    fB.SetCLs(iB_発注元名称.CpPx, 55)
    '
    Return ItemBase.BEGINPRG_Allow
End Function
internal bool 発注元名称_実行開始処理( FormBase fB , ItemBase iB_発注元名称 ) {
    //
    fB.ForeColors(5) = System.Drawing.Color.White;
    //
    fB.BackColors(5) = System.Drawing.Color.Black;
    //
    fB.SetCLs(iB_発注元名称.CpPx, 55);
    //
    return ItemBase.BEGINPRG_Allow;
}
boolean 発注元名称_実行開始処理( FormBase fB , ItemBase iB_発注元名称 ) {
    //
    fB.ForeColors(5) = java.awt.Color.white;
    //
    fB.BackColors(5) = java.awt.Color.black;
    //
    fB.SetCLs(iB_発注元名称.CpPx, 55);
    //
    return ItemBase.BEGINPRG_Allow;
}

9.3.3 テール部の項目の背景色を設定する例

Friend Function 受注業務_実行開始処理(ByVal fB As FormBase) As Boolean
    fB.BackColors(2) = &H80FF80
    '
    Dim Px As Integer
    For Px = fB.TailPx To fB.PrpC - 1 ' テール部の項目を対象に
        fB.SetCLs(Px, 2)
    Next Px
    '
    Return FormBase.BEGINPRG_Allow
End Function
internal bool 受注業務_実行開始処理( FormBase fB ) {
    fB.BackColors(2) = &H80FF80;
    //
    for (int Px = fB.TailPx; Px < fB.PrpC; Px++) { // テール部の項目を対象に
        fB.SetCLs(Px, 2);
    } // Px
    //
    return FormBase.BEGINPRG_Allow;
}
boolean 受注業務_実行開始処理( FormBase fB ) {
    fB.BackColors(2) = new java.awt.Color(&H80FF80);
    //
    for (int Px = fB.TailPx; Px < fB.PrpC; Px++) { // テール部の項目を対象に
        fB.SetCLs(Px, 2);
    } // Px
    //
    return FormBase.BEGINPRG_Allow;
}

ヘッド部やテール部の特定の項目の色を設定するには、以下のようにすることもできます。

Friend Function 受注業務_実行開始処理(ByVal fB As FormBase) As Boolean
    fB.BackColors(2) = &H80FF80
    '
    fB.SetCLs(ii_AppTypeN.Offset, 2)
    fB.SetCLs(ii_FormPrfx.Offset, 2)
    fB.SetCLs(ii_FormAbbr.Offset, 2)
    '
    Return FormBase.BEGINPRG_Allow
End Function
internal bool 受注業務_実行開始処理( FormBase fB ) {
    fB.BackColors(2) = &H80FF80;
    //
    fB.SetCLs(ii_AppTypeN.Offset, 2);
    fB.SetCLs(ii_FormPrfx.Offset, 2);
    fB.SetCLs(ii_FormAbbr.Offset, 2);
    //
    return FormBase.BEGINPRG_Allow;
}
boolean 受注業務_実行開始処理( FormBase fB ) {
    fB.BackColors(2) = new java.awt.Color(&H80FF80);
    //
    fB.SetCLs(ii_AppTypeN.Offset, 2);
    fB.SetCLs(ii_FormPrfx.Offset, 2);
    fB.SetCLs(ii_FormAbbr.Offset, 2);
    //
    return FormBase.BEGINPRG_Allow;
}

9.3.4 ボディ部の特定の項目の列の色を設定する例

ボディ部の特定の項目の列の文字色と背景色を設定する。このように、特定の項目だけの設定には、画面対応ではなくデータ項目対応の BeginPrg (実行開始処理) フックメソッドを使うことをお勧めします。

Friend Function 商品名称_実行開始処理(ByVal fB As FormBase, _
    ByVal iB_商品名称 As ItemBase) As Boolean
    fB.ForeColors(5) = System.Drawing.Color.White
    '
    fB.BackColors(5) = System.Drawing.Color.Black
    '
    Dim Px As Integer = iB_商品名称.CpPx
    While Px < fB.EBodyPx
        fB.SetCLs(Px, 55)
        Px += fB.BodyV
    End While
    '
    Return ItemBase.BEGINPRG_Allow
End Function
internal bool 商品名称_実行開始処理( FormBase fB , ItemBase iB_商品名称 ) {
    fB.ForeColors(5) = System.Drawing.Color.White;
    //
    fB.BackColors(5) = System.Drawing.Color.Black;
    //
    int Px = iB_商品名称.CpPx;
    while( Px < fB.EBodyPx ) {
        fB.SetCLs(Px, 55);
        Px += fB.BodyV;
    }
    //
    return ItemBase.BEGINPRG_Allow;
}
boolean 商品名称_実行開始処理( FormBase fB , ItemBase iB_商品名称 ) {
    fB.ForeColors(5) = java.awt.Color.white;
    //
    fB.BackColors(5) = java.awt.Color.black;
    //
    int Px = iB_商品名称.CpPx;
    while( Px < fB.EBodyPx ) {
        fB.SetCLs(Px, 55);
        Px += fB.BodyV;
    }
    //
    return ItemBase.BEGINPRG_Allow;
}