Exemple : stockage des dernières valeurs saisies
Cet exemple montre comment utiliser l’objet TDConnection pour mettre en œuvre des données persistantes entre les actions. La durée de vie d’une variable dans une routine est uniquement celle de l’exécution de la routine. Par conséquent, les données persistantes doivent être stockées si elles doivent être disponibles ultérieurement. Il est recommandé d’utiliser l’API ALM pour stocker des données persistantes chaque fois que cela est possible, plutôt que d’utiliser des objets externes, des fichiers ou le registre.
Dans cet exemple, une fonction définie par l’utilisateur, SW_KeepLastValue, utilise l’objet Paramètres pour enregistrer les valeurs saisies dans les champs BG_DETECTION_VERSION, BG_USER_01 et BG_USER_03 lorsqu'un utilisateur enregistre une anomalie. Ces valeurs sont récupérées et attribuées comme valeurs par défaut lorsque cet utilisateur ajoute une nouvelle anomalie.
La fonction définie par l’utilisateur est appelée avec l’action SET de Bug_CanPost, avant qu'une nouvelle anomalie ne soit postée par l’utilisateur. Les valeurs des champs sont stockées.
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
La fonction est appelée avec l’action GET de la procédure de l’événement Bug_New. Lorsqu'un utilisateur ajoute une nouvelle anomalie, les valeurs enregistrées dans les champs pour cet utilisateur sont saisies dans ces champs.
Sub Bug_New()
SW_KeepLastValue ("GET")
End Sub
En fonction de l’action passée en paramètre, la fonction définie par l’utilisateur SW_KeepLastValue stocke les valeurs des champs dans la table des paramètres communs pour l’utilisateur actuel, ou lit les valeurs de l’objet Paramètres et affecte les valeurs aux champs appropriés.
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

