アウトラインをクエリーします。
構文
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である場合、その次元の論理親を表し、アウトラインの最上部であるとみなされます。次のオプションでは、この値は無視されます:
|
pPredicate |
クエリーを定義している構造体。この構造体のフィールドは、「注意」を参照してください。 |
pMbrCounts |
カウントに関する情報を定義している構造体。次のフィールドが含まれます:
|
phMemberArray |
クエリーから戻されたメンバーのハンドルの配列。 |
備考
この呼出しは、操作対象のメンバーのハンドルを使用して、オプション値で指定された基準に適合するメンバーのハンドル配列を戻します。
戻されたphMembersのメンバー配列が不要になった場合、呼出し元はEsbOtlFreeMember()を呼び出す必要があります。
配列の各hMember要素は、EsbOtlOpenOutlineQuery()にリストされた呼出しのみで使用できます。たとえば、戻されたメンバー・ハンドルは、EsbOtlGetSibling()を呼び出すために使用できません。
プログラマは、各メンバーのハンドルが戻されるたびに、EsbGetNextItem()を1度呼び出す必要があります。
pPredicate構造体のフィールドは、次のように使用されます:
ulQuery - 実行する操作を定義する値。次のいずれかになります:
ESB_CHILDREN
ESB_DESCENDANTS
ESB_BOTTOMLEVEL
ESB_SIBLINGS
ESB_SAMELEVEL
ESB_SAMEGENERATION
ESB_PARENT
ESB_DIMENSION
ESB_NAMEDGENERATION
ESB_NAMEDLEVEL
ESB_SEARCH
ESB_WILDSEARCH
ESB_USERATTRIBUTE
ESB_ANCESTORS
ESB_DTSMEMBERS
ESB_DIMUSERATTRIBUTES
ulOptions - 任意のオプションを定義する値。次のクエリー・オプションとともに使用されます:
ESB_SEARCH、ESB_WILDSEARCH - 次のいずれかの値になります:
ESB_MEMBERSONLY
ESB_ALIASESONLY
ESB_MEMBERSANDALIASES
すべてのオプション - ESB_COUNTONLY: メンバーのハンドルは戻さずに、pCounts構造体のpTotalCountフィールドにのみ値を入れます。
szDimension - クエリーの範囲を制限する次元。このフィールドは次のクエリー・オプションで使用され、それ以外では無視されます:
ESB_NAMEDGENERATION
ESB_NAMEDLEVEL
ESB_USERATTRIBUTE
ESB_SEARCH - すべての次元を検索するには、NULLに設定します
ESB_WILDSEARCH - すべての次元を検索するには、NULLに設定します
pszString1- オプションによって特定される入力文字列。このフィールドは次のクエリー・オプションで使用され、それ以外では無視されます:
ESB_NAMEDGENERATION - 世代の名前。
ESB_NAMEDLEVEL - レベルの名前。
ESB_SEARCH - 検索する文字列。この文字列は完全一致として定義されています。
ESB_WILDSEARCH - 検索する文字列。この文字列は、末尾にオプションの'*'が付いた完全一致検索文字列として指定され、'*'部分は任意の文字の組合せが可能です。
ESB_USERATTRIBUTE - ユーザー定義属性。
pszString2- オプションによって特定される入力文字列。このフィールドは次のクエリー・オプションで使用され、それ以外では無視されます:
ESB_USERATTRIBUTE - ユーザー定義属性。
ESB_SEARCH、ESB_WILDSEARCH - オプションで別名テーブルを検索するよう設定されている場合、この文字列は検索対象の別名テーブルを指定します。このフィールドをNULLにした場合は、すべての別名テーブルがサーチされます。
戻り値
関数が正常終了した場合、戻り値は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
関連トピック