Beispiel #1
0
        /// <summary>
        /// 获取指定分析列中某一行的数据
        /// </summary>
        /// <typeparam name="T">数据的类型</typeparam>
        /// <param name="pTargetColumn">分析列</param>
        /// <param name="pRowIndex">行号,以0开始</param>
        /// <returns></returns>
        public T[] GetRowDataBy <T>(AnalysisColumn pTargetColumn, int pRowIndex)
        {
            var gridColumns = this.GetGridColumnBy(pTargetColumn);

            if (gridColumns != null && gridColumns.Length > 0 &&
                this.Dataes != null && this.Dataes.Rows.Count > pRowIndex)
            {
                List <T> result = new List <T>();
                //
                var dr = this.Dataes.Rows[pRowIndex];
                foreach (var col in gridColumns)
                {
                    if (dr[col.DataIndex] != DBNull.Value)
                    {
                        var temp = Convert.ChangeType(dr[col.DataIndex], typeof(T));
                        if (temp == null)
                        {
                            result.Add(default(T));
                        }
                        else
                        {
                            result.Add((T)temp);
                        }
                    }
                    else
                    {
                        result.Add(default(T));
                    }
                }
                //
                return(result.ToArray());
            }
            //
            return(null);
        }
Beispiel #2
0
        /// <summary>
        /// Add Columns to AnalysisResult object
        /// </summary>
        /// <param name="result">
        /// <see cref="AnalysisResult"/> object
        /// </param>
        /// <returns>
        /// <see cref="AnalysisResult"/> updated object
        /// </returns>
        private AnalysisResult AddAnalysisResultColumns(AnalysisResult result)
        {
            foreach (AnalysisProcessingResultColumn resultColumn in resultColumns)
            {
                var col = new AnalysisColumn(resultColumn.ResultColumn, xCategoryArray);
                result.AddColumn(col);
            }

            return(result);
        }
Beispiel #3
0
        /// <summary>
        /// 获取指定分析列的报表摘要
        /// </summary>
        /// <param name="pTargetColumn">分析列</param>
        /// <returns></returns>
        public Dictionary <Column, Dictionary <ISummary, string> > GetSummaryBy(AnalysisColumn pTargetColumn)
        {
            var gridColumns = this.GetGridColumnBy(pTargetColumn);

            if (gridColumns != null && gridColumns.Length > 0 &&
                this.ColumnSummaryValues != null)
            {
                var items  = this.ColumnSummaryValues.Where(item => gridColumns.Contains(item.Key)).ToArray();
                var result = new Dictionary <Column, Dictionary <ISummary, string> >();
                foreach (var item in items)
                {
                    result.Add(item.Key, item.Value);
                }
                //
                return(result);
            }
            return(null);
        }
Beispiel #4
0
 /// <summary>
 /// 根据分析列找出所对应的表格列
 /// </summary>
 /// <param name="pTargetColumn"></param>
 /// <returns></returns>
 private Column[] GetGridColumnBy(AnalysisColumn pTargetColumn)
 {
     if (pTargetColumn != null &&
         this.GridColumnToAnalysisColumnMappings != null &&
         this.GridColumnToAnalysisColumnMappings.ContainsValue(pTargetColumn))
     {
         List <Column> gridColumns = new List <Column>();
         foreach (var item in this.GridColumnToAnalysisColumnMappings)
         {
             if (item.Value == pTargetColumn)
             {
                 gridColumns.Add(item.Key);
             }
         }
         return(gridColumns.ToArray());
     }
     //
     return(null);
 }
Beispiel #5
0
 /// <summary>
 /// 获取指定分析列的报表数据
 /// </summary>
 /// <typeparam name="T">报表列数据的类型</typeparam>
 /// <param name="pTargetColumn">分析列</param>
 /// <returns>
 /// <para>如果列为度量列,则因为度量列会因为维度列的打横而拆分为多个,因此会返回多列数据,其中</para>
 /// <para>1.键为列对应的Ext的表格列</para>
 /// <para>2.值为该列下的所有数据</para>
 /// </returns>
 public Dictionary <Column, T[]> GetColumnDataBy <T>(AnalysisColumn pTargetColumn)
 {
     //获取分析列所对应的表格列
     Column[] gridColumns = this.GetGridColumnBy(pTargetColumn);
     if (gridColumns != null && gridColumns.Length > 0)
     {
         //获取数据
         Dictionary <Column, T[]> result = new Dictionary <Column, T[]>();
         foreach (var col in gridColumns)
         {
             List <T> dataes = new List <T>();
             foreach (DataRow dr in this.Dataes.Rows)
             {
                 if (dr[col.DataIndex] != DBNull.Value)
                 {
                     var temp = Convert.ChangeType(dr[col.DataIndex], typeof(T));
                     if (temp == null)
                     {
                         dataes.Add(default(T));
                     }
                     else
                     {
                         dataes.Add((T)temp);
                     }
                 }
                 else
                 {
                     dataes.Add(default(T));
                 }
             }
             //
             result.Add(col, dataes.ToArray());
         }
         //返回结果
         return(result);
     }
     return(null);
 }
Beispiel #6
0
 /// <summary>
 /// 获取指定列的值
 /// </summary>
 /// <param name="pTargetColumn">指定的列</param>
 /// <returns>数据项值</returns>
 public T[] GetData <T>(AnalysisColumn pTargetColumn)
 {
     if (this.Dataes != null)
     {
         if (this.ColumnMappings != null && this.ColumnMappings.ContainsValue(pTargetColumn))
         {
             var q = from m in this.ColumnMappings
                     where m.Value == pTargetColumn
                     select m.Key;
             var columns = q.ToArray();
             if (columns != null && columns.Length > 0)
             {
                 List <T> results = new List <T>();
                 foreach (var col in columns)
                 {
                     if (this.Dataes[col] != DBNull.Value)
                     {
                         var temp = Convert.ChangeType(this.Dataes[col], typeof(T));
                         if (temp == null)
                         {
                             results.Add(default(T));
                         }
                         else
                         {
                             results.Add((T)temp);
                         }
                     }
                     else
                     {
                         results.Add(default(T));
                     }
                 }
                 return(results.ToArray());
             }
         }
     }
     return(null);
 }
Beispiel #7
0
 /// <summary>
 /// 获取指定表格列的指定行的数据
 /// </summary>
 /// <param name="pRowIndex"></param>
 /// <param name="pGridColumn"></param>
 /// <returns></returns>
 private object GetDataRowValue(DataTable pDataes, int pRowIndex, AnalysisColumn pGridColumn)
 {
     return(pDataes.Rows[pRowIndex][pGridColumn.ColumnID]);
 }
Beispiel #8
0
 /// <summary>
 /// 设置值
 /// </summary>
 /// <param name="pRow">数据行</param>
 /// <param name="pGridColumn">需要设置数据的表格列</param>
 /// <param name="pValue">值</param>
 private void SetDataRowValue(DataRow pRow, AnalysisColumn pGridColumn, object pValue)
 {
     pRow[pGridColumn.ColumnID] = pValue;
 }