Exemple #1
0
        public void AddTotalRow(ref IList list)
        {
            //合计110
            string conn = "ProjectID='" + GetProjectID + "' and Col2='110'";
            IList tList = Common.Services.BaseService.GetList("SelectPs_Table_ElecPHByConn", conn);
            int[] year = GetYears();
            Ps_Table_ElecPH table1 = new Ps_Table_ElecPH();
            table1.ID += "|" + GetProjectID;
            table1.Title = "110千伏供电量合计";
            table1.ParentID = "0";
            table1.ProjectID = GetProjectID;
            table1.Col2 = "110he";
            table1.Col1 = "bind1";
            table1.Sort = 1000;
            table1.BuildEd = "total";
            for (int j = year[1]; j <= year[2]; j++)
            {
                double first = 0.0;
                for (int k = 0; k < tList.Count; k++)
                {
                    first += double.Parse(((Ps_Table_ElecPH)tList[k]).GetType().GetProperty("y" + j).GetValue((Ps_Table_ElecPH)tList[k], null).ToString());
                }
                table1.GetType().GetProperty("y" + j).SetValue(table1, first, null);
            }
            list.Add(table1);
            //220
            conn = "ProjectID='" + GetProjectID + "' and Col2='110he'";
            tList = Common.Services.BaseService.GetList("SelectPs_Table_ElecPHByConn", conn);
            Ps_Table_ElecPH table2 = new Ps_Table_ElecPH();
            table2 = (Ps_Table_ElecPH)table1.Clone();
            table2.Title = "220千伏供电量";
            table2.ParentID = "0";
            table2.ProjectID = GetProjectID;
            table2.Col2 = "220he";
            table2.Sort = 2000;
            table2.Col1 = "bind2";
            table2.BuildEd = "total";
            for (int j = year[1]; j <= year[2]; j++)
            {
                double first = double.Parse(table2.GetType().GetProperty("y" + j).GetValue(table2, null).ToString());
                for (int k = 0; k < tList.Count; k++)
                {
                    if (((Ps_Table_ElecPH)tList[k]).Title == "外网110千伏送出电量")
                        first += double.Parse(((Ps_Table_ElecPH)tList[k]).GetType().GetProperty("y" + j).GetValue((Ps_Table_ElecPH)tList[k], null).ToString());
                    else
                        first -= double.Parse(((Ps_Table_ElecPH)tList[k]).GetType().GetProperty("y" + j).GetValue((Ps_Table_ElecPH)tList[k], null).ToString());
                }
                table2.GetType().GetProperty("y" + j).SetValue(table2, first, null);
            }
            list.Add(table2);
            //500
            conn = "ProjectID='" + GetProjectID + "' and Col2='220he'";
            tList = Common.Services.BaseService.GetList("SelectPs_Table_ElecPHByConn", conn);
            Ps_Table_ElecPH table3 = new Ps_Table_ElecPH();
            Ps_Table_ElecPH table4 = new Ps_Table_ElecPH();
            table3 = (Ps_Table_ElecPH)table2.Clone();
            table3.Title = "500千伏供电量";
            table3.ParentID = "0";
            table3.ProjectID = GetProjectID;
            table3.Col2 = "500he";
            table3.Sort = 3000;
            table3.BuildEd = "total";
            table4 = (Ps_Table_ElecPH)table3.Clone();
            table4.Sort = 3001;
            table3.Col1 = "bind3";
            table4.Col1 = "bind4";
            int t = 1;
            string ji = "";
            for (int j = year[1]; j <= year[2]; j++)
            {
                double first = double.Parse(table3.GetType().GetProperty("y" + j).GetValue(table3, null).ToString());
                double sec = double.Parse(table4.GetType().GetProperty("y" + j).GetValue(table4, null).ToString());
                for (int k = 0; k < tList.Count; k++)
                {
                    if (((Ps_Table_ElecPH)tList[k]).Title == "外网220千伏送出电量")
                    {
                        first += double.Parse(((Ps_Table_ElecPH)tList[k]).GetType().GetProperty("y" + j).GetValue((Ps_Table_ElecPH)tList[k], null).ToString());
                        sec += double.Parse(((Ps_Table_ElecPH)tList[k]).GetType().GetProperty("y" + j).GetValue((Ps_Table_ElecPH)tList[k], null).ToString());
                    }
                    else if (((Ps_Table_ElecPH)tList[k]).Title == "220千伏大用户输电量")
                    {
                        if (t == 1)
                        {
                            conn = "ParentId='" + ((Ps_Table_ElecPH)tList[k]).ID + "'";
                            IList teList = Common.Services.BaseService.GetList("SelectPs_Table_ElecPHByConn", conn);
                            for (int z = 0; z < teList.Count; z++)
                            {
                                ji += ((Ps_Table_ElecPH)teList[z]).Title + (z == teList.Count - 1 ? ")" : "、");
                            }
                            t = 2;
                        }
                        sec += double.Parse(((Ps_Table_ElecPH)tList[k]).GetType().GetProperty("y" + j).GetValue((Ps_Table_ElecPH)tList[k], null).ToString());
                    }
                    else
                    {
                        first -= double.Parse(((Ps_Table_ElecPH)tList[k]).GetType().GetProperty("y" + j).GetValue((Ps_Table_ElecPH)tList[k], null).ToString());
                        sec -= double.Parse(((Ps_Table_ElecPH)tList[k]).GetType().GetProperty("y" + j).GetValue((Ps_Table_ElecPH)tList[k], null).ToString());
                    }

                }
                table3.GetType().GetProperty("y" + j).SetValue(table3, first, null);
                table4.GetType().GetProperty("y" + j).SetValue(table4, sec, null);
            }
            table3.Title = "500千伏供电量(不计"+ji;
            table4.Title = "500千伏供电量(计" + ji;
            list.Add(table3);
            list.Add(table4);
        }