/// <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)); }
/// <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); } } }
/// <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; } }
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); }