フック一覧 SetDerived (項目フック) 前の項目フック 次の項目フック

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

★ 特定のお客様向けにご提供したフックメソッド (汎用化が不十分かもしれません)

SetDerived 項目フックメソッド

役割 (この項目フックメソッドに委託されている処理)

この項目の派生元項目へのデータのインプットの完結を契機として、この画面の項目のレイアウトを変更する。

配置 (ツーピーススタイルの場合にこの項目フックメソッドをどこに配置できるか)

ローカルピースに配置するか、または配置しない。セントラルピースに配置することは禁止されている。

代表的な書き方 (詳しい構文はフックメソッドの書き方を参照)

VB での書き方:
 Friend Function SetDerived(パラメタ宣言列) As 型名
 または
 Friend Function 項目略称_SetDerived(パラメタ宣言列) As 型名

パラメタ宣言列の中には、この項目フックメソッド固有のパラメタとして ByVal Rm_Object As Object を含めることができる。

C# での書き方:
 internal 型名 SetDerived(パラメタ宣言列)
 または
 internal 型名 項目略称_SetDerived(パラメタ宣言列)

パラメタ宣言列の中には、この項目フックメソッド固有のパラメタとして object Rm_Object を含めることができる。

Java での書き方:
 型名 SetDerived(パラメタ宣言列)
 または
 型名 項目略称_SetDerived(パラメタ宣言列)

パラメタ宣言列の中には、この項目フックメソッド固有のパラメタとして Object Rm_Object を含めることができる。

Rm_Object には、BackToLocalWith メソッドによってセントラル側から送り込まれた送付オブジェクトが設定されている。

呼び出される契機 (以下が切っ掛けとなりこのフックメソッドが呼び出される)

この項目の派生元項目に関する Check 系フックメソッドがエラーを検出せずに処理を終えた直後。または、この項目の派生元項目に関する SetDerived 系フックメソッドが動作を終えた直後。または、初期値派生オプションをオンに指定してある場合には、この項目の派生元項目に対して InitVal 系フックメソッドによって初期値が設定された直後。

戻り値の意味とデフォルト動作 (戻り値による ItemBase への伝言)

この項目に派生値として設定すべき値 (数値または文字列)。

デフォルト動作: なし。

代行メッセージ (処理の流れに応じて発せられるメッセージ; カスタマイズ可能)

(関係する代行メッセージなし)

使用上のヒントと注意事項

このフックメソッドのパラメタとして指定した一つまたは複数の項目が、派生元項目になる。

複数の派生元項目がある場合、それぞれの派生元の値の変化に応じてこのフックメソッドが呼び出されることになる。

項目に値を設定する方法には、キーボードやマウスで直接インプットする方法 (手入力) と他の項目へのインプットを契機とする SetDerived フックメソッドで値を設定する方法 (派生設定) の 2 種類がある。ところで、RelCheck フックメソッドは項目間の関係に関する整合性をチェックするものであるが、これが呼び出されるのは、手入力による場合であって、派生設定の場合には呼び出されないことに注意が必要である。すなわち、SetDerived フックメソッドの中で項目の値を派生設定する場合には、もしも RelCheck フックメソッドがあれば、そこで行う関係チェックに矛盾しない値にする必要がある。

普通には、項目への値の設定は、手入力または派生設定のどちらか一方で行うだけである。しかし、手入力と派生設定の両方を用いる可能性のある項目も存在する。このような項目を二股データ項目と呼ぶ。すなわち、二股データ項目とは、入力項目であって、なおかつ SetDerived フックメソッドによって値が設定されることのある項目である。

関連事項

Check 系の項目フックメソッドの戻り値が 0 の場合 (または Check 系の項目フックメソッドが組み込まれていない場合)、まず関連をもつ項目フックメソッド SetDerived (本フックメソッド) または DerivedLC が呼び出され、さらにこの後に関係をもつ項目群フックメソッド RelCheck または RelCheckLC が呼び出される。

SetDerived 項目フックメソッドに関係の深いプロパティに SetDerivedFrom, SetDerivedOrigin がある。

使用例

' SetDerived は、ヘッド部またはテール部の項目をトリガにして派生する。
' ボディ部またはテール部の項目はトリガにはならない。
Friend Function SetDerived(ByVal fB As FormBase, ByVal Rm_Object As Object, ByVal Cd_Error As Integer, ByVal AAAA As Decimal, ByVal BBBB As String, ByVal CCCC As String) As Boolean
    If Cd_Error = 0 Then
        For I As Integer = 0 To fB.MaxDspC
            If AAAA >= 2 Then
                CType(fB.myForm, Fr_Form).Bd_CCCC(I).Visible = True
            Else
                CType(fB.myForm, Fr_Form).Bd_CCCC(I).Visible = False
            End If
        Next I
    End If
End Function
// SetDerived は、ヘッド部またはテール部の項目をトリガにして派生する。
// ボディ部またはテール部の項目はトリガにはならない。
internal string SetDerived( FormBase fB, Object Rm_Object, int Cd_Error, decimal AAAA, string BBBB, string CCCC ) {
    if (Cd_Error == 0) {
        for (int i = 0; i <= fB.MaxDspC; i++) {
            if (AAAA >= 2) {
                ((Fr_Form)fB.myForm).Bd_CCCC[i].Visible = true;
            }
            else {
                ((Fr_Form)fB.myForm).Bd_CCCC[i].Visible = false;
            }
        }
    }
    return string.Empty;
} // SetDerived
// SetDerived は、ヘッド部またはテール部の項目をトリガにして派生する。
// ボディ部またはテール部の項目はトリガにはならない。
String SetDerived( FormBase fB, Object Rm_Object,
        int Cd_Error, BigDecimal AAAA, String BBBB, String CCCC ) {
    if (Cd_Error == 0) {
        for (int i = 0; i <= fB.MaxDspC; i++) {
            if (AAAA.intValue() >= 2) {
                ((Fr_Form) fB.myForm).Bd_CCCC[i].setVisible(true);
            } else {
                ((Fr_Form) fB.myForm).Bd_CCCC[i].setVisible(false);
            }
        }
    }
    return "";
} // SetDerived