示例#1
0
        /// <summary>
        /// 初始化页面
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Data_Loaded(object sender, RoutedEventArgs e)
        {
            if (Data.DatHelper.TPJDataRead() == null || Data.DatHelper.TPJParaRead() == null)
            {
                return;
            }
            DataTable tpj_data = Data.DatHelper.TPJDataRead();

            string[] paras = Data.DatHelper.TPJParaRead();
            this.StartTime.Text       = paras[1];
            this.EndTime.Text         = paras[2];
            this.ZHHS.Text            = paras[4];
            this.Floating_Value.Text  = paras[5];
            this.CBL.Text             = paras[6];
            this.SXSZS.Text           = paras[7];
            this.BAWI.Text            = paras[8];
            this.Floating_Value1.Text = paras[9];

            datacollection = new ObservableCollection <TPJData>();
            foreach (DataRow dr in tpj_data.Rows)
            {
                TPJData tPJData = new TPJData();
                tPJData.JH = dr["JH"].ToString();
                //tPJData.PZGZ = (PZGZEnum)Enum.Parse(typeof(PZGZEnum), dr["PZGZ"].ToString());
                tPJData.AWI  = double.Parse(dr["AWI"].ToString());
                tPJData.BAWI = double.Parse(dr["BAWI"].ToString());
                tPJData.ZHHS = double.Parse(dr["ZHHS"].ToString());
                tPJData.CBL  = double.Parse(dr["CBL"].ToString());
                tPJData.JG   = dr["JG"].ToString();
                datacollection.Add(tPJData);
            }
            this.dataGrid.DataContext = datacollection;
            Dispatcher.BeginInvoke(DispatcherPriority.ApplicationIdle, new Action(ChangeColor));
        }
示例#2
0
        /// <summary>
        /// 动态变色
        /// </summary>
        private void ChangeColor()
        {
            dataGrid.UpdateLayout();
            for (int i = 0; i < this.dataGrid.Items.Count; i++)
            {
                TPJData dm = dataGrid.Items[i] as TPJData;
                if (dm == null)
                {
                    continue;
                }

                double cbl  = double.Parse(dm.CBL.ToString());
                double awi  = double.Parse(dm.AWI.ToString());
                double hsl  = double.Parse(dm.ZHHS.ToString());
                double bawi = double.Parse(dm.BAWI.ToString());
                //超标率 浅灰
                if (cbl >= double.Parse(this.CBL.Text))
                {
                    TextBlock current_cell = dataGrid.Columns[4].GetCellContent(dataGrid.Items[i]) as TextBlock;
                    current_cell.Background = new SolidColorBrush(Colors.LightGray);
                }
                //视吸水指数 浅蓝
                if (awi >= double.Parse(this.SXSZS.Text) + double.Parse(this.SXSZS_Floating_Value1.Text))
                {
                    TextBlock current_cell = dataGrid.Columns[1].GetCellContent(dataGrid.Items[i]) as TextBlock;
                    current_cell.Background = new SolidColorBrush(Colors.LightBlue);
                }
                //含水量 橙色
                if (hsl >= double.Parse(this.ZHHS.Text) + double.Parse(this.Floating_Value.Text))
                {
                    TextBlock current_cell = dataGrid.Columns[3].GetCellContent(dataGrid.Items[i]) as TextBlock;
                    current_cell.Background = new SolidColorBrush(Colors.Orange);
                }
                //比视吸水指数 浅绿
                if (bawi >= double.Parse(this.BAWI.Text) + double.Parse(this.Floating_Value1.Text))
                {
                    TextBlock current_cell = dataGrid.Columns[2].GetCellContent(dataGrid.Items[i]) as TextBlock;
                    current_cell.Background = new SolidColorBrush(Colors.LightGreen);
                }
            }
        }
示例#3
0
        /// <summary>
        /// 统计计算
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void S_CalculationBtn_Click(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrWhiteSpace(StartTime.Text) || string.IsNullOrWhiteSpace(EndTime.Text))
            {
                MessageBox.Show("请输入起止时间!"); return;
            }
            if (DateTime.Compare(DateTime.Parse(StartTime.Text), DateTime.Parse(EndTime.Text)) > 0)
            {
                MessageBox.Show("开始时间不能大于结束时间!"); return;
            }
            if (result == null)
            {
                MessageBox.Show("请先进行均值计算!"); return;
            }
            datacollection = new ObservableCollection <TPJData>();

            StringBuilder sqlStr = new StringBuilder();

            sqlStr.Append("select JH,SUM(CDbl(YXHD)) as YXHD from OIL_WELL_C GROUP BY JH");
            DataTable yxhd = DbHelperOleDb.Query(sqlStr.ToString()).Tables[0];

            MC();

            if (ws_well_group.Rows.Count != 0)
            {
                foreach (DataRow dr in ws_well_group.Rows)
                {
                    DataRow[] well_months = result.Select("JH='" + dr[0] + "'");
                    string    oilwellstr  = dr[2].ToString();
                    if (well_months.Length == 0 || string.IsNullOrWhiteSpace(oilwellstr) || oilwellstr.Split(',').Length < 2)
                    {
                        continue;
                    }
                    int    length  = well_months.Length;
                    string yxhd_   = yxhd.Select("JH='" + dr[0].ToString() + "'")[0]["YXHD"].ToString();
                    double awi_sum = 0;
                    //默认笼统注入井
                    int enumValue = 4;
                    //实例化实体
                    TPJData dm = new TPJData();

                    foreach (DataRow i in well_months)
                    {
                        if (double.Parse(i["TS"].ToString()) == 0)
                        {
                            length--;
                        }
                        else
                        {
                            awi_sum += double.Parse(i["AWI"].ToString());
                        }
                    }
                    if (double.Parse(yxhd_) != 0)
                    {
                        double b_awi = (awi_sum / length) / double.Parse(yxhd_);
                        dm.BAWI = b_awi;
                    }
                    dm.JH   = dr[0].ToString();
                    dm.AWI  = awi_sum / length;
                    dm.ZHHS = WellGroup_MoistureContent_E(oilwellstr);
                    List <double> hs_list      = OilWellMoistureContentCal(group, oilwellstr);
                    List <double> over_hs_list = new List <double>();
                    hs_list.ForEach(x =>
                    {
                        string float_value = this.Floating_Value.Text;
                        if (string.IsNullOrWhiteSpace(float_value))
                        {
                            float_value = "0";
                        }
                        if (x > double.Parse(this.ZHHS.Text) + double.Parse(float_value))
                        {
                            over_hs_list.Add(x);
                        }
                    });
                    dm.CBL = double.Parse(over_hs_list.Count.ToString()) / double.Parse(hs_list.Count.ToString());

                    datacollection.Add(dm);
                }
                this.dataGrid.DataContext = datacollection;
                Dispatcher.BeginInvoke(DispatcherPriority.ApplicationIdle, new Action(ChangeColor));
            }
            else
            {
                return;
            }
        }
示例#4
0
        public static XGYC_SCJ_BLL getBLL(string jz)
        {
            XGYC_SCJ_BLL bll = new XGYC_SCJ_BLL();

            bll.JZ = jz;

            bll.tpj = DatHelper.read_jcxx_tpjxx().FirstOrDefault(n => n.jh == jz);

            //调剖有效期:所选液体调剖剂(PC_XTPL_STATUS)中SXQ字段
            string sql = string.Format("Select SXQ From PC_XTPL_STATUS Where MC='{0}'", bll.tpj.klmc);
            object ob  = DbHelperOleDb.GetSingle(sql);

            if (ob == null)
            {
                bll.TPYXQ = 0;
            }
            else
            {
                bll.TPYXQ = double.Parse(ob.ToString());
            }


            //调剖层增油:读取RSL3.DAT中*STCS中增油量-----------------------------------------(未完成)
            double tpczy = 0;

            //日注液量Q:读取RSL3.DAT中**JCXX *TPCL 日注液量
            double           Q    = 0;
            jcxx_tpcls_model tpcl = DatHelper.read_jcxx_tpcls().FirstOrDefault(n => n.jh == jz);

            if (tpcl != null)
            {
                Q = tpcl.dqrzl;
            }

            //措施后增注段吸液量Q2:读取RSL4.DAT中*ZRYC 措施后增注段吸液量
            double       Q2   = 0;
            XGYC_ZRJ_BLL item = DatHelper_RLS4.read_XGYC_ZRJ(jz);

            if (item != null)
            {
                Q2 = item.CSQ_ZZDXYL;
            }

            //井组措施前含水 : 读取RSL1.DAT中**PROFILE CONTROL WELL *TWELL 综合含水
            TPJData tpj = DatHelper.ReadTPJ(jz);
            double  hs  = tpj.ZHHS;

            //层间增油 =(Q-Q2)*(100 - 井组措施前含水 + 年含水上升率 * 有效期 / 2)
            double cjzy = (Q - Q2) * (100 - hs + bll.NHSSSL * bll.TPYXQ / 2);

            //计算增油 = 调剖层增油 + 层间增油
            bll.ZY = tpczy + cjzy;

            //从RLS1.DAT文件中读取开始日期和结束日期
            string[] tpjpara = DatHelper.TPJParaRead();
            DateTime startDT = DateTime.Parse(tpjpara[1]);
            DateTime endDT   = DateTime.Parse(tpjpara[2]);

            //string startYearMonth = "";
            //string endYearMonth = "";

            //累注母液量:对应时间段内累注母液量的均值
            sql = string.Format("Select * from water_well_month where JH = \"{0}\" and NY between #{1}# and #{2}# Order by NY", jz, startDT.ToString("yyyy/MM"), endDT.ToString("yyyy/MM"));
            DataTable dt = DbHelperOleDb.Query(sql.ToString()).Tables[0];

            ob = dt.Compute("avg(LZMYL)", "LZMYL<>0");
            double lzmyl = double.Parse(ob.ToString());

            //累计注水量:对应时间段内存在累注母液量的累计注水量的均值
            ob = dt.Compute("avg(LJZSL)", "LZMYL<>0");
            double ljzsl = double.Parse(ob.ToString());

            //调前累计注水量:上个月的累计注水量
            startDT = startDT.AddMonths(-1);
            sql     = string.Format("Select LJZSL from water_well_month where JH = \"{0}\" and NY=#{1}#", jz, startDT.ToString("yyyy/MM"));
            dt      = DbHelperOleDb.Query(sql.ToString()).Tables[0];
            if (dt.Rows.Count != 0)
            {
                bll.dqljzsl = double.Parse(dt.Rows[0]["LJZSL"].ToString());
            }


            //计算见效时间 = (累计母液量 + 累计注水量 - 调前累计注水量)*10000 / 日注液量Q
            bll.JXSJ = (lzmyl + ljzsl - bll.dqljzsl) * 10000 / Q;

            return(bll);
        }