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