EsbOtlQueryMembers

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

構文

            EsbOtlQueryMembers (
            hOutline, hMember, pPredicate, pMbrCounts, pulCount
            )
ByVal 
            hOutline
               As Long
ByVal 
            hMember
                As Long 
      
            pPredicate
             As ESB_PREDICATE_T
      
            pMbrCounts
             As ESB_MBRCOUNTS_T
         
パラメータ説明

hOutline

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

hMember

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

  • ESB_NAMEDGENERATION

  • ESB_NAMEDLEVEL

  • ESB_USERATTRIBUTE

  • ESB_SEARCH

  • ESB_WILDSEARCH

pPredicate

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

pMbrCounts

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

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

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

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

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

phMemberArray

クエリーから戻されたメンバーのハンドルの配列。

備考

戻り値

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

         Declare Function EsbOtlQueryMembers Lib "ESBOTLN" 
(ByVal hOutline As Long, ByVal hMember As Long,
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_OtlQueryMembers()
   Dim sts As Long
   Dim hOutline As Long
   Dim hMember As Long
   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
   
   AppName = "Sample"
   DbName = "Basic"
   sts = EsbOtlOpenOutlineQuery(hCtx, Object, hOutline)
   If sts = 0 Then
     sts = EsbOtlOpenOutlineQuery(hCtx, Object, hOutline)
   Predicate.ulQuery = ESB_CHILDREN
   Predicate.pszDimension = "Year"
   Counts.ulStart = 0
   Counts.ulMaxCount = 10
   If sts = 0 Then
      sts = EsbOtlQueryMembers(hOutline, hMember, 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
End If
End Sub
      

関連トピック