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

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

InitValLC (初期値双方) 項目フックメソッド

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

この項目に初期値を設定する。

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

ローカルピースおよびセントラルピースの双方に同一のものを配置する、またはどちらにも配置しない。一方だけに配置することは禁止されている。

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

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

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

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

パラメタ宣言列の中には、項目名を含むようなパラメタを書くことができない。また、Di_This のような This を含むパラメタも書くことができない。

なお、フック名としては、InitValLC の他に初期値双方を用いることができる。

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

新たな画面データの処理を開始するとき。画面フックメソッド Init の直前に呼び出される。

また、項目初期化または明細行初期化の指示がなされたときも呼び出される。

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

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

デフォルト動作: InitValLC 画面フックメソッドが組み込まれていない場合の動作は、戻り値として Nothing (null) が設定された場合と同様である。

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

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

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

初期値を設定する際にセントラル側の特定の資源 (データベースの参照など) が必要な場合には、項目フックメソッド InitVal を用いるのがよい。セントラル側およびローカル側の特定の資源を必要としない場合には (あるいは双方に同じ資源がある場合には)、この項目フックメソッドを用いるのがよい。

この項目の値を参照してこの項目の初期値を決定するような場合には、項目フックメソッド InitVal を用いてください。

このフックメソッドで設定する値は、Check 系の項目フックメソッドでも RelCheck 系の項目群フックメソッドでもエラーにならないような値にしてください。

複数の項目のそれぞれに項目フックメソッド InitVal または InitValLC が組み込まれている場合には、それらの呼出しの順序がどのようになってもよいように、プログラミングする必要がある。
 すなわち、他の項目の値を参照してこの項目の初期値を決定するようなことはできない。このようなことが必要であれば、初期値派生の機構 (Derived または DerivedLC) を用いてください。

InitValLC は、項目初期化または明細行初期化の指示がなされたときにも呼び出される。これだけの理由ではないが、このフックメソッドの中でカウンタを更新するなどの履歴をもつ処理は問題を発生させるので、しないようにしてください。

関連事項

項目に値を設定する役割を果たす項目フックメソッドには、この他に Derived, DerivedLC, Furigana, InitVal, SList, Term がある。また、パラメタに ByRef 指定をした Check 系の項目フックメソッドによっても項目に値を設定することができる。

項目に値を設定する役割を果たす項目フックメソッドには、この他に Derived, DerivedLC, Furigana, InitVal, SList, Term がある。

使用例

Private Const クリア表示 As String = "   -  -  " ' 先頭は全角の空白

' 受注日付の初期値を設定する。
Friend Function 初期値双方(ByVal fB As FormBase, ByVal 受注日付 As String, ByVal 詳_受注日付 As ItemBase) As String
    If CType(fB.myFormHook, 受注業務).追加モードに移行直後 OrElse 受注日付 = String.Empty OrElse 受注日付.Trim() = クリア表示.Trim() Then
        Return FormBase.FormatDate(VB.DateAndTime.Today, 詳_受注日付.FormatChr) ' 本日の日付。
    Else
        Return FormBase.FormatDate(DateTime.Parse(受注日付), 詳_受注日付.FormatChr) ' 前の伝票の日付。
    End If
End Function ' 初期値双方
private const string クリア表示 = "   -  -  "; // 先頭は全角の空白

// 受注日付の初期値を設定する。
internal string 初期値双方( FormBase fB, string 受注日付, ItemBase 詳_受注日付 ) {
    if (((受注業務)fB.myFormHook).追加モードに移行直後 || 受注日付 == string.Empty || 受注日付.Trim() == クリア表示.Trim()) {
        return FormBase.FormatDate(DateTime.Now, 詳_受注日付.FormatChr); //本日の日付。
    }
    else {
        return FormBase.FormatDate(DateTime.Parse(受注日付), 詳_受注日付.FormatChr); //前の伝票の日付。
    }
} // 初期値双方
private final static String クリア表示 = "    -  -  "; // 先頭は全角の空白

// 受注日付の初期値を設定する。
String 初期値双方( FormBase fB, String 受注日付, ItemBase 詳_受注日付 ) {
    if (((受注業務) fB.myFormHook).追加モードに移行直後 || 受注日付.length() == 0;
            || 受注日付.trim() == クリア表示.trim()) {
        return FormBase.FormatDate(new java.util.Date(),
                                   詳_受注日付.FormatChr); // ----------
        // '本日の日付。
    } else {
        return FormBase.FormatDate(FormBase.CVDate(受注日付),
                                   詳_受注日付.FormatChr); // ----------
        // '前の伝票の日付。
    }
} // 初期値双方