Beispiel #1
0
        /// <summary>
        /// 行标题添加
        /// </summary>
        /// <param name="itemChild">子项</param>
        /// <param name="itemProperty">内部名称</param>
        /// <param name="addXiaoJi">是否开始添加小计</param>
        /// <param name="isRowFinish">是否完成</param>
        void RowTittleInit(TongJiDataGrid.TJGridView datagrrd, TongJiItemChild itemChild, string itemProperty, bool addXiaoJi, bool isRowFinish)
        {
            try
            {
                //若有小计,去除
                if (itemChild.PropertyList.Contains("小计"))
                {
                    itemChild.PropertyList.Remove("小计");
                }

                //子级关系
                if (itemChild.DicPropertyCaml != null && rowItemTagList.Contains(itemChild.ParentPropertyName))
                {
                    itemChild.IntIndenttitys.Clear();

                    List <string> titleSumList = new List <string>();

                    //遍历进行列标题的添加
                    for (int p = 0; p < itemChild.DicPropertyCaml.Count; p++)
                    {
                        if (itemChild.DicPropertyCaml.Values.ElementAt(p).Contains("小计"))
                        {
                            itemChild.DicPropertyCaml.Values.ElementAt(p).Remove("小计");
                        }

                        //加一个映射点
                        itemChild.IntIndenttitys.Add(itemChild.DicPropertyCaml.Values.ElementAt(p).Count);

                        //通过列表名称获取其标题内容(加载最后一行标题标注为完成)
                        if (addXiaoJi && _IsNeedXiaoJi)
                        {
                            itemChild.DicPropertyCaml.Values.ElementAt(p).Add("小计");
                            itemChild.IntIndenttitys[p]++;
                        }
                        titleSumList.AddRange(itemChild.DicPropertyCaml.Values.ElementAt(p));
                    }
                    //通过列表名称获取其标题内容
                    datagrrd._RowHeaderAdd(titleSumList, itemChild.IntIndenttitys, isRowFinish);
                }
                else
                {
                    //最后一列有小计
                    if (addXiaoJi && _IsNeedXiaoJi)
                    {
                        itemChild.PropertyList.Add("小计");
                    }
                    //添加行标题
                    datagrrd._RowHeaderAdd(itemChild.PropertyList, isRowFinish);
                }

                //如SheBeiTypeErJi
                rowItemTagList.Add(itemProperty);
            }
            catch (Exception ex)
            {
                MethodLb.CreateLog(this.GetType().FullName, "RowTittleInit", ex.ToString(), itemChild, itemProperty, addXiaoJi, isRowFinish);
            }
        }
Beispiel #2
0
        /// <summary>
        /// 通过指定条件获取单元格数据
        /// </summary>
        /// <param name="striTittleList"></param>
        /// <returns></returns>
        public object[] GetData(TongJiDataGrid.TJGridView dataGridd, System.Data.DataTable dataTable, string[] listRealRow, int rowPosition)
        {
            object[] data = new object[dataGridd.dataGrid.Columns.Count];
            try
            {
                for (int columnPosition = 0; columnPosition < data.Count(); columnPosition++)
                {
                    object count = 0;

                    string expression = string.Empty;

                    #region 获取表达式

                    if (columnPosition < data.Count() - 1)
                    {
                        for (int i = 0; i < listRealRow.Count(); i++)
                        {
                            var item = listRealRow[i];
                            if (item.Contains("月"))
                            {
                                expression += GetMonthExpression(listRealRow[i - 1] + item, i, this.rowItemTagList);
                            }
                            else if (!item.Equals("小计") && !item.Contains("月") && !item.Contains("年"))
                            {
                                expression += this.rowItemTagList[i] + "=" + "'" + item + "'" + " And ";
                            }
                            else if (listRealRow.Contains("小计") && item.Contains("年"))
                            {
                                expression += GetYearExpression(item, i, this.rowItemTagList);
                            }
                        }

                        for (int i = 0; i < dataGridd.tongjiC.GetRangeTittle(columnPosition).Count(); i++)
                        {
                            var range = dataGridd.tongjiC.GetRangeTittle(columnPosition);
                            var item  = range[i];

                            if (item.Contains("月"))
                            {
                                expression += GetMonthExpression(dataGridd.tongjiC.GetRangeTittle(columnPosition)[i - 1] + item, i, this.columnItemTagList);
                            }
                            else if (!item.Equals("小计") && !item.Contains("月") && !item.Contains("年"))
                            {
                                expression += this.columnItemTagList[i] + "=" + "'" + item + "'" + " And ";
                            }
                            else if (range.Contains("小计") && item.Contains("年"))
                            {
                                expression += GetYearExpression(item, i, this.columnItemTagList);
                            }
                        }
                    }
                    else
                    {
                        for (int i = 0; i < listRealRow.Count(); i++)
                        {
                            var item = listRealRow[i];
                            if (item.Contains("月"))
                            {
                                expression += GetMonthExpression(listRealRow[i - 1] + item, i, this.rowItemTagList);
                            }
                            else if (!item.Equals("小计") && !item.Contains("月") && !item.Contains("年"))
                            {
                                expression += this.rowItemTagList[i] + "=" + "'" + item + "'" + " And ";
                            }
                            else if (listRealRow.Contains("小计") && item.Contains("年"))
                            {
                                expression += GetYearExpression(item, i, this.rowItemTagList);
                            }
                        }
                    }

                    #endregion

                    string realExpression = string.Empty;
                    if (expression.Contains(" And "))
                    {
                        realExpression = expression.Substring(0, expression.LastIndexOf(" And "));
                    }

                    var result = dataTable.Compute("Count(ID)", realExpression);

                    if (result == DBNull.Value)
                    {
                        count = "0";
                    }
                    else
                    {
                        //统计结果
                        var cc = Convert.ToInt32(result);
                        if (cc == 0)
                        {
                            count = "0";
                        }
                        else
                        {
                            count = cc;
                        }
                    }

                    data[columnPosition] = count;
                }
            }
            catch (Exception ex)
            {
                MethodLb.CreateLog(this.GetType().FullName, "GetData", ex.ToString(), dataTable, listRealRow, rowPosition);
            }
            return(data);
        }