Exemplo n.º 1
0
        public DataTable TTKyThuat(string ma_dviqlyDN, string maTram, ref string TonThat, int thang, int nam, int ngay, int chuky)
        {
            // int thang=DateTime.Now.Month-1;
            TonThat = "0";
            //tính toàn tổn thất kỹ thuật
            DataTable dtSLg_DD = dbTT.TTTT_SELECT_SLG_DUONGDAY_TRAM(ma_dviqlyDN, maTram, thang, nam, ngay, chuky);

            //dtSLg_DD.Columns.Add("Ngay", typeof(double));
            //dtSLg_DD.Columns.Add("ChuKy", typeof(double));
            //for (int i = 0; i < dtSLg_DD.Rows.Count; i++)
            //{
            //    DataRow[] dr = dtSLThang.Select("MACOT=" + dtSLg_DD.Rows[i]["DIEMCUOI"]);
            //    if (dr.Length > 0)
            //        dtSLg_DD.Rows[i]["SANLUONGTHANG"] = dr[0]["SANLUONGTHANG"];
            //    dtSLg_DD.Rows[i]["Ngay"] = ngay;
            //    dtSLg_DD.Rows[i]["ChuKy"] = chuky;
            //}

            dtSLg_DD.Columns.Add("P_BQ", typeof(double));
            dtSLg_DD.Columns.Add("Q_BQ", typeof(double));
            dtSLg_DD.Columns.Add("I_tt1", typeof(double));
            dtSLg_DD.Columns.Add("P_tt1", typeof(double));
            dtSLg_DD.Columns.Add("U_tt", typeof(double));
            dtSLg_DD.Columns.Add("I_tt2", typeof(double));
            dtSLg_DD.Columns.Add("P_tt2", typeof(double));

            //DataTable dtSLGNut = dtSLg_DD.Select("SANLUONGTHANG>0").CopyToDataTable();
            //DataTable dtSLGDay = dtSLg_DD.Select("SANLUONGTHANG =0 ").CopyToDataTable();
            int intRoWSum = 0;

            for (int i = 0; i < dtSLg_DD.Rows.Count; i++)
            {
                if (dtSLg_DD.Rows[i]["SANLUONGTHANG"] + "" == "0")
                {
                    intRoWSum++;
                    DataRow[] dr = dtSLg_DD.Select("DIEMDAU='" + dtSLg_DD.Rows[i]["DIEMCUOI"] + "'");
                    if (dr.Length > 0)
                    {
                        dtSLg_DD.Rows[i]["SANLUONGTHANG"] = dr.CopyToDataTable().Compute("SUM(SANLUONGTHANG)", "1=1");
                    }
                }

                //dtSLg_DD.Rows[i]["P_BQ"] = double.Parse(dtSLg_DD.Rows[i]["SANLUONGTHANG"] + "") / (double.Parse(dtSLg_DD.Rows[i]["DAYBYMONTH"] + "") * 24);
                //dtSLg_DD.Rows[i]["Q_BQ"] = Math.Sqrt(Math.Pow(double.Parse(dtSLg_DD.Rows[i]["SANLUONGTHANG"] + "") / (double.Parse(dtSLg_DD.Rows[i]["HESOCONGSUAT"] + "") / 100), 2) - Math.Pow(double.Parse(dtSLg_DD.Rows[i]["SANLUONGTHANG"] + ""), 2)) / (double.Parse(dtSLg_DD.Rows[i]["DAYBYMONTH"] + "") * 24);

                dtSLg_DD.Rows[i]["P_BQ"] = double.Parse(dtSLg_DD.Rows[i]["SANLUONGTHANG"] + "");
                dtSLg_DD.Rows[i]["Q_BQ"] = Math.Sqrt(Math.Pow(double.Parse(dtSLg_DD.Rows[i]["SANLUONGTHANG"] + "") / (double.Parse(dtSLg_DD.Rows[i]["HESOCONGSUAT"] + "") / 100), 2) - Math.Pow(double.Parse(dtSLg_DD.Rows[i]["SANLUONGTHANG"] + ""), 2));

                dtSLg_DD.Rows[i]["I_tt1"] = double.Parse(dtSLg_DD.Rows[i]["P_BQ"] + "") / (3 * double.Parse(dtSLg_DD.Rows[i]["TONGDIENAP"] + "") * (double.Parse(dtSLg_DD.Rows[i]["HESOCONGSUAT"] + "") / 100)) * 1000;
                dtSLg_DD.Rows[i]["P_tt1"] = 3 * Math.Pow(double.Parse(dtSLg_DD.Rows[i]["I_tt1"] + ""), 2) * double.Parse(dtSLg_DD.Rows[i]["DIENTROOM"] + "");
            }
            for (int i = dtSLg_DD.Rows.Count - 1; i >= 0; i--)
            {
                if (i == dtSLg_DD.Rows.Count - 1)
                {
                    dtSLg_DD.Rows[i]["U_tt"] = double.Parse(dtSLg_DD.Rows[i]["TONGDIENAP"] + "") - (double.Parse(dtSLg_DD.Rows[i]["I_tt1"] + "") * double.Parse(dtSLg_DD.Rows[i]["DIENTROOM"] + ""));
                }
                else
                {
                    dtSLg_DD.Rows[i]["U_tt"] = double.Parse(dtSLg_DD.Rows[i + 1]["U_tt"] + "") - double.Parse(dtSLg_DD.Rows[i]["I_tt1"] + "") * double.Parse(dtSLg_DD.Rows[i]["DIENTROOM"] + "");
                }
            }
            for (int i = 0; i < dtSLg_DD.Rows.Count; i++)
            {
                // if (dtSLg_DD.Rows[i]["DIEMDAU"]+"" == dtSLg_DD.Rows[i]["DIEMCUOI"]+"")
                if (intRoWSum >= i && i < dtSLg_DD.Rows.Count - 1)
                {
                    dtSLg_DD.Rows[i]["I_tt2"] = double.Parse(dtSLg_DD.Rows[i]["P_BQ"] + "") / (3 * double.Parse(dtSLg_DD.Rows[i + 1]["U_tt"] + "") * (double.Parse(dtSLg_DD.Rows[i]["HESOCONGSUAT"] + "") / 100)) * 1000;
                }
                else
                {
                    DataRow[] dr = dtSLg_DD.Select("DIEMDAU='" + dtSLg_DD.Rows[i]["DIEMCUOI"] + "'");
                    if (dr.Length > 0)
                    {
                        dtSLg_DD.Rows[i]["I_tt2"] = dr.CopyToDataTable().Compute("SUM(I_tt2)", "1=1");
                    }
                    else
                    {
                        dtSLg_DD.Rows[i]["I_tt2"] = 0;
                    }
                }
                dtSLg_DD.Rows[i]["P_tt2"] = 3 * Math.Pow(double.Parse(dtSLg_DD.Rows[i]["I_tt2"] + ""), 2) * double.Parse(dtSLg_DD.Rows[i]["DIENTROOM"] + "");
            }
            if (dtSLg_DD.Rows.Count > 0)
            {
                TonThat = (Math.Round(decimal.Parse(dtSLg_DD.Compute("SUM(P_tt2)", "1=1") + ""), 2)) + "";
                //insert tổn thất
                dbTT.Insert_TTTT_TONTHATKYTHUAT_THANG(0, ma_dviqlyDN, maTram, thang, nam, decimal.Parse(TonThat), DateTime.Now, ngay, chuky);
            }
            return(dtSLg_DD);
        }