EsbOtlQueryMembersByName

アウトラインをクエリーします。

構文

            EsbOtlQueryMembersByName
             (
            hOutline, pszMember, pPredicate, pCounts
            )
ByVal 
            hOutline
               As Long 
ByVal 
            pszMember
              As String
      
            pPredicate
             As ESB_PREDICATE_T
      
            pCounts
                As ESB_MBRCOUNTS_T
         
パラメータ説明

hOutline

Essbaseアウトライン・ハンドル。EsbOtlOpenOutlineQuery()から戻されている必要があります。

pszMember

操作を行うメンバーのメンバー名文字列。この値がNULLである場合、その次元の論理親を表し、アウトラインの最上部であるとみなされます。次のオプションでは、この値は無視されます:

  • ESB_NAMEDGENERATION

  • ESB_NAMEDLEVEL

  • ESB_USERATTRIBUTE

  • ESB_SEARCH

  • ESB_WILDSEARCH

pPredicate

クエリーを定義している構造体。この構造体のフィールドは、「注意」を参照してください。

pCounts

カウントに関する情報を定義している構造体。次のフィールドが含まれます:

  • ulStart- 戻される開始番号。

  • ulMaxCount- 戻されるメンバーのハンドルの最大数。

  • ulTotalCount- クエリーの実行結果において定義されるメンバーの合計数。

  • pulReturnCount- このクエリーにおいて戻されるメンバーのハンドルの数。

備考

戻り値

関数が正常終了した場合、戻り値は0になります。

         Declare Function EsbOtlQueryMembersByName Lib "ESBOTLN" 
(ByVal hOutline As Long, ByVal pszMember As String,
pPredicate As ESB_PREDICATE_T, pCounts As ESB_MBRCOUNTS_T) As Long
Declare Function EsbOtlFreeMember Lib "ESBOTLN" 
(ByVal hOutline As Long, ByVal hMember As Long) As Long

Sub ESB_OtlQueryMembersByName()
   Dim sts As Long
   Dim hOutline As Long
   Dim pszMember As String
   Dim ihMember As Long
   Dim Object As ESB_OBJDEF_T
   Dim MbrInfo As ESB_MBRINFO_T
   Dim Predicate As ESB_PREDICATE_T
   Dim Counts As ESB_MBRCOUNTS_T
   Dim Access As Integer
   Dim AppName As String
   Dim DbName As String
   
   pszMember =  "Qtr1"
   AppName = "Sample"
   DbName = "Basic"
   sts = EsbOtlOpenOutlineQuery(hCtx, Object, hOutline)   'open outline
   If sts = 0 Then                                        'proceed if open successful
                                                          'else message with error
      Predicate.ulQuery = ESB_CHILDREN
      Predicate.pszDimension = "Year"
      Counts.ulStart = 0
      Counts.ulMaxCount = 10
      If sts = 0 Then
         sts = EsbOtlQueryMembersByName(hOutline, pszMember, Predicate, Counts)
        If sts = 0 And Counts.ulReturnCount <> 0 Then
          For n% = 1 To Counts.ulReturnCount
             sts = EsbGetNextItem(hCtx, ESB_HMEMBER_TYPE, ihMember)
          If sts = 0 And ihMember <> 0 Then
                   sts = EsbOtlFreeMember(hOutline, ihMember)
          End If
          Next
        End If
      End If
   Else
     msgbox "Outline open failed with error: " & sts
   Endif
End Sub
      

関連トピック