アウトラインをクエリーします。
構文
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
関連トピック