HFM FAQ Development p2

Продолжение :

Q. Как обратиться к элементам метаданных

A.

Character Dimension
A# Account
I# Intercompany Partner
C1# Custom1
C2# Custom2
C3# Custom3
C4# Custom4
S# Scenario
Y# Year
P# Period
W# View
E# Entity
V# Value

Q. Как очистить срез данных

А. HS.Clear "A#Sales.I#Hardware"
Q. Как прочитать выбранную ячейку
А. dblOEBS = HS.GetCellRealData(POV,VarBoolean)

Q. Как прочитать массив данных

A. Set objDU= HS.OpenDataUnit    (POV)

– при использовании OpenDataUnit нужно избегать открытие слишком больших массивов (более 100000 строк) и множество (более 100 в цикле) маленьких массивов (менее 1000 строк)

Q. Как организовать цикл по выбранным данным из OpenDataUnit

A.

Set objDU = HS.OpenDataUnit(POV)

intQnt = objDU.GetNumItems -1

For intCurItem = 0 to intQnt

Call objDU.GetItem(intCurItem, strAcct, strICP, strCust1, strCust2, strCust3, strCust4, dblData)

Next

Q. Как узнать имя текущего рассчитываемого периода (предприятия, сценария,года,Value)

A. HS.Period.Member

HS.Year.Member

HS.Value.Member

HS.Entity.Member

q. Как записать данные в ячейку

A. для этого нужно использовать процедуру

HS.SetDataWithPOV strAdjPOV4,dbl2V,FALSE

q. Как получить список элементов

a. aryAcc = HS.Account.List (“AA000001L”,”[Base]”)

q. как организовать цикл по выбранному списку элементов

a. For Each strCuraryAcc In aryAcc

Next

q. Как проверить у текущего элемента принадлежность к родителю

a. HS.<Object>.IsBase("Parent","Element")
					

q. Как получить код валюты текущего Entity

a. HS.<Object>.DefCurrency("Entity")

где <Object> одно из двух Entity, Parent

q. как получить курс валюты

a. s=”RUR” : dblRUR2Func = HS.GetRate(“V#” & s & “.A#CURR_BAL”)

If dblRUR2Func <> 0 Then dblRUR2Func = 1/dblRUR2Func ‘Обратный курс

q. Как проверить принадлежность элемента иерархии

A. HS.Entity.IsBase(“”,””)

q. как заменить в строке подстроку

a. Replace(str,StrFrom,StrTO)

q. как разбить строку на массив

а. Split(expression[,delimiter[,count[,compare]]])

q. как собрать из массива строчку

а. Join(Array[,delimiter])

q. как найти первое вхождение подстроки

а. InStr([start,]SearchIn,SerachFor[,compare])

q. как работать с многомерными массивами

а. Dim aryAccounts(1,1)

aryAccounts(0,0) = “” : aryAccounts(1,0) = “”

aryAccounts(1,0) = “” : aryAccounts(1,1) = “”