Vbscript VBS,从父子结构创建完整层次结构字符串,递归
我正在尝试用Visual basic脚本执行以下操作。有一个元素的层次结构,我有最低的元素(基),我需要创建完整的层次结构字符串。我有一个函数,它返回一个元素的父元素。这意味着我可以要求父母,然后是父母的父母,等等 示例:B是A的父级,C1、C2是B的父级 在本例中,结果应该是由3个字符串组成的数组(第1、2、3行),每个字符串包含基本元素A的完整层次结构 我试过循环,但不知怎的,我不能把它组合在一起。我不是VBS专家,数组处理在我看来相当笨拙。有什么建议吗 编辑: 这是我目前的职能:Vbscript VBS,从父子结构创建完整层次结构字符串,递归,vbscript,parent-child,Vbscript,Parent Child,我正在尝试用Visual basic脚本执行以下操作。有一个元素的层次结构,我有最低的元素(基),我需要创建完整的层次结构字符串。我有一个函数,它返回一个元素的父元素。这意味着我可以要求父母,然后是父母的父母,等等 示例:B是A的父级,C1、C2是B的父级 在本例中,结果应该是由3个字符串组成的数组(第1、2、3行),每个字符串包含基本元素A的完整层次结构 我试过循环,但不知怎的,我不能把它组合在一起。我不是VBS专家,数组处理在我看来相当笨拙。有什么建议吗 编辑: 这是我目前的职能: Fun
Function GetAllParents (strServer, strDimension, strElem)
dim strPath
dim strElement
dim strParent
dim lngCount
dim i
dim j
dim k
dim result
result = strElem
strElement = strElem
lngCount = AleaElement.ElementParentsCount (strServer, strDimension, strElement)
if (lngCount > 0) then
for i = 1 to lngCount
strParent = AleaElement.ElementParentsName(strServer, strDimension, strElement, i)
result = result & " " & GetAllParents(strServer, strDimension, strParent)
next
end if
GetAllParents = result
End Function
这是我得到的结果:
CST_700P36 CST_AM_FAE_1002 CST_RM_FAE_NRTH1 CST_OM_FAE_NRTH CST_RET_SAS_RD1 CST_RET_SAS_MNGMT CST_RETAIL_DIVN CST_TOTAL
CST_TOTAL_I&E
CST_SS_FAE_CUR CST_SS_FAE CST_RET_SAS CST_RET_SAR CST_RETAIL_DIVN CST_TOTAL
CST_TOTAL_I&E
CST_RET_SAS_EX_VIR
CST_RETAIL_ALL CST_RETAIL CST_ALL_COST
这就是我需要的结果:
CST_700P36 CST_AM_FAE_1002 CST_RM_FAE_NRTH1 CST_OM_FAE_NRTH CST_RET_SAS_RD1 CST_RET_SAS_MNGMT CST_RETAIL_DIVN CST_TOTAL
CST_700P36 CST_AM_FAE_1002 CST_RM_FAE_NRTH1 CST_OM_FAE_NRTH CST_RET_SAS_RD1 CST_RET_SAS_MNGMT CST_RETAIL_DIVN CST_TOTAL_I&E
CST_700P36 CST_AM_FAE_1002 CST_RM_FAE_NRTH1 CST_OM_FAE_NRTH CST_SS_FAE_CUR CST_SS_FAE CST_RET_SAS CST_RET_SAR CST_RETAIL_DIVN CST_TOTAL
CST_700P36 CST_AM_FAE_1002 CST_RM_FAE_NRTH1 CST_OM_FAE_NRTH CST_SS_FAE_CUR CST_SS_FAE CST_RET_SAS CST_RET_SAR CST_RETAIL_DIVN CST_TOTAL_I&E
CST_700P36 CST_AM_FAE_1002 CST_RM_FAE_NRTH1 CST_OM_FAE_NRTH CST_SS_FAE_CUR CST_RET_SAS_EX_VIR
CST_700P36 CST_RETAIL_ALL CST_RETAIL CST_ALL_COST
看起来曾经包含的零件不会再次放入。到目前为止您尝试了什么?这看起来像是一个候选项。@Rno是的,我也这么认为,添加了当前结果