このページを共有

# 例：最後に入力された値の格納

この例では、TDConnection を使用して、アクション間の維持データを実装する方法を例示します。ルーチン内の変数の寿命は、ルーチンが動作中である期間のみです。このため、維持データを後で利用する必要がある場合、維持データを格納する必要があります。可能であるときは、外部オブジェクト、ファイル、またはレジストリを使用するのではなく、常に ALM を使用して維持データを格納することを推奨します。

この例では、ユーザ定義関数 `SW_KeepLastValue` は、ユーザが不具合を送信するときに、Settings オブジェクトを使用して、［BG_DETECTION_VERSION］`,`［BG_USER_01］`,`［BG_USER_03］フィールドに入力された値を保存します。このユーザが新規不具合を追加するとき、これらの値が取得され、標準設定値として割り当てられます。

ユーザによって新規不具合が送信される前に、`Bug_CanPost` から `SET` アクションを引数にしてユーザ定義関数が呼び出されます。フィールド内の値が格納されます。

    Function Bug_CanPost()
            ' 関数の戻り値を初期化して、
    	 ' 予期しない動作を防ぎます。
            Bug_CanPost = True
            If Bug_Fields("BG_BUG_ID").Value = "" Then
                SW_KeepLastValue ("SET")
            End If
    End Function

`Bug_New` イベント・プロシージャから `GET` アクションを引数にして関数が呼び出されます。ユーザが新しい不具合を追加すると、このユーザのフィールドで格納された値が、これらのフィールドに入力されます。

    Sub Bug_New()
            SW_KeepLastValue ("GET")
    End Sub

パラメータとして引き渡されたアクションに応じて、ユーザ定義関数 `SW_KeepLastValue` は現在のユーザの共通設定テーブルのフィールドの値を格納したり、Settings オブジェクトから値を読み取り、適切なフィールドに値を割り当てます。

    Sub SW_KeepLastValue(action)
    Dim tdc, vals, flds
    Dim uset, pairs, pair
    Dim bld
    On Error Resume Next
            bld = ""
            Set tdc = TDConnection
            Set uset = tdc.UserSettings
            If action = "SET" Then
                flds = Array("BG_DETECTION_VERSION", _
                "BG_USER_01", "BG_USER_03")
                vals = ""
                For i = 0 To UBound(flds)
                    If vals <> "" Then vals = vals & ";"
                    vals = vals & flds(i) & "=" & _
    		 Bug_Fields(flds(i)).Value
                Next
                'カテゴリ KeepLValueSetting を開きます
                uset.Open ("KeepLValueSetting")
                'カテゴリ KeepLValueSetting で KeepValueFields を設定します
                uset.Value("KeepValueFields") = vals
                uset.Close
            End If 'SET
            If action = "GET" Then
                uset.Open ("KeepLValueSetting")
                vals = uset.Value("KeepValueFields")
                If vals <> "" Then
                    pairs = Split(vals, ";")
                    For i = 0 To UBound(pairs)
                        pair = Split(pairs(i), "=")
                        If UBound(pair) = 1 Then
                            Select Case pair(0)
                                Case "BG_USER_03"
                                    bld = pair(1)
                                Case Else
                                    If Bug_Fields(pair(0)).Value = "" Then
                                       Bug_Fields(pair(0)).Value = pair(1)
    				 End If
                            End Select
                            If Bug_Fields("BG_DETECTION_VERSION").Value _
    			 <> ""
                            And bld <> "" Then
                                SW_SetLists_VersionsBuilds _
                                "BG_DETECTION_VERSION", _
                                "BG_USER_03"
                                Bug_Fields("BG_USER_03").Value = bld
                                If Err.Number <> 0 Then Err.Clear
                            End If 'Bug_Fields
                        End If 'UBound(pair)
                    Next
                End If 'vals <> ""
            End If 'GET
            uset.Close
            PrintError ("Keep Last Value (" & action & ")")
            On Error GoTo 0
    End Sub

https://admhelp.microfocus.com ALM 8942
検索結果の改善のヒント... ALM ヘルプセンター ALM ヘルプセンター ALM ヘルプ 17.0 すべてローカル・ヘルプセンターの表示オンライン・ヘルプセンターの表示戻るブラウザ履歴で元に戻る進むブラウザ履歴で前に進む検索の強調表示を解除次のトピック次のトピックに移動前のトピック前のトピックに移動現在のトピックを印刷バージョン: