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 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)); } }