FieldCust_AddDefect

ユーザ定義関数 FieldCust_AddDefect は関数 SetFieldApp を呼び出します。

関数はまず、すべてのフィールドを不可視、不要、場所 0 のページ 100 に表示されるように設定します。これにより、[プロジェクト カスタマイズ]ウィンドウの[プロジェクトのエンティティ]を使用して新しいフィールドを追加しても、レイアウトは変更されなくなります。

Bug_New イベント・プロシージャに FieldCust_AddDefect の呼び出しを追加して、ユーザが新規不具合を追加するときに、この関数がトリガされるようにします。

Sub Bug_New
        FieldCust_AddDefect
End Sub

コードはまず、すべてのユーザ・グループに共通のフィールドを処理します。このコードは、特定のユーザ・グループについてのみダイアログ・ボックス内に表示されるフィールド、ユーザによってプロパティが変化するフィールドには、条件ステートメントを使用します。

Sub FieldCust_AddDefect
        On Error Resume Next
	 ' 不具合のフィールドを初期化します
        For i= 0 To Bug_Fields.Count -1
            SetFieldApp Bug_Fields.FieldByID(i).FieldName, _
	     False, False, 100, 0
        Next
        ViewNum = 0
        PageNum = 0
    	' すべてのユーザ・グループに共通であるフィールドを設定します
        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
	 ' グループごとに異なるフィールドを設定します。
	 ' 1 人のユーザが複数のユーザ・グループに属したり、グループのいずれにも
	 ' 属さないようにすることができるため、Else ステートメントは必要ありません。
        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