private void getdata() { string function = ""; switch (DeptType) { case "0": function = "p_report_year_country_produce"; break; case "1": function = "p_report_year_country_fishery"; break; case "2": function = "p_report_year_country_animal"; break; default: break; } DataTable table = operationService.ExecuteProYearReportCountry(function, Kssj, Jssj, DeptId, ItemId, ResultId, ObjectId); currenttable = table; List <DeptItemInfo> list = new List <DeptItemInfo>(); list.Clear(); for (int i = 0; i < table.Rows.Count; i++) { DeptItemInfo info = new DeptItemInfo(); //info.DeptId = table.Rows[i][0].ToString(); info.DeptName = table.Rows[i][1].ToString(); //info.ItemId = table.Rows[i][2].ToString(); info.ItemName = table.Rows[i][3].ToString(); info.Count = table.Rows[i][4].ToString(); info.Sum = table.Rows[i][5].ToString(); info.Yin = table.Rows[i][6].ToString(); info.Yang = table.Rows[i][7].ToString(); info.Yisi = table.Rows[i][8].ToString(); list.Add(info); } //得到行和列标题 及数量 string[] DeptNames = list.Select(t => t.DeptName).Distinct().ToArray(); string[] ItemNames = list.Select(t => t.ItemName).Distinct().ToArray(); //创建DataTable DataTable tabledisplay = new DataTable(); //表中第一行第一列交叉处一般显示为第1列标题 tabledisplay.Columns.Add(new DataColumn("序号")); tabledisplay.Columns.Add(new DataColumn("部门名称")); MyColumns.Add("序号", new MyColumn("序号", "序号") { BShow = true, Width = 5 }); MyColumns.Add("部门名称", new MyColumn("部门名称", "部门名称") { BShow = true, Width = 16 }); //表中后面每列的标题其实是列分组的关键字 for (int i = 0; i < ItemNames.Length; i++) { DataColumn column = new DataColumn(ItemNames[i]); tabledisplay.Columns.Add(column); MyColumns.Add(ItemNames[i].ToString().ToLower(), new MyColumn(ItemNames[i].ToString().ToLower(), ItemNames[i].ToString()) { BShow = true, Width = 10 }); } //表格后面为合计列 tabledisplay.Columns.Add(new DataColumn("合计")); MyColumns.Add("合计", new MyColumn("合计", "合计") { BShow = true, Width = 10 }); switch (ResultId) { case "": tabledisplay.Columns.Add(new DataColumn("阴性样本")); tabledisplay.Columns.Add(new DataColumn("疑似阳性样本")); tabledisplay.Columns.Add(new DataColumn("阳性样本")); MyColumns.Add("阴性样本", new MyColumn("阴性样本", "阴性样本") { BShow = true, Width = 10 }); MyColumns.Add("疑似阳性样本", new MyColumn("疑似阳性样本", "疑似阳性样本") { BShow = true, Width = 10 }); MyColumns.Add("阳性样本", new MyColumn("阳性样本", "阳性样本") { BShow = true, Width = 10 }); break; case "1": tabledisplay.Columns.Add(new DataColumn("阴性样本")); MyColumns.Add("阴性样本", new MyColumn("阴性样本", "阴性样本") { BShow = true, Width = 10 }); break; case "0": tabledisplay.Columns.Add(new DataColumn("疑似阳性样本")); MyColumns.Add("疑似阳性样本", new MyColumn("疑似阳性样本", "疑似阳性样本") { BShow = true, Width = 10 }); break; case "2": tabledisplay.Columns.Add(new DataColumn("阳性样本")); MyColumns.Add("阳性样本", new MyColumn("阳性样本", "阳性样本") { BShow = true, Width = 10 }); break; default: break; } //为表中各行生成数据 for (int i = 0; i < DeptNames.Length; i++) { var row = tabledisplay.NewRow(); //每行第0列为行分组关键字 row[0] = i + 1; row[1] = DeptNames[i]; //每行的其余列为行列交叉对应的汇总数据 for (int j = 0; j < ItemNames.Length; j++) { string num = list.Where(t => t.DeptName == DeptNames[i] && t.ItemName == ItemNames[j]).Select(t => t.Count).FirstOrDefault(); if (num == null || num == "") { num = '0'.ToString(); } row[ItemNames[j]] = num; } row[ItemNames.Length + 2] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Sum).FirstOrDefault(); switch (ResultId) { case "": row[ItemNames.Length + 3] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Yin).FirstOrDefault(); row[ItemNames.Length + 4] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Yisi).FirstOrDefault(); row[ItemNames.Length + 5] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Yang).FirstOrDefault(); break; case "1": row[ItemNames.Length + 3] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Yin).FirstOrDefault(); break; case "0": row[ItemNames.Length + 3] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Yisi).FirstOrDefault(); break; case "2": row[ItemNames.Length + 3] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Yang).FirstOrDefault(); break; default: break; } tabledisplay.Rows.Add(row); } //计算报表总条数 int row_count = 0; if (table.Rows.Count != 0) { //表格最后添加合计行 tabledisplay.Rows.Add(tabledisplay.NewRow()[1] = "合计"); for (int j = 2; j < tabledisplay.Columns.Count; j++) { int sum = 0; for (int i = 0; i < tabledisplay.Rows.Count - 1; i++) { sum += Convert.ToInt32(tabledisplay.Rows[i][j].ToString()); } //sum_column += sum; tabledisplay.Rows[tabledisplay.Rows.Count - 1][j] = sum; } row_count = tabledisplay.Rows.Count - 1; } else { row_count = 0; } _tableview.MyColumns = MyColumns; _tableview.BShowDetails = true; _tableview.Table = tabledisplay; }
private void _query_Click(object sender, RoutedEventArgs e) { item_id = _detect_item.SelectedIndex < 1 ? "" : (_detect_item.SelectedItem as Label).Tag.ToString(); result_id = _detect_result.SelectedIndex < 1 ? "" : (_detect_result.SelectedItem as Label).Tag.ToString(); grid_info.Children.Clear(); grid_info.Children.Add(_tableview); MyColumns.Clear(); string date; //判断查询条件:年月 date = _year.Text + "-" + _month.Text; DataTable table = dbOperation.GetDbHelper().GetDataSet(string.Format("call p_report_month('{0}','{1}','{2}','{3}','{4}')", (Application.Current.Resources["User"] as UserInfo).ID, date, _detect_dept.SelectedIndex < 1 ? "" : (_detect_dept.SelectedItem as Label).Tag, item_id, result_id)).Tables[0]; currenttable = table; list.Clear(); for (int i = 0; i < table.Rows.Count; i++) { DeptItemInfo info = new DeptItemInfo(); //info.DeptId = table.Rows[i][0].ToString(); info.DeptName = table.Rows[i][1].ToString(); //info.ItemId = table.Rows[i][2].ToString(); info.ItemName = table.Rows[i][3].ToString(); info.Count = table.Rows[i][4].ToString(); info.Sum = table.Rows[i][5].ToString(); info.Yin = table.Rows[i][6].ToString(); info.Yang = table.Rows[i][7].ToString(); info.Yisi = table.Rows[i][8].ToString(); list.Add(info); } //得到行和列标题 及数量 string[] DeptNames = list.Select(t => t.DeptName).Distinct().ToArray(); string[] ItemNames = list.Select(t => t.ItemName).Distinct().ToArray(); //创建DataTable DataTable tabledisplay = new DataTable(); //表中第一行第一列交叉处一般显示为第1列标题 tabledisplay.Columns.Add(new DataColumn("序号")); MyColumns.Add("序号", new MyColumn("序号", "序号") { BShow = true, Width = 5 }); //switch (user_flag_tier) //{ // case "0": tabledisplay.Columns.Add(new DataColumn("省名称")); // MyColumns.Add("省名称", new MyColumn("省名称", "省名称") { BShow = true, Width = 16 }); // break; // case "1": tabledisplay.Columns.Add(new DataColumn("市(州)单位名称")); // MyColumns.Add("市(州)单位名称", new MyColumn("市(州)单位名称", "市(州)单位名称") { BShow = true, Width = 16 }); // break; // case "2": tabledisplay.Columns.Add(new DataColumn("区县名称")); // MyColumns.Add("区县名称", new MyColumn("区县名称", "区县名称") { BShow = true, Width = 16 }); // break; // case "3": tabledisplay.Columns.Add(new DataColumn("检测单位名称")); // MyColumns.Add("检测单位名称", new MyColumn("检测单位名称", "检测单位名称") { BShow = true, Width = 16 }); // break; // case "4": tabledisplay.Columns.Add(new DataColumn("检测单位名称")); // MyColumns.Add("检测单位名称", new MyColumn("检测单位名称", "检测单位名称") { BShow = true, Width = 16 }); // break; // default: break; //} tabledisplay.Columns.Add(new DataColumn("部门名称")); MyColumns.Add("部门名称", new MyColumn("部门名称", "部门名称") { BShow = true, Width = 16 }); //表中后面每列的标题其实是列分组的关键字 for (int i = 0; i < ItemNames.Length; i++) { DataColumn column = new DataColumn(ItemNames[i]); tabledisplay.Columns.Add(column); MyColumns.Add(ItemNames[i].ToString().ToLower(), new MyColumn(ItemNames[i].ToString().ToLower(), ItemNames[i].ToString()) { BShow = true, Width = 10 }); } //表格后面为合计列 tabledisplay.Columns.Add(new DataColumn("合计")); MyColumns.Add("合计", new MyColumn("合计", "合计") { BShow = true, Width = 10 }); switch (result_id) { case "": tabledisplay.Columns.Add(new DataColumn("阴性样本")); tabledisplay.Columns.Add(new DataColumn("疑似阳性样本")); tabledisplay.Columns.Add(new DataColumn("阳性样本")); MyColumns.Add("阴性样本", new MyColumn("阴性样本", "阴性样本") { BShow = true, Width = 10 }); MyColumns.Add("疑似阳性样本", new MyColumn("疑似阳性样本", "疑似阳性样本") { BShow = true, Width = 10 }); MyColumns.Add("阳性样本", new MyColumn("阳性样本", "阳性样本") { BShow = true, Width = 10 }); break; case "1": tabledisplay.Columns.Add(new DataColumn("阴性样本")); MyColumns.Add("阴性样本", new MyColumn("阴性样本", "阴性样本") { BShow = true, Width = 10 }); break; case "0": tabledisplay.Columns.Add(new DataColumn("疑似阳性样本")); MyColumns.Add("疑似阳性样本", new MyColumn("疑似阳性样本", "疑似阳性样本") { BShow = true, Width = 10 }); break; case "2": tabledisplay.Columns.Add(new DataColumn("阳性样本")); MyColumns.Add("阳性样本", new MyColumn("阳性样本", "阳性样本") { BShow = true, Width = 10 }); break; default: break; } //为表中各行生成数据 for (int i = 0; i < DeptNames.Length; i++) { var row = tabledisplay.NewRow(); //每行第0列为行分组关键字 row[0] = i + 1; row[1] = DeptNames[i]; //每行的其余列为行列交叉对应的汇总数据 for (int j = 0; j < ItemNames.Length; j++) { string num = list.Where(t => t.DeptName == DeptNames[i] && t.ItemName == ItemNames[j]).Select(t => t.Count).FirstOrDefault(); if (num == null || num == "") { num = '0'.ToString(); } row[ItemNames[j]] = num; } row[ItemNames.Length + 2] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Sum).FirstOrDefault(); switch (result_id) { case "": row[ItemNames.Length + 3] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Yin).FirstOrDefault(); row[ItemNames.Length + 4] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Yisi).FirstOrDefault(); row[ItemNames.Length + 5] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Yang).FirstOrDefault(); break; case "1": row[ItemNames.Length + 3] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Yin).FirstOrDefault(); break; case "0": row[ItemNames.Length + 3] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Yisi).FirstOrDefault(); break; case "2": row[ItemNames.Length + 3] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Yang).FirstOrDefault(); break; default: break; } tabledisplay.Rows.Add(row); } //计算报表总条数 int row_count = 0; if (table.Rows.Count != 0) { //表格最后添加合计行 tabledisplay.Rows.Add(tabledisplay.NewRow()[1] = "合计"); for (int j = 2; j < tabledisplay.Columns.Count; j++) { int sum = 0; for (int i = 0; i < tabledisplay.Rows.Count - 1; i++) { sum += Convert.ToInt32(tabledisplay.Rows[i][j].ToString()); } //sum_column += sum; tabledisplay.Rows[tabledisplay.Rows.Count - 1][j] = sum; } row_count = tabledisplay.Rows.Count - 1; } else { row_count = 0; } dt = tabledisplay; //表格的标题 //string title = ""; //title = string.Format("{0}年{1}月 检测数据月报表(单位:份次) 合计{2}条数据", _year.Text, _month.Text, row_count); _tableview.MyColumns = MyColumns; _tableview.BShowDetails = true; _tableview.Table = tabledisplay; //_sj.Visibility = Visibility.Visible; //_hj.Visibility = Visibility.Visible; //_title.Text = row_count.ToString(); if (row_count == 0) { Toolkit.MessageBox.Show("没有查询到数据!", "系统提示", MessageBoxButton.OK, MessageBoxImage.Information); return; } }
private void _query_Click(object sender, RoutedEventArgs e) { item_id = _detect_item.SelectedIndex < 1 ? "" : (_detect_item.SelectedItem as Label).Tag.ToString(); result_id = _detect_result.SelectedIndex < 1 ? "" : (_detect_result.SelectedItem as Label).Tag.ToString(); string function = ""; switch (dept_type) { case "0": function = "p_report_day_produce"; break; case "1": function = "p_report_day_fishery"; break; case "2": function = "p_report_day_animal"; break; default: break; } grid_info.Children.Clear(); grid_info.Children.Add(_tableview); MyColumns.Clear(); DataTable table = operationService.ExecuteProDayReport(function, PubClass.userInfo.ID, (DateTime)reportDate.SelectedDate, _detect_dept.SelectedIndex < 1 ? "" : (_detect_dept.SelectedItem as Label).Tag.ToString(), item_id, result_id); currenttable = table; list.Clear(); for (int i = 0; i < table.Rows.Count; i++) { DeptItemInfo info = new DeptItemInfo(); //info.DeptId = table.Rows[i][0].ToString(); info.DeptName = table.Rows[i][1].ToString(); //info.ItemId = table.Rows[i][2].ToString(); info.ItemName = table.Rows[i][3].ToString(); info.Count = table.Rows[i][4].ToString(); info.Sum = table.Rows[i][5].ToString(); info.Yin = table.Rows[i][6].ToString(); info.Yang = table.Rows[i][7].ToString(); info.Yisi = table.Rows[i][8].ToString(); list.Add(info); } //得到行和列标题 及数量 string[] DeptNames = list.Select(t => t.DeptName).Distinct().ToArray(); string[] ItemNames = list.Select(t => t.ItemName).Distinct().ToArray(); //创建DataTable DataTable tabledisplay = new DataTable(); //表中第一行第一列交叉处一般显示为第1列标题 tabledisplay.Columns.Add(new DataColumn("序号")); MyColumns.Add("序号", new MyColumn("序号", "序号") { BShow = true, Width = 5 }); tabledisplay.Columns.Add(new DataColumn("部门名称")); MyColumns.Add("部门名称", new MyColumn("部门名称", "部门名称") { BShow = true, Width = 16 }); //表中后面每列的标题其实是列分组的关键字 for (int i = 0; i < ItemNames.Length; i++) { DataColumn column = new DataColumn(ItemNames[i]); tabledisplay.Columns.Add(column); MyColumns.Add(ItemNames[i].ToString().ToLower(), new MyColumn(ItemNames[i].ToString().ToLower(), ItemNames[i].ToString()) { BShow = true, Width = 10 }); } //表格合计列 tabledisplay.Columns.Add(new DataColumn("合计")); MyColumns.Add("合计", new MyColumn("合计", "合计") { BShow = true, Width = 10 }); switch (result_id) { case "": tabledisplay.Columns.Add(new DataColumn("阴性样本")); tabledisplay.Columns.Add(new DataColumn("疑似阳性样本")); tabledisplay.Columns.Add(new DataColumn("阳性样本")); MyColumns.Add("阴性样本", new MyColumn("阴性样本", "阴性样本") { BShow = true, Width = 10 }); MyColumns.Add("疑似阳性样本", new MyColumn("疑似阳性样本", "疑似阳性样本") { BShow = true, Width = 10 }); MyColumns.Add("阳性样本", new MyColumn("阳性样本", "阳性样本") { BShow = true, Width = 10 }); break; case "1": tabledisplay.Columns.Add(new DataColumn("阴性样本")); MyColumns.Add("阴性样本", new MyColumn("阴性样本", "阴性样本") { BShow = true, Width = 10 }); break; case "0": tabledisplay.Columns.Add(new DataColumn("疑似阳性样本")); MyColumns.Add("疑似阳性样本", new MyColumn("疑似阳性样本", "疑似阳性样本") { BShow = true, Width = 10 }); break; case "2": tabledisplay.Columns.Add(new DataColumn("阳性样本")); MyColumns.Add("阳性样本", new MyColumn("阳性样本", "阳性样本") { BShow = true, Width = 10 }); break; default: break; } //为表中各行生成数据 for (int i = 0; i < DeptNames.Length; i++) { var row = tabledisplay.NewRow(); //每行第0列为行分组关键字 row[0] = i + 1; row[1] = DeptNames[i]; //每行的其余列为行列交叉对应的汇总数据 for (int j = 0; j < ItemNames.Length; j++) { string num = list.Where(t => t.DeptName == DeptNames[i] && t.ItemName == ItemNames[j]).Select(t => t.Count).FirstOrDefault(); if (num == null || num == "") { num = '0'.ToString(); } row[ItemNames[j]] = num; } row[ItemNames.Length + 2] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Sum).FirstOrDefault(); switch (result_id) { case "": row[ItemNames.Length + 3] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Yin).FirstOrDefault(); row[ItemNames.Length + 4] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Yisi).FirstOrDefault(); row[ItemNames.Length + 5] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Yang).FirstOrDefault(); break; case "1": row[ItemNames.Length + 3] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Yin).FirstOrDefault(); break; case "0": row[ItemNames.Length + 3] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Yisi).FirstOrDefault(); break; case "2": row[ItemNames.Length + 3] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Yang).FirstOrDefault(); break; default: break; } tabledisplay.Rows.Add(row); } //计算报表总条数 int row_count = 0; if (table.Rows.Count != 0) { //表格最后添加合计行 tabledisplay.Rows.Add(tabledisplay.NewRow()[1] = "合计"); for (int j = 2; j < tabledisplay.Columns.Count; j++) { int sum = 0; for (int i = 0; i < tabledisplay.Rows.Count - 1; i++) { sum += Convert.ToInt32(tabledisplay.Rows[i][j].ToString()); } //sum_column += sum; tabledisplay.Rows[tabledisplay.Rows.Count - 1][j] = sum; } row_count = tabledisplay.Rows.Count - 1; } else { row_count = 0; } _tableview.MyColumns = MyColumns; _tableview.BShowDetails = true; _tableview.Table = tabledisplay; if (row_count == 0) { Toolkit.MessageBox.Show("没有查询到数据!", "系统提示", MessageBoxButton.OK, MessageBoxImage.Information); return; } }
private void getdata() { DataTable table = dbOperation.GetDbHelper().GetDataSet(string.Format("call p_report_day_country('{0}','{1}','{2}','{3}','{4}')", Sj, DeptId, ItemId, ResultId, DeptType)).Tables[0]; currenttable = table; List<DeptItemInfo> list = new List<DeptItemInfo>(); list.Clear(); for (int i = 0; i < table.Rows.Count; i++) { DeptItemInfo info = new DeptItemInfo(); //info.DeptId = table.Rows[i][0].ToString(); info.DeptName = table.Rows[i][1].ToString(); //info.ItemId = table.Rows[i][2].ToString(); info.ItemName = table.Rows[i][3].ToString(); info.Count = table.Rows[i][4].ToString(); info.Sum = table.Rows[i][5].ToString(); info.Yin = table.Rows[i][6].ToString(); info.Yang = table.Rows[i][7].ToString(); info.Yisi = table.Rows[i][8].ToString(); list.Add(info); } //得到行和列标题 及数量 string[] DeptNames = list.Select(t => t.DeptName).Distinct().ToArray(); string[] ItemNames = list.Select(t => t.ItemName).Distinct().ToArray(); //创建DataTable DataTable tabledisplay = new DataTable(); //表中第一行第一列交叉处一般显示为第1列标题 tabledisplay.Columns.Add(new DataColumn("序号")); tabledisplay.Columns.Add(new DataColumn("部门名称")); MyColumns.Add("序号", new MyColumn("序号", "序号") { BShow = true, Width = 5 }); MyColumns.Add("部门名称", new MyColumn("部门名称", "部门名称") { BShow = true, Width = 16 }); //表中后面每列的标题其实是列分组的关键字 for (int i = 0; i < ItemNames.Length; i++) { DataColumn column = new DataColumn(ItemNames[i]); tabledisplay.Columns.Add(column); MyColumns.Add(ItemNames[i].ToString(), new MyColumn(ItemNames[i].ToString(), ItemNames[i].ToString()) { BShow = true, Width = 10 }); } //表格后面为合计列 tabledisplay.Columns.Add(new DataColumn("合计")); MyColumns.Add("合计", new MyColumn("合计", "合计") { BShow = true, Width = 10 }); switch (ResultId) { case "": tabledisplay.Columns.Add(new DataColumn("阴性样本")); tabledisplay.Columns.Add(new DataColumn("疑似阳性样本")); tabledisplay.Columns.Add(new DataColumn("阳性样本")); MyColumns.Add("阴性样本", new MyColumn("阴性样本", "阴性样本") { BShow = true, Width = 10 }); MyColumns.Add("疑似阳性样本", new MyColumn("疑似阳性样本", "疑似阳性样本") { BShow = true, Width = 10 }); MyColumns.Add("阳性样本", new MyColumn("阳性样本", "阳性样本") { BShow = true, Width = 10 }); break; case "1": tabledisplay.Columns.Add(new DataColumn("阴性样本")); MyColumns.Add("阴性样本", new MyColumn("阴性样本", "阴性样本") { BShow = true, Width = 10 }); break; case "0": tabledisplay.Columns.Add(new DataColumn("疑似阳性样本")); MyColumns.Add("疑似阳性样本", new MyColumn("疑似阳性样本", "疑似阳性样本") { BShow = true, Width = 10 }); break; case "2": tabledisplay.Columns.Add(new DataColumn("阳性样本")); MyColumns.Add("阳性样本", new MyColumn("阳性样本", "阳性样本") { BShow = true, Width = 10 }); break; default: break; } //为表中各行生成数据 for (int i = 0; i < DeptNames.Length; i++) { var row = tabledisplay.NewRow(); //每行第0列为行分组关键字 row[0] = i + 1 ; row[1] = DeptNames[i]; //每行的其余列为行列交叉对应的汇总数据 for (int j = 0; j < ItemNames.Length; j++) { string num = list.Where(t => t.DeptName == DeptNames[i] && t.ItemName == ItemNames[j]).Select(t => t.Count).FirstOrDefault(); if (num == null || num == "") { num = '0'.ToString(); } row[ItemNames[j]] = num; } row[ItemNames.Length + 2] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Sum).FirstOrDefault(); switch (ResultId) { case "": row[ItemNames.Length + 3] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Yin).FirstOrDefault(); row[ItemNames.Length + 4] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Yisi).FirstOrDefault(); row[ItemNames.Length + 5] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Yang).FirstOrDefault(); break; case "1": row[ItemNames.Length + 3] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Yin).FirstOrDefault(); break; case "0": row[ItemNames.Length + 3] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Yisi).FirstOrDefault(); break; case "2": row[ItemNames.Length + 3] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Yang).FirstOrDefault(); break; default: break; } tabledisplay.Rows.Add(row); } //计算报表总条数 int row_count = 0 ; if (table.Rows.Count != 0) { //表格最后添加合计行 tabledisplay.Rows.Add(tabledisplay.NewRow()[1] = "合计"); for (int j = 2; j < tabledisplay.Columns.Count; j++) { int sum = 0; for (int i = 0; i < tabledisplay.Rows.Count - 1 ; i++) { sum += Convert.ToInt32(tabledisplay.Rows[i][j].ToString()); } //sum_column += sum; tabledisplay.Rows[tabledisplay.Rows.Count - 1][j] = sum; } row_count = tabledisplay.Rows.Count - 1; } else { row_count = 0 ; } _tableview.MyColumns = MyColumns; _tableview.BShowDetails = true; _tableview.Table = tabledisplay; }
private void _query_Click(object sender, RoutedEventArgs e) { item_id = _detect_item.SelectedIndex < 1 ? "" : (_detect_item.SelectedItem as Label).Tag.ToString(); result_id = _detect_result.SelectedIndex < 1 ? "" : (_detect_result.SelectedItem as Label).Tag.ToString(); grid_info.Children.Clear(); grid_info.Children.Add(_tableview); MyColumns.Clear(); DataTable table = dbOperation.GetDbHelper().GetDataSet(string.Format("call p_report_day('{0}','{1}','{2}','{3}','{4}','{5}')", (Application.Current.Resources["User"] as UserInfo).ID, reportDate.SelectedDate, _detect_dept.SelectedIndex < 1 ? "" : (_detect_dept.SelectedItem as Label).Tag, item_id, result_id, dept_type)).Tables[0]; currenttable = table; list.Clear(); for (int i = 0; i < table.Rows.Count; i++) { DeptItemInfo info = new DeptItemInfo(); //info.DeptId = table.Rows[i][0].ToString(); info.DeptName = table.Rows[i][1].ToString(); //info.ItemId = table.Rows[i][2].ToString(); info.ItemName = table.Rows[i][3].ToString(); info.Count = table.Rows[i][4].ToString(); info.Sum = table.Rows[i][5].ToString(); info.Yin = table.Rows[i][6].ToString(); info.Yang = table.Rows[i][7].ToString(); info.Yisi = table.Rows[i][8].ToString(); list.Add(info); } //得到行和列标题 及数量 string[] DeptNames = list.Select(t => t.DeptName).Distinct().ToArray(); string[] ItemNames = list.Select(t => t.ItemName).Distinct().ToArray(); //创建DataTable DataTable tabledisplay = new DataTable(); //表中第一行第一列交叉处一般显示为第1列标题 tabledisplay.Columns.Add(new DataColumn("序号")); MyColumns.Add("序号", new MyColumn("序号", "序号") { BShow = true, Width = 5 }); //switch (user_flag_tier) //{ // case "0": tabledisplay.Columns.Add(new DataColumn("省名称")); // MyColumns.Add("省名称", new MyColumn("省名称", "省名称") { BShow = true, Width = 16 }); // break; // case "1": tabledisplay.Columns.Add(new DataColumn("市(州)单位名称")); // MyColumns.Add("市(州)单位名称", new MyColumn("市(州)单位名称", "市(州)单位名称") { BShow = true, Width = 16 }); // break; // case "2": tabledisplay.Columns.Add(new DataColumn("区县名称")); // MyColumns.Add("区县名称", new MyColumn("区县名称", "区县名称") { BShow = true, Width = 16 }); // break; // case "3": tabledisplay.Columns.Add(new DataColumn("检测单位名称")); // MyColumns.Add("检测单位名称", new MyColumn("检测单位名称", "检测单位名称") { BShow = true, Width = 16 }); // break; // case "4": tabledisplay.Columns.Add(new DataColumn("检测单位名称")); // MyColumns.Add("检测单位名称", new MyColumn("检测单位名称", "检测单位名称") { BShow = true, Width = 16 }); // break; // default: break; //} tabledisplay.Columns.Add(new DataColumn("部门名称")); MyColumns.Add("部门名称", new MyColumn("部门名称", "部门名称") { BShow = true, Width = 16 }); //表中后面每列的标题其实是列分组的关键字 for (int i = 0; i < ItemNames.Length; i++) { DataColumn column = new DataColumn(ItemNames[i]); tabledisplay.Columns.Add(column); MyColumns.Add(ItemNames[i].ToString(), new MyColumn(ItemNames[i].ToString(), ItemNames[i].ToString()) { BShow = true, Width = 10 }); } //表格合计列 tabledisplay.Columns.Add(new DataColumn("合计")); MyColumns.Add("合计", new MyColumn("合计", "合计") { BShow = true, Width = 10 }); switch(result_id) { case "": tabledisplay.Columns.Add(new DataColumn("阴性样本")); tabledisplay.Columns.Add(new DataColumn("疑似阳性样本")); tabledisplay.Columns.Add(new DataColumn("阳性样本")); MyColumns.Add("阴性样本", new MyColumn("阴性样本", "阴性样本") { BShow = true, Width = 10 }); MyColumns.Add("疑似阳性样本", new MyColumn("疑似阳性样本", "疑似阳性样本") { BShow = true, Width = 10 }); MyColumns.Add("阳性样本", new MyColumn("阳性样本", "阳性样本") { BShow = true, Width = 10 }); break; case "1": tabledisplay.Columns.Add(new DataColumn("阴性样本")); MyColumns.Add("阴性样本", new MyColumn("阴性样本", "阴性样本") { BShow = true, Width = 10 }); break; case "0":tabledisplay.Columns.Add(new DataColumn("疑似阳性样本")); MyColumns.Add("疑似阳性样本", new MyColumn("疑似阳性样本", "疑似阳性样本") { BShow = true, Width = 10 }); break; case "2":tabledisplay.Columns.Add(new DataColumn("阳性样本")); MyColumns.Add("阳性样本", new MyColumn("阳性样本", "阳性样本") { BShow = true, Width = 10 }); break; default: break; } //为表中各行生成数据 for (int i = 0; i < DeptNames.Length; i++) { var row = tabledisplay.NewRow(); //每行第0列为行分组关键字 row[0] = i + 1 ; row[1] = DeptNames[i]; //每行的其余列为行列交叉对应的汇总数据 for (int j = 0; j < ItemNames.Length; j++) { string num = list.Where(t => t.DeptName == DeptNames[i] && t.ItemName == ItemNames[j]).Select(t => t.Count).FirstOrDefault(); if (num == null || num == "") { num = '0'.ToString(); } row[ItemNames[j]] = num; } row[ItemNames.Length + 2] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Sum).FirstOrDefault(); switch (result_id) { case "": row[ItemNames.Length + 3] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Yin).FirstOrDefault(); row[ItemNames.Length + 4] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Yisi).FirstOrDefault(); row[ItemNames.Length + 5] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Yang).FirstOrDefault(); break; case "1": row[ItemNames.Length + 3] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Yin).FirstOrDefault(); break; case "0": row[ItemNames.Length + 3] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Yisi).FirstOrDefault(); break; case "2": row[ItemNames.Length + 3] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Yang).FirstOrDefault(); break; default: break; } tabledisplay.Rows.Add(row); } //计算报表总条数 int row_count = 0 ; if (table.Rows.Count != 0) { //表格最后添加合计行 tabledisplay.Rows.Add(tabledisplay.NewRow()[1] = "合计"); for (int j = 2; j < tabledisplay.Columns.Count; j++) { int sum = 0; for (int i = 0; i < tabledisplay.Rows.Count - 1 ; i++) { sum += Convert.ToInt32(tabledisplay.Rows[i][j].ToString()); } //sum_column += sum; tabledisplay.Rows[tabledisplay.Rows.Count - 1][j] = sum; } row_count = tabledisplay.Rows.Count - 1; } else { row_count = 0 ; } _tableview.MyColumns = MyColumns; _tableview.BShowDetails = true; _tableview.Table = tabledisplay; if (row_count == 0) { Toolkit.MessageBox.Show("没有查询到数据!", "系统提示", MessageBoxButton.OK, MessageBoxImage.Information); return; } }
private void _query_Click(object sender, RoutedEventArgs e) { DataTable table = dbOperation.GetDbHelper().GetDataSet(string.Format("call p_report_day('{0}','{1}','{2}','{3}','{4}')", (Application.Current.Resources["User"] as UserInfo).ID, reportDate.Value, _detect_dept.SelectedIndex < 1 ? "" : (_detect_dept.SelectedItem as Label).Tag, _detect_item.SelectedIndex < 1 ? "" : (_detect_item.SelectedItem as Label).Tag, _detect_result.SelectedIndex < 1 ? "" : (_detect_result.SelectedItem as Label).Tag)).Tables[0]; currenttable = table; list.Clear(); for (int i = 0; i < table.Rows.Count; i++) { DeptItemInfo info = new DeptItemInfo(); //info.DeptId = table.Rows[i][0].ToString(); info.DeptName = table.Rows[i][1].ToString(); //info.ItemId = table.Rows[i][2].ToString(); info.ItemName = table.Rows[i][3].ToString(); info.Count = table.Rows[i][4].ToString(); info.Sum = table.Rows[i][5].ToString(); info.Yin = table.Rows[i][6].ToString(); info.Yang = table.Rows[i][7].ToString(); info.Yisi = table.Rows[i][8].ToString(); list.Add(info); } //得到行和列标题 及数量 string[] DeptNames = list.Select(t => t.DeptName).Distinct().ToArray(); string[] ItemNames = list.Select(t => t.ItemName).Distinct().ToArray(); //创建DataTable DataTable tabledisplay = new DataTable(); //表中第一行第一列交叉处一般显示为第1列标题 tabledisplay.Columns.Add(new DataColumn("序号")); switch (user_flag_tier) { case "0": tabledisplay.Columns.Add(new DataColumn("省名称")); break; case "1": tabledisplay.Columns.Add(new DataColumn("地市名称")); break; case "2": tabledisplay.Columns.Add(new DataColumn("区县名称")); break; case "3": tabledisplay.Columns.Add(new DataColumn("检测站点名称")); break; case "4": tabledisplay.Columns.Add(new DataColumn("检测站点名称")); break; default: break; } //表中后面每列的标题其实是列分组的关键字 for (int i = 0; i < ItemNames.Length; i++) { DataColumn column = new DataColumn(ItemNames[i]); tabledisplay.Columns.Add(column); } //表格后面为合计列 tabledisplay.Columns.Add(new DataColumn("合计")); tabledisplay.Columns.Add(new DataColumn("阴性样本")); tabledisplay.Columns.Add(new DataColumn("疑似阳性样本")); tabledisplay.Columns.Add(new DataColumn("阳性样本")); //为表中各行生成数据 for (int i = 0; i < DeptNames.Length; i++) { var row = tabledisplay.NewRow(); //每行第0列为行分组关键字 row[0] = i + 1 ; row[1] = DeptNames[i]; //每行的其余列为行列交叉对应的汇总数据 for (int j = 0; j < ItemNames.Length; j++) { string num = list.Where(t => t.DeptName == DeptNames[i] && t.ItemName == ItemNames[j]).Select(t => t.Count).FirstOrDefault(); if (num == null || num == "") { num = '0'.ToString(); } row[ItemNames[j]] = num; } row[ItemNames.Length + 2] = list.Where(t => t.DeptName == DeptNames[i] ).Select(t => t.Sum).FirstOrDefault(); row[ItemNames.Length + 3] = list.Where(t => t.DeptName == DeptNames[i] ).Select(t => t.Yin).FirstOrDefault(); row[ItemNames.Length + 4] = list.Where(t => t.DeptName == DeptNames[i] ).Select(t => t.Yisi).FirstOrDefault(); row[ItemNames.Length + 5] = list.Where(t => t.DeptName == DeptNames[i] ).Select(t => t.Yang).FirstOrDefault(); tabledisplay.Rows.Add(row); } if (table.Rows.Count != 0) { //表格最后添加合计行 tabledisplay.Rows.Add(tabledisplay.NewRow()[1] = "合计"); for (int j = 2; j < tabledisplay.Columns.Count; j++) { int sum = 0; for (int i = 0; i < tabledisplay.Rows.Count - 1 ; i++) { sum += Convert.ToInt32(tabledisplay.Rows[i][j].ToString()); } //sum_column += sum; tabledisplay.Rows[tabledisplay.Rows.Count - 1][j] = sum; } } //表格的标题 string title = ""; title = string.Format("{0}年{1}月{2}日 检测数据日报表(单位:份次)", reportDate.Value.Value.Year, reportDate.Value.Value.Month, reportDate.Value.Value.Day); _tableview.BShowDetails = true; _title.Text = "▪ " + title; _tableview.SetDataTable(tabledisplay,title, new List<int>()); }
private void _query_Click(object sender, RoutedEventArgs e) { DataTable table = dbOperation.GetDbHelper().GetDataSet(string.Format("call p_report_day('{0}','{1}','{2}','{3}','{4}')", (Application.Current.Resources["User"] as UserInfo).ID, reportDate.Value, _detect_dept.SelectedIndex < 1 ? "" : (_detect_dept.SelectedItem as Label).Tag, _detect_item.SelectedIndex < 1 ? "" : (_detect_item.SelectedItem as Label).Tag, _detect_result.SelectedIndex < 1 ? "" : (_detect_result.SelectedItem as Label).Tag)).Tables[0]; currenttable = table; list.Clear(); for (int i = 0; i < table.Rows.Count; i++) { DeptItemInfo info = new DeptItemInfo(); //info.DeptId = table.Rows[i][0].ToString(); info.DeptName = table.Rows[i][1].ToString(); //info.ItemId = table.Rows[i][2].ToString(); info.ItemName = table.Rows[i][3].ToString(); info.Count = table.Rows[i][4].ToString(); info.Sum = table.Rows[i][5].ToString(); info.Yin = table.Rows[i][6].ToString(); info.Yang = table.Rows[i][7].ToString(); info.Yisi = table.Rows[i][8].ToString(); list.Add(info); } //得到行和列标题 及数量 string[] DeptNames = list.Select(t => t.DeptName).Distinct().ToArray(); string[] ItemNames = list.Select(t => t.ItemName).Distinct().ToArray(); //创建DataTable DataTable tabledisplay = new DataTable(); //表中第一行第一列交叉处一般显示为第1列标题 tabledisplay.Columns.Add(new DataColumn("序号")); switch (user_flag_tier) { case "0": tabledisplay.Columns.Add(new DataColumn("省名称")); break; case "1": tabledisplay.Columns.Add(new DataColumn("地市名称")); break; case "2": tabledisplay.Columns.Add(new DataColumn("区县名称")); break; case "3": tabledisplay.Columns.Add(new DataColumn("检测站点名称")); break; case "4": tabledisplay.Columns.Add(new DataColumn("检测站点名称")); break; default: break; } //表中后面每列的标题其实是列分组的关键字 for (int i = 0; i < ItemNames.Length; i++) { DataColumn column = new DataColumn(ItemNames[i]); tabledisplay.Columns.Add(column); } //表格后面为合计列 tabledisplay.Columns.Add(new DataColumn("合计")); tabledisplay.Columns.Add(new DataColumn("阴性样本")); tabledisplay.Columns.Add(new DataColumn("疑似阳性样本")); tabledisplay.Columns.Add(new DataColumn("阳性样本")); //为表中各行生成数据 for (int i = 0; i < DeptNames.Length; i++) { var row = tabledisplay.NewRow(); //每行第0列为行分组关键字 row[0] = i + 1; row[1] = DeptNames[i]; //每行的其余列为行列交叉对应的汇总数据 for (int j = 0; j < ItemNames.Length; j++) { string num = list.Where(t => t.DeptName == DeptNames[i] && t.ItemName == ItemNames[j]).Select(t => t.Count).FirstOrDefault(); if (num == null || num == "") { num = '0'.ToString(); } row[ItemNames[j]] = num; } row[ItemNames.Length + 2] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Sum).FirstOrDefault(); row[ItemNames.Length + 3] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Yin).FirstOrDefault(); row[ItemNames.Length + 4] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Yisi).FirstOrDefault(); row[ItemNames.Length + 5] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.Yang).FirstOrDefault(); tabledisplay.Rows.Add(row); } if (table.Rows.Count != 0) { //表格最后添加合计行 tabledisplay.Rows.Add(tabledisplay.NewRow()[1] = "合计"); for (int j = 2; j < tabledisplay.Columns.Count; j++) { int sum = 0; for (int i = 0; i < tabledisplay.Rows.Count - 1; i++) { sum += Convert.ToInt32(tabledisplay.Rows[i][j].ToString()); } //sum_column += sum; tabledisplay.Rows[tabledisplay.Rows.Count - 1][j] = sum; } } //表格的标题 string title = ""; title = string.Format("{0}年{1}月{2}日 检测数据日报表(单位:份次)", reportDate.Value.Value.Year, reportDate.Value.Value.Month, reportDate.Value.Value.Day); _tableview.BShowDetails = true; _title.Text = "▪ " + title; _tableview.SetDataTable(tabledisplay, title, new List <int>()); }