Exemplo n.º 1
0
        public void Create(string hengTittle, string TopTittle, ComSearch comSearch)
        {
            #region 通过ID生成存储表单,并显示

            //模拟生成行标题存储区域
            StackPanel stack1 = new StackPanel();
            //模拟生成列标题存储区域
            StackPanel stack2 = new StackPanel();
            //通过遍历添加行标题
            foreach (var item in TongJiItem.TongJiItemList)
            {
                if (item.Tittle == hengTittle)
                {
                    //生成统计子项
                    TongJiItem tongjiItem = new TongJiItem(item.Tittle, item.StrProperty, false);
                    //一级标题字段
                    tongjiItem.ItemChild = item.ItemChild;
                    //二级标题字段
                    tongjiItem.ItemChild2 = item.ItemChild2;
                    //加载统计子项
                    stack1.Children.Add(tongjiItem);
                    break;
                }
            }

            //通过遍历添加列标题
            foreach (var item in TongJiItem.TongJiItemList)
            {
                if (item.Tittle == TopTittle)
                {
                    //生成统计子项
                    TongJiItem tongjiItem = new TongJiItem(item.Tittle, item.StrProperty, false);
                    //一级标题字段
                    tongjiItem.ItemChild = item.ItemChild;
                    //二级标题字段
                    tongjiItem.ItemChild2 = item.ItemChild2;
                    //加载统计子项
                    stack2.Children.Add(tongjiItem);
                    break;
                }
            }
            //生成存储表单
            TitleInit(scv, stack1, stack2, comSearch);

            #endregion
        }
Exemplo n.º 2
0
        /// <summary>
        /// 显示加载提示(开始生成表格)
        /// </summary>
        void TitleInit(TJGridView dataGrid, StackPanel stack1, StackPanel stack2, ComSearch comSearch)
        {
            try
            {
                _comSearch = comSearch;

                rowItemTagList.Clear();
                columnItemTagList.Clear();

                //单元格数据
                List <int> intlist = new List <int>();

                DataTable dt = null;
                if (dt == null && _comSearch != null)
                //获取指定时间的数据
                {
                    //高级查询条件
                    var ss = _comSearch.GetHuanBiShuJu();

                    //已完成
                    ss.Add("IsFinish", "是,#Text#Eq");

                    //获取Dtatable
                    dt = DataOperation.ClientGetDic(Proxy.ListName, ss, ref _dicList);
                }

                #region 生成行标题

                //是否结束
                bool isRowFinish = false;
                //是否开始添加小计
                bool rowaddXiaoJi = false;

                int stackPanelRowCount = 0;

                stackPanelRowCount = stack1.Children.Count;

                //生成行标题
                for (int i = 0; i < stackPanelRowCount; i++)
                {
                    //获取item对象
                    var item = stack1.Children[i] as TongJiItem;

                    //执行最后一次标记完成
                    if (i == stackPanelRowCount - 1)
                    {
                        isRowFinish = true;
                    }
                    //是否开始添加小计
                    if (i == stackPanelRowCount - 1 && stackPanelRowCount > 1)
                    {
                        rowaddXiaoJi = true;
                    }

                    //月份统计
                    if (item.Tittle.Equals("月份"))
                    {
                        this.MonthDealWidth(item);
                        RowTittleInit(dataGrid, item.ItemChild, item.StrProperty, false, false);

                        //是否开始添加小计
                        if (i == stackPanelRowCount - 1 && stackPanelRowCount > 0)
                        {
                            rowaddXiaoJi = true;
                        }

                        RowTittleInit(dataGrid, item.ItemChild2, item.StrProperty, rowaddXiaoJi, isRowFinish);

                        continue;
                    }
                    RowTittleInit(dataGrid, item.ItemChild, item.StrProperty, rowaddXiaoJi, isRowFinish);
                }

                #endregion

                #region 去掉年份

                this.scv.tongjiR.gridMain.ColumnDefinitions[0].Width = new GridLength(0);

                this.scv.tongjiR.Width = this.scv.tongjiR.gridMain.ColumnDefinitions[1].Width.Value;

                this.scv.tongjiR.txtSum.Text = "增量";

                #endregion

                #region 生成列标题

                //是否生成列标题最后一层
                bool isColumnFinish = false;
                //是否开始添加小计
                bool addXiaoJi = false;

                int stackPanleCollumnCount = stack2.Children.Count;

                //生成列标题
                for (int i = 0; i < stackPanleCollumnCount; i++)
                {
                    //获取item对象
                    var item = stack2.Children[i] as TongJiItem;

                    //通过列表名称获取其标题内容(加载最后一行标题标注为完成)
                    if (i == stackPanleCollumnCount - 1)
                    {
                        isColumnFinish = true;
                    }
                    //是否开始添加小计
                    if (stackPanleCollumnCount > 1 && i == stackPanleCollumnCount - 1)
                    {
                        addXiaoJi = true;
                    }

                    //月份处理
                    if (item.Tittle.Equals("月份"))
                    {
                        this.MonthDealWidth(item);
                        //列标题添加
                        ColumnTittleInit(dataGrid, item.ItemChild, item.StrProperty, false, false);

                        //是否开始添加小计
                        if (i == stackPanleCollumnCount - 1 && stackPanleCollumnCount > 0)
                        {
                            addXiaoJi = true;
                        }
                        //列标题添加
                        ColumnTittleInit(dataGrid, item.ItemChild2, item.StrProperty, addXiaoJi, isColumnFinish);

                        continue;
                    }
                    //列标题添加
                    this.ColumnTittleInit(dataGrid, item.ItemChild, item.StrProperty, addXiaoJi, isColumnFinish);
                }

                #endregion

                #region 生成数据

                //数据表格
                System.Data.DataTable table = new System.Data.DataTable();
                //指定有多少列
                for (int i = 0; i < dataGrid.dataGrid.Columns.Count - 1; i++)
                {
                    table.Columns.Add(Convert.ToString(i));
                }

                table.Columns.Add("总计");

                Dictionary <int, object[]> dicData = new Dictionary <int, object[]>();

                if (dt.Columns.Count < 1 || dt.Rows.Count < 1)
                {
                    //给每一行添加数据
                    for (int i = 0; i < dataGrid.tongjiR._LeftCount + 1; i++)
                    {
                        object[] list = new object[dataGrid.dataGrid.Columns.Count];
                        for (int y = 0; y < dataGrid.dataGrid.Columns.Count; y++)
                        {
                            list[y] = 0;
                        }
                        table.Rows.Add(list);
                    }
                }
                else
                {
                    //给每一行添加数据
                    for (int i = 0; i < dataGrid.tongjiR._LeftCount; i++)
                    {
                        var ps = GetData(dataGrid, dt, dataGrid.tongjiR.GetRangeTittle(i), i);
                        table.Rows.Add(ps);
                        dicData.Add(i, ps);
                    }
                    var ds = GetData(dataGrid, dicData);

                    table.Rows.Add(ds);
                }

                //绑定数据源
                dataGrid.dataGrid.ItemsSource = table.DefaultView;

                #endregion

                #region 清理垃圾,释放内存


                #endregion
            }
            catch (Exception ex)
            {
                MethodLb.CreateLog(this.GetType().FullName, "TitleInit", ex.ToString(), dataGrid);
            }
        }
Exemplo n.º 3
0
        public void ParametersInit(ComSearch coms)
        {
            try
            {
                this.dataGridList.ItemsSource = null;

                this._comSearch = coms;

                var ss = this._comSearch.GetTongQiShuJu1();

                var ss2 = this._comSearch.GetTongQiShuJu2();

                Thread thread2 = new Thread(new ThreadStart(() =>
                {
                    DataTable datable = new DataTable();

                    //已完成
                    ss.Add("IsFinish", "是,#Text#Eq");

                    //获取Dtatable
                    var dt = DataOperation.ClientGetDicByPropertyName(Proxy.ListName, ss, "startData", ref _dicList1);

                    //已完成
                    ss2.Add("IsFinish", "是,#Text#Eq");
                    //获取Dtatable
                    var dt2 = DataOperation.ClientGetDicByPropertyName(Proxy.ListName, ss2, "startData", ref _dicList2);

                    this.Dispatcher.BeginInvoke(new Action(() =>
                    {
                        #region 生成进行中

                        if (dt.Columns.Count > 0)
                        {
                            datable = dt;
                            foreach (var item in dt2.Rows)
                            {
                                datable.Rows.Add((item as DataRow).ItemArray);
                            }
                        }
                        else if (dt2.Columns.Count > 0)
                        {
                            datable = dt2;
                            foreach (var item in dt.Rows)
                            {
                                datable.Rows.Add((item as DataRow).ItemArray);
                            }
                        }

                        Dictionary <int, object[]> objList = new Dictionary <int, object[]>();

                        DataTable dtMain = new DataTable();

                        this.dataGridList.ItemsSource = dtMain.DefaultView;

                        for (int i = 0; i < 14; i++)
                        {
                            if (i == 0)
                            {
                                dtMain.Columns.Add("年份");
                            }
                            else if (i == 13)
                            {
                                dtMain.Columns.Add("总计");
                            }

                            else
                            {
                                dtMain.Columns.Add(i + "月");
                            }
                        }
                        string year1 = this._comSearch.cmbTongQiYear1.SelectedItem.ToString();
                        if (_dicList1.Count > 0)
                        {
                            var year1Data = GetData(datable, year1);
                            dtMain.Rows.Add(year1Data);
                            objList[0] = year1Data;
                        }
                        else
                        {
                            object[] intlist = new object[14];
                            for (int i = 0; i < 14; i++)
                            {
                                if (i == 0)
                                {
                                    intlist[i] = year1;
                                }
                                else
                                {
                                    intlist[i] = 0;
                                }
                            }
                            dtMain.Rows.Add(intlist);
                            objList[0] = intlist;
                        }

                        string year2 = this._comSearch.cmbTongQiYear2.SelectedItem.ToString();

                        if (_dicList2.Count > 0)
                        {
                            var year2Data = GetData(datable, year2);
                            dtMain.Rows.Add(year2Data);
                            objList[1] = year2Data;
                        }
                        else
                        {
                            object[] intlist = new object[14];
                            for (int i = 0; i < 14; i++)
                            {
                                if (i == 0)
                                {
                                    intlist[i] = year2;
                                }
                                else
                                {
                                    intlist[i] = 0;
                                }
                            }
                            dtMain.Rows.Add(intlist);

                            objList[1] = intlist;
                        }

                        #region 增量
                        var AddCC = this.GetData(this.dataGridList, objList);
                        dtMain.Rows.Add(AddCC);


                        //this.dataGridList.ItemsSource = dtMain.DefaultView;

                        #endregion

                        #endregion

                        if (_ListCompleteEvent != null)
                        {
                            _ListCompleteEvent();
                        }
                    }));
                }));
                thread2.Start();
            }
            catch (Exception ex)
            {
                MethodLb.CreateLog(this.GetType().FullName, "ParametersInit", ex.ToString(), coms);
            }
            finally
            {
            }
        }