アウトラインをクエリーします。
構文
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である場合、その次元の論理親を表し、アウトラインの最上部であるとみなされます。次のオプションでは、この値は無視されます:
|
pPredicate |
クエリーを定義している構造体。この構造体のフィールドは、「注意」を参照してください。 |
pCounts |
カウントに関する情報を定義している構造体。次のフィールドが含まれます:
|
備考
この呼出しは、操作対象のメンバー名文字列を使用して、オプション値で指定された基準に適合するメンバーのハンドル配列を戻します。
戻された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 - クエリーの範囲を制限する次元。このフィールドは次のクエリー・オプションで使用され、それ以外では無視されます:
SB_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 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
関連トピック