FieldCust_AddDefect
La fonction définie par l’utilisateur FieldCust_AddDefect appelle la fonction SetFieldApp.
La fonction définit d’abord tous les champs comme étant invisibles, non requis, et apparaissant à la page 100 à l’emplacement 0. Ainsi, si vous ajoutez un nouveau champ en utilisant le lien Entités de projet dans la fenêtre de personnalisation du projet, la mise en page ne sera pas modifiée.
Ajoutez un appel à FieldCust_AddDefect dans la procédure de l’événement Bug_New afin qu’il soit déclenché lorsqu’un utilisateur ajoute un nouveau défaut :
Sub Bug_New FieldCust_AddDefect End Sub
Tout d’abord, le code gère les champs qui sont communs à tous les groupes d’utilisateurs. Il utilise des instructions conditionnelles pour les champs qui n’apparaîtront dans la boîte de dialogue que pour des groupes d’utilisateurs spécifiques, ou qui auront des propriétés différentes pour différents utilisateurs.
Sub FieldCust_AddDefect
On Error Resume Next
' Initialize the fields of the defect
For i= 0 To Bug_Fields.Count -1
SetFieldApp Bug_Fields.FieldByID(i).FieldName, _
False, False, 100, 0
Next
ViewNum = 0
PageNum = 0
' Set fields that are in common for all user groups
SetFieldApp "BG_BUG_ID", True, True, PageNum, ViewNum
ViewNum = ViewNum + 1
SetFieldApp "BG_DESCRIPTION", True, False, PageNum, ViewNum
ViewNum = ViewNum + 1
SetFieldApp "BG_SUMMARY", True, True, PageNum, ViewNum
ViewNum = ViewNum + 1
SetFieldApp "BG_DETECTED_BY", True, True, PageNum, ViewNum
ViewNum = ViewNum + 1
SetFieldApp "BG_DETECTION_DATE", _
True, True, PageNum, ViewNum
ViewNum = ViewNum + 1
SetFieldApp "BG_DETECTION_VERSION", True, True, PageNum, _
ViewNum
ViewNum = ViewNum + 1
SetFieldApp "BG_SEVERITY", True, True, PageNum, ViewNum
ViewNum = ViewNum + 1
SetFieldApp "BG_PRIORITY", True, True, PageNum, ViewNum
ViewNum = ViewNum + 1
SetFieldApp "BG_PROJECT", True, False, PageNum, ViewNum
ViewNum = ViewNum + 1
SetFieldApp "BG_REPRODUCIBLE", True, False, PageNum, ViewNum
ViewNum = ViewNum + 1
SetFieldApp "BG_STATUS", True, False, PageNum, ViewNum
ViewNum = ViewNum + 1
' Set fields that are different for different user groups.
' Since one user can belong to multiple user groups,
' or none of these groups, there is no need for an Else statement.
If User.IsInGroup("Developer") Then
SetFieldApp "BG_PLANNED_CLOSING_VERSION", True, False, _
PageNum, ViewNum
ViewNum = ViewNum + 1
SetFieldApp "BG_PLANNED_FIX_TIME", True, False, PageNum, _
ViewNum
ViewNum = ViewNum + 1
End If
If User.IsInGroup("QATester") Then
PageNum = PageNum + 1
SetFieldApp "BG_USER_01", True, False, PageNum, ViewNum
ViewNum = ViewNum + 1
SetFieldApp "BG_USER_02", True, False, PageNum, ViewNum
ViewNum = ViewNum + 1
End If
SetFieldApp "BG_ACTUAL_FIX_TIME", True, False, PageNum, _
ViewNum
ViewNum = ViewNum + 1
' ...
PrintError "FieldCust_AddDefect"
On Error GoTo 0
End Sub

