Example: Storing the Last Values Entered
This example shows how to use the TDConnection object to implement persistent data between actions. The lifetime of a variable in a routine is only for the routine run. Therefore, persistent data must be stored if it must be available later. It is recommended that you use the OpenText Application Quality Management API to store persistent data whenever possible instead of using external objects, files, or the registry.
In this example, a user-defined function SW_KeepLastValue uses the Settings object to save the values typed into the fields BG_DETECTION_VERSION, BG_USER_01, and BG_USER_03 when a user posts a defect. These values are retrieved and assigned as default values when this user adds a new defect.
The user-defined function is called with the SET action from Bug_CanPost, before a new defect is posted by the user. The values in the fields are stored.
Function Bug_CanPost()
' Initialize the function's return value to
' avoid unpredictable behavior.
Bug_CanPost = True
If Bug_Fields("BG_BUG_ID").Value = "" Then
SW_KeepLastValue ("SET")
End If
End Function
The function is called with the GET action from the Bug_New event procedure. When a user adds a new defect, the values stored in the fields for this user are entered into these fields.
Sub Bug_New()
SW_KeepLastValue ("GET")
End Sub
Depending on the action passed as a parameter, the user-defined function SW_KeepLastValue stores the values of the fields in the common settings table for the current user, or reads the values from the Settings object and assigns the values to the appropriate fields.
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
'Open category KeepLValueSetting
uset.Open ("KeepLValueSetting")
'Setting KeepValueFields in category KeepLValueSetting
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

