コード例 #1
0
ファイル: HfmData.cs プロジェクト: sfuture/hfm4csharp
        private int MemberLabel2Id(HfmDimensionType argDimensionType, DataRow argDataRow)
        {
            string fieldName   = HfmDimensionTypeHelper.GetDimensionFieldName(argDimensionType);
            string memberLabel = argDataRow[fieldName].ToString();

            return(MemberLabel2Id(argDimensionType, memberLabel));
        }
コード例 #2
0
ファイル: HfmData.cs プロジェクト: sfuture/hfm4csharp
        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);
        }
コード例 #3
0
ファイル: HfmData.cs プロジェクト: sfuture/hfm4csharp
        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);
        }
コード例 #4
0
ファイル: HfmData.cs プロジェクト: sfuture/hfm4csharp
        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);
        }
コード例 #5
0
ファイル: HfmData.cs プロジェクト: sfuture/hfm4csharp
        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));
            }
        }