public List <DimensionTreeModel> CreateTreeModel(HfmDimensionType argDimensionType) { List <DimensionTreeModel> treeModelList = new List <DimensionTreeModel>(); var dimensionList = EnumMembers2(argDimensionType); HsvMetadata hsvMetadata = _HsvSession.Metadata as HsvMetadata; IHsvTreeInfo treeInfo = (IHsvTreeInfo)hsvMetadata.Dimension[(short)argDimensionType]; int order = 0; foreach (var member in dimensionList) { object parentIds; treeInfo.EnumParents(member.MemberID, out parentIds); foreach (int parentId in (int[])parentIds) { DimensionTreeModel treeModel = new DimensionTreeModel(); treeModel.Type = HfmDimensionTypeHelper.GetDimensionTypeName(argDimensionType); if (parentId == -1) { treeModel.ParentCode = "ROOT"; } else { string parentLabel; treeInfo.GetLabel(parentId, out parentLabel); treeModel.ParentCode = parentLabel; } treeModel.Code = member.MemberLabel; treeModel.CodeName = member.Description; treeModel.Order = ++order; treeModelList.Add(treeModel); } } return(treeModelList); }
private int MemberLabel2Id(HfmDimensionType argDimensionType, DataRow argDataRow) { string fieldName = HfmDimensionTypeHelper.GetDimensionFieldName(argDimensionType); string memberLabel = argDataRow[fieldName].ToString(); return(MemberLabel2Id(argDimensionType, memberLabel)); }
private List <HfmDimensionType> GetEmptyMembers(DataRow argDataRow) { List <HfmDimensionType> emptyMemberList = new List <HfmDimensionType>(); foreach (var dimensionType in HfmDimensionTypeHelper.HfmDimensionFieldList) { string fieldName = HfmDimensionTypeHelper.GetDimensionFieldName(dimensionType); string memberLabel = argDataRow[fieldName].ToString(); if (string.IsNullOrEmpty(memberLabel)) { emptyMemberList.Add(dimensionType); } } return(emptyMemberList); }
public DataTable ExpandData(DataRow argDataRow, DataTable argTempTable) { DataTable retDataTable = argTempTable.Clone(); List <HfmDimensionType> emptyMemberList = GetEmptyMembers(argDataRow); if (emptyMemberList.Count == 0) { retDataTable.ImportRow(argDataRow); return(retDataTable); } Dictionary <HfmDimensionType, int> memberIdDictionary = GetMemberIds(argDataRow); HfmDimensionType emptyMember = emptyMemberList[0]; string emptyMemberFieldName = HfmDimensionTypeHelper.GetDimensionFieldName(emptyMember); int[] memberIds = GetMembersThatHaveData(memberIdDictionary, emptyMember, argDataRow[emptyMemberFieldName].ToString()); foreach (int memberId in memberIds) { string label = HfmSession.GetDimension().GetMemberLabel(emptyMember, memberId); //if (label == "[ICP None]" || label == "[None]") //{ // continue; //} argTempTable.ImportRow(argDataRow); argTempTable.Rows[argTempTable.Rows.Count - 1][emptyMemberFieldName] = label; } if (emptyMemberList.Count == 1) { retDataTable.Merge(argTempTable); } else { DataTable expandTable = ExpandData(argTempTable); retDataTable.Merge(expandTable); } return(retDataTable); }
private Dictionary <HfmDimensionType, int> GetMemberIds(DataRow argDataRow) { Dictionary <HfmDimensionType, int> memberIdDictionary = new Dictionary <HfmDimensionType, int>(); foreach (var dimensionType in HfmDimensionTypeHelper.HfmDimensionFieldList) { string member = HfmDimensionTypeHelper.GetDimensionFieldName(dimensionType); string memberLabel = argDataRow[member].ToString(); if (string.IsNullOrEmpty(memberLabel)) { memberIdDictionary.Add(dimensionType, (short)tagPOVDEFAULTS.MEMBERNOTUSED); } else { memberIdDictionary.Add(dimensionType, MemberLabel2Id(dimensionType, memberLabel)); } } string entityLabel = argDataRow[HfmDimensionTypeHelper.GetDimensionFieldName(HfmDimensionType.Entity)].ToString(); this.HfmSession.GetDimension().GetDefaultParentID(entityLabel); memberIdDictionary.Add(HfmDimensionType.Parent, HfmSession.GetDimension().GetDefaultParentID(entityLabel)); return(memberIdDictionary); }
public List <DimensionMember> EnumMembers2(HfmDimensionType argDimensionType, string argMemberListName) { object count = null, varMemberIDs = null, varParentIDs = null, valMemberLabels = null, varDescriptions = null, varNumChildren = null, varTotalMembersInEnum = null; HFMwDimension hfmwDimension = HfmDimensionTypeHelper.GetHFMwDimension(_HFMwSession, argDimensionType); count = hfmwDimension.EnumMembers2(tagPOVDEFAULTS.MEMBERNOTUSED, tagPOVDEFAULTS.MEMBERNOTUSED, tagPOVDEFAULTS.MEMBERNOTUSED, tagPOVDEFAULTS.MEMBERNOTUSED, argMemberListName, "", 0, 0, (int)tagWEBOM_METADATA_INFO_FLAGS.WEBOM_METADATA_INFO_ALL, ref varMemberIDs, ref varParentIDs, ref valMemberLabels, ref varDescriptions, ref varNumChildren, ref varTotalMembersInEnum); int total = (int)varTotalMembersInEnum; List <DimensionMember> retList = new List <DimensionMember>(); for (int i = 0; i < total; i++) { DimensionMember dimensionMember = new DimensionMember(); dimensionMember.MemberID = (int)((object[])varMemberIDs)[i]; if (varParentIDs != null) { dimensionMember.ParentID = (int)((object[])varParentIDs)[i]; } dimensionMember.NumChildren = (int)((object[])varNumChildren)[i]; dimensionMember.MemberLabel = ((object[])valMemberLabels)[i] as string; dimensionMember.Description = ((object[])varDescriptions)[i] as string; retList.Add(dimensionMember); } return(retList); }
public void GetCells(DataTable argDataTable) { try { if (argDataTable == null || argDataTable.Rows.Count == 0) { return; } int Count = argDataTable.Rows.Count; int[] varalScenario = new int[Count]; int[] varalYear = new int[Count]; int[] varalPeriod = new int[Count]; int[] varalView = new int[Count]; int[] varalEntity = new int[Count]; int[] varalParent = new int[Count]; int[] varalValue = new int[Count]; int[] varalAccount = new int[Count]; int[] varalICP = new int[Count]; int[] varalCustom1 = new int[Count]; int[] varalCustom2 = new int[Count]; int[] varalCustom3 = new int[Count]; int[] varalCustom4 = new int[Count]; var hfmDimension = this.HfmSession.GetDimension(); string entityFieldName = HfmDimensionTypeHelper.GetDimensionFieldName(HfmDimensionType.Entity); string entityParentFieldName = HfmDimensionTypeHelper.GetDimensionFieldName(HfmDimensionType.Parent); for (int i = 0; i < Count; i++) { DataRow dataRow = argDataTable.Rows[i]; varalScenario[i] = MemberLabel2Id(HfmDimensionType.Scenario, dataRow); varalYear[i] = MemberLabel2Id(HfmDimensionType.Year, dataRow); varalPeriod[i] = MemberLabel2Id(HfmDimensionType.Period, dataRow); varalView[i] = MemberLabel2Id(HfmDimensionType.View, dataRow); varalEntity[i] = MemberLabel2Id(HfmDimensionType.Entity, dataRow); string entityLabel = dataRow[entityFieldName].ToString(); string parentLabel = dataRow[entityParentFieldName].ToString(); if (!string.IsNullOrEmpty(parentLabel)) { varalParent[i] = MemberLabel2Id(HfmDimensionType.Entity, parentLabel); } else { varalParent[i] = hfmDimension.GetDefaultParentID(entityLabel); } varalValue[i] = MemberLabel2Id(HfmDimensionType.Value, dataRow); varalAccount[i] = MemberLabel2Id(HfmDimensionType.Account, dataRow); varalICP[i] = MemberLabel2Id(HfmDimensionType.Icp, dataRow); varalCustom1[i] = MemberLabel2Id(HfmDimensionType.Custom1, dataRow); varalCustom2[i] = MemberLabel2Id(HfmDimensionType.Custom2, dataRow); varalCustom3[i] = MemberLabel2Id(HfmDimensionType.Custom3, dataRow); varalCustom4[i] = MemberLabel2Id(HfmDimensionType.Custom4, dataRow); } object pvaradData = null; object pvaralStatus = null; _HsvSession.Data.GetCells(varalScenario, varalYear, varalPeriod, varalView, varalEntity, varalParent, varalValue, varalAccount, varalICP, varalCustom1, varalCustom2, varalCustom3, varalCustom4, out pvaradData, out pvaralStatus); for (int i = 0; i < Count; i++) { DataRow dataRow = argDataTable.Rows[i]; dataRow["VALUE"] = ((double[])pvaradData)[i]; if ((((int[])pvaralStatus)[i] & (int)tagCALCSTATUSLOWBITS.CELLSTATUS_NODATA) == (int)tagCALCSTATUSLOWBITS.CELLSTATUS_NODATA) { dataRow["STATE"] = -1; } else { dataRow["STATE"] = ((Int32[])pvaralStatus)[i]; } } } catch (Exception ex) { throw new Exception(HfmCommon.GetHfmErrorMessage(ex.Message)); } }