動的POVメンバー・リスト

動的POVメンバー・リストは、1つ以上のディメンションの現在のPOVメンバーに基づいて動的に作成されます。

次のメンバー・リスト・ファイルの例では、動的POVのセクションを太字で示しています。

Sub EnumMemberLists()
Dim EntityLists(5)
If HS.Dimension = "Entity" Then
  EntityLists(1) = "AllEntities"
  EntityLists(2) = "AppCur"
  EntityLists(3) = "NoAppCur"
  EntityLists(4) = "Global(@POV)"
  EntityLists(5) = "POWN(@POV)"
  HS.SetMemberLists EntityLists
End If
End Sub

Sub EnumMembersInList()
If HS.Dimension = "Entity" Then
  If HS.MemberListID = 1 Then
    HS.AddEntityToList "","Corp_Ops"
    HS.AddEntityToList "","China"
    HS.AddEntityToList "","Colombia"
    HS.AddEntityToList "","Germany"
    HS.AddEntityToList "","Spain"
    HS.AddEntityToList "","UK"
  End If
  EntList=HS.Entity.List("","")
  AppCur=HS.AppSettings.Currency
    
  For each Ent in EntList
    If HS.Entity.DefCurrency(Ent)=AppCur Then
      If HS.MemberListID = 2 Then HS.AddEntityToList "",Ent
    ElseIf Ent<>"[None]" Then
      If HS.MemberListID = 3 Then HS.AddEntityToList "",Ent
    End If
  Next

  ScenPOV=HS.MemberListScenario
  YearPOV=HS.MemberListYear
  PerPOV=HS.MemberListPeriod
  EntPOV=HS.MemberListEntity

  If HS.MemberListID = 4 Or HS.MemberListID = 5 Then
    If ( EntPOV <> "" ) Then
      EntList=HS.Node.List("E#" & EntPOV, "[Descendants]", "S#" & ScenPOV & ".Y#" & YearPOV & ".P#" & PerPOV)

      If IsArray(EntList) Then
        For each Ent in EntList
          If Ent <> "[None]" Then
            If HS.Node.Method("S#" & ScenPOV & ".Y#" & YearPOV & ".P#" & PerPOV & ".E#" & EntPOV & "." & Ent)="GLOBAL" Then
              If HS.MemberListID = 4 Then HS.AddEntityToList "",Ent
            End If

            If HS.Node.POwn("S#" & ScenPOV & ".Y#" & YearPOV & ".P#" & PerPOV & ".E#" & EntPOV & "." & Ent) > 0.5 Then
              If HS.MemberListID = 5 Then HS.AddEntityToList "",Ent
            End If
          End If
        Next
      End If
    End If
  End If
End Sub