private void getdata()
        {
            DataTable table = dbOperation.GetDbHelper().GetDataSet(string.Format("call p_sampling_report_country('{0}','{1}','{2}')",
                                Sj, DeptId, ItemId)).Tables[0];
            currenttable = table;
            list.Clear();
            for (int i = 0; i < table.Rows.Count; i++)
            {
                SamplingInfo info = new SamplingInfo();
                //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.SumActual = table.Rows[i][4].ToString();
                info.SamplingrateActual = table.Rows[i][5].ToString();
                info.SamplingratePercent = table.Rows[i][6].ToString();
                info.SumSamplingrateActual = table.Rows[i][7].ToString();
                info.SumPercent = 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 });


            tabledisplay.Columns.Add(new DataColumn("批次总头数"));
            MyColumns.Add("批次总头数", new MyColumn("批次总头数", "批次总头数") { BShow = true, Width = 8 });

            //表中后面每列的标题其实是列分组的关键字
            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("抽检率" + i));
                MyColumns.Add("抽检率" + i, new MyColumn("抽检率" + i, "抽检率") { BShow = true, Width = 10 });
            }

            //当选择了检测项目作为查询条件时,不显示任务完成总量和任务总完成率
            bool flag;
            if (ItemId == "")
            {
                flag = true;
            }
            else
            {
                flag = false;
            }

            //表格后面为合计列
            tabledisplay.Columns.Add(new DataColumn("总抽检数"));
            MyColumns.Add("总抽检数", new MyColumn("总抽检数", "总抽检数") { BShow = flag, Width = 10 });
            tabledisplay.Columns.Add(new DataColumn("综合平均抽检率"));
            MyColumns.Add("综合平均抽检率", new MyColumn("综合平均抽检率", "综合平均抽检率") { BShow = flag, Width = 10 });

            //为表中各行生成数据
            for (int i = 0; i < DeptNames.Length; i++)
            {
                var row = tabledisplay.NewRow();
                //每行第0列为行分组关键字
                row[0] = i + 1;
                row[1] = DeptNames[i];
                string count = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.SumActual).FirstOrDefault();

                if (count == null || count == "")
                {
                    count = '0'.ToString();
                }
                row[2] = count;

                //每行的其余列为行列交叉对应的汇总数据
                for (int j = 0; j < ItemNames.Length; j++)
                {
                    string num = list.Where(t => t.DeptName == DeptNames[i] && t.ItemName == ItemNames[j]).Select(t => t.SamplingrateActual).FirstOrDefault();

                    if (num == null || num == "")
                    {
                        num = '0'.ToString();
                    }
                    row[ItemNames[j]] = num;

                    string percent = list.Where(t => t.DeptName == DeptNames[i] && t.ItemName == ItemNames[j]).Select(t => t.SamplingratePercent).FirstOrDefault();

                    if (percent == null || percent == "")
                    {
                        percent = '0'.ToString();
                    }
                    else
                    {
                        percent = percent + "%";
                    }
                    row[4 + 2 * j] = percent;
                }
                row[ItemNames.Length * 2 + 3] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.SumSamplingrateActual).FirstOrDefault();

                string sumpercent = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.SumPercent).FirstOrDefault();

                if (sumpercent == null || sumpercent == "")
                {
                    sumpercent = '0'.ToString();
                }
                else
                {
                    sumpercent = sumpercent + "%";
                }
                row[ItemNames.Length * 2 + 4] = sumpercent;


                tabledisplay.Rows.Add(row);
            }
            _tableview.MyColumns = MyColumns;
            _tableview.BShowDetails = true;
            _tableview.Table = tabledisplay;
        }
Exemplo n.º 2
0
        private void getdata()
        {
            DataTable table = dbOperation.GetDbHelper().GetDataSet(string.Format("call p_sampling_report_country('{0}','{1}','{2}','{3}')",
                                                                                 Sj, DeptId, ItemId, DeptType)).Tables[0];

            currenttable = table;
            list.Clear();
            for (int i = 0; i < table.Rows.Count; i++)
            {
                SamplingInfo info = new SamplingInfo();
                //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.SumActual             = table.Rows[i][4].ToString();
                info.SamplingrateActual    = table.Rows[i][5].ToString();
                info.SamplingratePercent   = table.Rows[i][6].ToString();
                info.SumSamplingrateActual = table.Rows[i][7].ToString();
                info.SumPercent            = 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
            });


            tabledisplay.Columns.Add(new DataColumn("批次总头数"));
            MyColumns.Add("批次总头数", new MyColumn("批次总头数", "批次总头数")
            {
                BShow = true, Width = 8
            });

            //表中后面每列的标题其实是列分组的关键字
            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("抽检率" + i));
                MyColumns.Add("抽检率" + i, new MyColumn("抽检率" + i, "抽检率")
                {
                    BShow = true, Width = 10
                });
            }

            //当选择了检测项目作为查询条件时,不显示任务完成总量和任务总完成率
            bool flag;

            if (ItemId == "")
            {
                flag = true;
            }
            else
            {
                flag = false;
            }

            //表格后面为合计列
            tabledisplay.Columns.Add(new DataColumn("总抽检数"));
            MyColumns.Add("总抽检数", new MyColumn("总抽检数", "总抽检数")
            {
                BShow = flag, Width = 10
            });
            tabledisplay.Columns.Add(new DataColumn("综合平均抽检率"));
            MyColumns.Add("综合平均抽检率", new MyColumn("综合平均抽检率", "综合平均抽检率")
            {
                BShow = flag, Width = 10
            });

            //为表中各行生成数据
            for (int i = 0; i < DeptNames.Length; i++)
            {
                var row = tabledisplay.NewRow();
                //每行第0列为行分组关键字
                row[0] = i + 1;
                row[1] = DeptNames[i];
                string count = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.SumActual).FirstOrDefault();

                if (count == null || count == "")
                {
                    count = '0'.ToString();
                }
                row[2] = count;

                //每行的其余列为行列交叉对应的汇总数据
                for (int j = 0; j < ItemNames.Length; j++)
                {
                    string num = list.Where(t => t.DeptName == DeptNames[i] && t.ItemName == ItemNames[j]).Select(t => t.SamplingrateActual).FirstOrDefault();

                    if (num == null || num == "")
                    {
                        num = '0'.ToString();
                    }
                    row[ItemNames[j]] = num;

                    string percent = list.Where(t => t.DeptName == DeptNames[i] && t.ItemName == ItemNames[j]).Select(t => t.SamplingratePercent).FirstOrDefault();

                    if (percent == null || percent == "")
                    {
                        percent = '0'.ToString();
                    }
                    else
                    {
                        percent = percent + "%";
                    }
                    row[4 + 2 * j] = percent;
                }
                row[ItemNames.Length * 2 + 3] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.SumSamplingrateActual).FirstOrDefault();

                string sumpercent = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.SumPercent).FirstOrDefault();

                if (sumpercent == null || sumpercent == "")
                {
                    sumpercent = '0'.ToString();
                }
                else
                {
                    sumpercent = sumpercent + "%";
                }
                row[ItemNames.Length * 2 + 4] = sumpercent;


                tabledisplay.Rows.Add(row);
            }
            _tableview.MyColumns    = MyColumns;
            _tableview.BShowDetails = true;
            _tableview.Table        = tabledisplay;
        }
Exemplo n.º 3
0
        private void _query_Click(object sender, RoutedEventArgs e)
        {
            item_id = _detect_item.SelectedIndex < 1 ? "" : (_detect_item.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_sampling_report('{0}','{1}','{2}','{3}')",
                                                                                 (Application.Current.Resources["User"] as UserInfo).ID,
                                                                                 _year.Text,
                                                                                 _detect_dept.SelectedIndex < 1 ? "" : (_detect_dept.SelectedItem as Label).Tag,
                                                                                 item_id)).Tables[0];

            currenttable = table;
            list.Clear();
            for (int i = 0; i < table.Rows.Count; i++)
            {
                SamplingInfo info = new SamplingInfo();
                //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.SumActual             = table.Rows[i][4].ToString();
                info.SamplingrateActual    = table.Rows[i][5].ToString();
                info.SamplingratePercent   = table.Rows[i][6].ToString();
                info.SumSamplingrateActual = table.Rows[i][7].ToString();
                info.SumPercent            = 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 = 8
            });

            //表中后面每列的标题其实是列分组的关键字
            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("抽检率" + i));
                MyColumns.Add("抽检率" + i, new MyColumn("抽检率" + i, "抽检率")
                {
                    BShow = true, Width = 10
                });
            }

            //当选择了检测项目作为查询条件时,不显示任务完成总量和任务总完成率
            bool flag;

            if (item_id == "")
            {
                flag = true;
            }
            else
            {
                flag = false;
            }

            //表格后面为合计列
            tabledisplay.Columns.Add(new DataColumn("总抽检数"));
            MyColumns.Add("总抽检数", new MyColumn("总抽检数", "总抽检数")
            {
                BShow = flag, Width = 10
            });
            tabledisplay.Columns.Add(new DataColumn("综合平均抽检率"));
            MyColumns.Add("综合平均抽检率", new MyColumn("综合平均抽检率", "综合平均抽检率")
            {
                BShow = flag, Width = 10
            });

            //为表中各行生成数据
            for (int i = 0; i < DeptNames.Length; i++)
            {
                var row = tabledisplay.NewRow();
                //每行第0列为行分组关键字
                row[0] = i + 1;
                row[1] = DeptNames[i];
                string count = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.SumActual).FirstOrDefault();

                if (count == null || count == "")
                {
                    count = '0'.ToString();
                }
                row[2] = count;

                //每行的其余列为行列交叉对应的汇总数据
                for (int j = 0; j < ItemNames.Length; j++)
                {
                    string num = list.Where(t => t.DeptName == DeptNames[i] && t.ItemName == ItemNames[j]).Select(t => t.SamplingrateActual).FirstOrDefault();

                    if (num == null || num == "")
                    {
                        num = '0'.ToString();
                    }
                    row[ItemNames[j]] = num;

                    string percent = list.Where(t => t.DeptName == DeptNames[i] && t.ItemName == ItemNames[j]).Select(t => t.SamplingratePercent).FirstOrDefault();

                    if (percent == null || percent == "")
                    {
                        percent = '0'.ToString();
                    }
                    else
                    {
                        percent = percent + "%";
                    }
                    row[4 + 2 * j] = percent;
                }
                row[ItemNames.Length * 2 + 3] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.SumSamplingrateActual).FirstOrDefault();

                string sumpercent = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.SumPercent).FirstOrDefault();

                if (sumpercent == null || sumpercent == "")
                {
                    sumpercent = '0'.ToString();
                }
                else
                {
                    sumpercent = sumpercent + "%";
                }
                row[ItemNames.Length * 2 + 4] = sumpercent;


                tabledisplay.Rows.Add(row);
            }

            _tableview.MyColumns    = MyColumns;
            _tableview.BShowDetails = true;
            _tableview.Table        = tabledisplay;
            //_sj.Visibility = Visibility.Visible;
            //_hj.Visibility = Visibility.Visible;
            //_title.Text = tabledisplay.Rows.Count.ToString();

            if (tabledisplay.Rows.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();

            grid_info.Children.Clear();
            grid_info.Children.Add(_tableview);
            MyColumns.Clear();

            DataTable table = dbOperation.GetDbHelper().GetDataSet(string.Format("call p_sampling_report('{0}','{1}','{2}','{3}')",
                              (Application.Current.Resources["User"] as UserInfo).ID,
                               _year.Text,
                               _detect_dept.SelectedIndex < 1 ? "" : (_detect_dept.SelectedItem as Label).Tag,
                               item_id)).Tables[0];
            currenttable = table;
            list.Clear();
            for (int i = 0; i < table.Rows.Count; i++)
            {
                SamplingInfo info = new SamplingInfo();
                //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.SumActual = table.Rows[i][4].ToString();
                info.SamplingrateActual = table.Rows[i][5].ToString();
                info.SamplingratePercent = table.Rows[i][6].ToString();
                info.SumSamplingrateActual = table.Rows[i][7].ToString();
                info.SumPercent = 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 = 8 });

            //表中后面每列的标题其实是列分组的关键字
            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("抽检率" + i));
                MyColumns.Add("抽检率" + i, new MyColumn("抽检率" + i, "抽检率") { BShow = true, Width = 10 });
            }

            //当选择了检测项目作为查询条件时,不显示任务完成总量和任务总完成率
            bool flag;
            if (item_id == "")
            {
                flag = true;
            }
            else
            {
                flag = false;
            }

            //表格后面为合计列
            tabledisplay.Columns.Add(new DataColumn("总抽检数"));
            MyColumns.Add("总抽检数", new MyColumn("总抽检数", "总抽检数") { BShow = flag, Width = 10 });
            tabledisplay.Columns.Add(new DataColumn("综合平均抽检率"));
            MyColumns.Add("综合平均抽检率", new MyColumn("综合平均抽检率", "综合平均抽检率") { BShow = flag, Width = 10 });

            //为表中各行生成数据
            for (int i = 0; i < DeptNames.Length; i++)
            {
                var row = tabledisplay.NewRow();
                //每行第0列为行分组关键字
                row[0] = i + 1;
                row[1] = DeptNames[i];
                string count = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.SumActual).FirstOrDefault();

                if (count == null || count == "")
                {
                    count = '0'.ToString();
                }
                row[2] = count;

                //每行的其余列为行列交叉对应的汇总数据
                for (int j = 0; j < ItemNames.Length; j++)
                {
                    string num = list.Where(t => t.DeptName == DeptNames[i] && t.ItemName == ItemNames[j]).Select(t => t.SamplingrateActual).FirstOrDefault();

                    if (num == null || num == "")
                    {
                        num = '0'.ToString();
                    }
                    row[ItemNames[j]] = num;

                    string percent = list.Where(t => t.DeptName == DeptNames[i] && t.ItemName == ItemNames[j]).Select(t => t.SamplingratePercent).FirstOrDefault();

                    if (percent == null || percent == "")
                    {
                        percent = '0'.ToString();
                    }
                    else
                    {
                        percent = percent + "%";
                    }
                    row[4 + 2 * j] = percent;
                }
                row[ItemNames.Length * 2 + 3] = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.SumSamplingrateActual).FirstOrDefault();

                string sumpercent = list.Where(t => t.DeptName == DeptNames[i]).Select(t => t.SumPercent).FirstOrDefault();

                if (sumpercent == null || sumpercent == "")
                {
                    sumpercent = '0'.ToString();
                }
                else
                {
                    sumpercent = sumpercent + "%";
                }
                row[ItemNames.Length * 2 + 4] = sumpercent;


                tabledisplay.Rows.Add(row);
            }

            _tableview.MyColumns = MyColumns;
            _tableview.BShowDetails = true;
            _tableview.Table = tabledisplay;
            //_sj.Visibility = Visibility.Visible;
            //_hj.Visibility = Visibility.Visible;
            //_title.Text = tabledisplay.Rows.Count.ToString();

            if (tabledisplay.Rows.Count == 0)
            {
                Toolkit.MessageBox.Show("没有查询到数据!", "系统提示", MessageBoxButton.OK, MessageBoxImage.Information);
                return;
            }
        }