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