// 初始化数据连接 private void InitDB() { // 考虑真的要用单例吗 m_dgvRain.InitDataSource(CDBDataMgr.GetInstance().GetRainProxy()); m_dgvRain.InitDataSource(CDBDataMgr.GetInstance().GetFxfxProxy()); m_dgvWater.InitDataSource(CDBDataMgr.GetInstance().GetWaterProxy()); m_dgvVoltage.InitDataSource(CDBDataMgr.GetInstance().GetVoltageProxy()); m_dgvVoltage.InitDataSource(CDBDataMgr.GetInstance().GetPwdProxy()); m_dgvSoilData.InitDataSource(CDBDataMgr.GetInstance().GetObsProxy()); m_dgvSoilData.InitDataSource(CDBSoilDataMgr.Instance.GetSoilDataProxy()); m_chartRain.InitDataSource(CDBDataMgr.GetInstance().GetRainProxy()); m_chartWaterFlow.InitDataSource(CDBDataMgr.GetInstance().GetWaterProxy()); m_chartVoltage.InitDataSource(CDBDataMgr.GetInstance().GetVoltageProxy()); m_charSoilData.InitDataSource(CDBSoilDataMgr.Instance.GetSoilDataProxy()); List <CEntitySubCenter> listSubCenter = CDBDataMgr.Instance.GetAllSubCenter(); m_listStations = CDBDataMgr.Instance.GetAllStation(); m_listSoilStations = CDBSoilDataMgr.Instance.GetAllSoilStation(); cmb_SubCenter.Items.Add(CS_All_Station); for (int i = 0; i < listSubCenter.Count; ++i) { cmb_SubCenter.Items.Add(listSubCenter[i].SubCenterName); } this.cmb_SubCenter.SelectedIndex = 0; }
//private void btn_Save_Click_1(object sender, EventArgs e) //{ // //// 完成添加 // //if (AssertInputValid()) // //{ // // this.Close(); // // this.DialogResult = DialogResult.OK; // //} // // 完成添加 // CEntityStation station = GenerateStationFromUI(); // if (null == station) // { // return; // } // // m_listStationAdded.Add(station); // // m_listStationCombination.Add(station); // CDBDataMgr.GetInstance().m_mapStation.Add(station.StationID, station); // //触发事件,并将修改后的文本回传 // AddStationEvent(station); // this.Close(); // //InnerRefreshUI(); // //// 修改成功 // //btn_Save.Enabled = false; // //btn_Revert.Enabled = false; //} private void btn_Save_Click(object sender, EventArgs e) { try { //// 完成添加 //if (AssertInputValid()) //{ // this.Close(); // this.DialogResult = DialogResult.OK; //} // 完成添加 CEntityStation station = GenerateStationFromUI(); if (null == station) { return; } // m_listStationAdded.Add(station); // m_listStationCombination.Add(station); CDBDataMgr.GetInstance().m_mapStation.Add(station.StationID, station); //触发事件,并将修改后的文本回传 AddStationEvent(station); //this.Close(); this.Hide(); MessageBox.Show("测站添加完成! ", "提示 ", MessageBoxButtons.OK, MessageBoxIcon.Information); this.Close(); //InnerRefreshUI(); //// 修改成功 //btn_Save.Enabled = false; //btn_Revert.Enabled = false; } catch (Exception ex) { } }
private void Init() { tableLayoutPanel.SuspendLayout(); m_dgvSubCenter = new CDataGridViewSubCenter(); m_dgvSubCenter.AllowUserToAddRows = false; m_dgvSubCenter.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; //m_dgvRain.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; //m_dataGridView.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders; m_dgvSubCenter.Dock = DockStyle.Fill; //m_dgvUser.AutoSize = true; //m_dataGridView.ReadOnly = true; //只读 m_dgvSubCenter.AllowUserToResizeRows = false; m_dgvSubCenter.RowHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; m_dgvSubCenter.Margin = new System.Windows.Forms.Padding(0, 0, 0, 1); m_dgvSubCenter.RowHeadersWidth = 50; m_dgvSubCenter.ColumnHeadersHeight = 25; m_dgvSubCenter.SubCenterCountChanged += (s, e) => { labelUserCount.Text = String.Format("共 {0} 个分中心", e.Value); }; tableLayoutPanel.Controls.Add(m_dgvSubCenter, 0, 1); tableLayoutPanel.ResumeLayout(false); m_dgvSubCenter.InitDataSource(CDBDataMgr.GetInstance().GetSubCenterProxy()); m_dgvSubCenter.SetEditMode(true); //目前只支持编写了编辑模式 m_dgvSubCenter.LoadData(); }
private void Init() { tableLayoutPanel.SuspendLayout(); m_dgvPort = new CDataGridViewSerialPort(); m_dgvPort.AllowUserToAddRows = false; m_dgvPort.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; m_dgvPort.Dock = DockStyle.Fill; m_dgvPort.AllowUserToResizeRows = false; m_dgvPort.RowHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; m_dgvPort.Margin = new System.Windows.Forms.Padding(0, 0, 0, 1); m_dgvPort.RowHeadersWidth = 50; m_dgvPort.ColumnHeadersHeight = 25; m_dgvPort.SetEditMode(true); m_dgvPort.SerialPortCountChanged += (s, e) => { labelUserCount.Text = String.Format("共{0}个端口", e.Value); }; tableLayoutPanel.Controls.Add(m_dgvPort, 0, 1); tableLayoutPanel.ResumeLayout(false); m_dgvPort.InitDataSource(CDBDataMgr.GetInstance().GetSerialPortProxy()); if (!m_dgvPort.LoadData()) { //加载失败 //this.Close(); //关闭窗体 // 抛出异常,结束显示 throw new Exception("未配置通讯方式和数据协议,配置串口"); } }
private ToolStripMenuItem m_itemRecoverDefault; //恢复默认 public CDataGridViewSoilDataManage() : base() { InitDataGridView(); m_listSubCenter = CDBDataMgr.GetInstance().GetAllSubCenter(); CProtocolEventManager.DownForUI += this.DownForUI_EventHandler_4; }
/// <summary> /// 初始化数据 /// </summary> private void InitDataSource() { try { m_listSubCenter = CDBDataMgr.Instance.GetAllSubCenter(); m_listStation = CDBDataMgr.GetInstance().GetAllStation(); //m_listSoilStation = CDBSoilDataMgr.GetInstance().GetAllSoilStation(); m_listStationCombination = new List <CEntityStation>(m_listStation.ToArray()); //可以的啦 } catch (Exception ex) { } }
/// <summary> /// 初始化数据 /// </summary> private void InitDataSource() { try { m_listSubCenter = CDBDataMgr.Instance.GetAllSubCenter(); m_listStation = CDBDataMgr.GetInstance().GetAllStation(); m_listSoilStation = CDBSoilDataMgr.GetInstance().GetAllSoilStation(); m_listStationCombination = new List <CEntityStation>(m_listStation.ToArray()); //可以的啦 } #pragma warning disable CS0168 // 声明了变量“ex”,但从未使用过 catch (Exception ex) { } #pragma warning restore CS0168 // 声明了变量“ex”,但从未使用过 }
/// <summary> /// 初始化分中心、站点信息 /// </summary> //private void InitStation() //{ // var m_listStation = CDBDataMgr.GetInstance().GetAllStation(); // var m_listSubCenter = CDBDataMgr.GetInstance().GetAllSubCenter(); // var dics = new Dictionary<CEntitySubCenter, IList<CEntityStation>>(); // var listSubcenters = new List<int>(); // foreach (var center in m_listSubCenter) // { // int subcenterId = center.SubCenterID; // var listStations = new List<CEntityStation>(); // foreach (var station in m_listStation) // { // if (station.SubCenterID.HasValue && station.SubCenterID == subcenterId) // { // listStations.Add(station); // } // } // if (!listSubcenters.Contains(subcenterId)) // { // dics.Add(center, listStations); // } // } // InitStation(dics); //} private void InitStation() { var m_listStation = CDBDataMgr.GetInstance().GetAllStation(); var m_listSubCenter = CDBDataMgr.GetInstance().GetAllSubCenter(); //var m_listSoilStation = CDBSoilDataMgr.GetInstance().GetAllSoilStation(); var m_listSoilStation = new List <CEntitySoilStation>(); //var dics = new Dictionary<CEntitySubCenter, IList<CEntityStation>>(); var dics = new Dictionary <CEntitySubCenter, IList <Object> >(); var dicsSoil = new Dictionary <CEntitySubCenter, IList <CEntitySoilStation> >(); var listSubcenters = new List <int>(); foreach (var center in m_listSubCenter) { int subcenterId = center.SubCenterID; var listStations = new List <Object>(); //var listSoilStations = new List<Object>(); foreach (var station in m_listStation) { if (station.SubCenterID.HasValue && station.SubCenterID == subcenterId) { listStations.Add(station); } } //foreach (var soilstation in m_listSoilStation) //{ // if (soilstation.SubCenterID.HasValue && soilstation.SubCenterID == subcenterId) // { // listStations.Add(soilstation); // } //} if (!listSubcenters.Contains(subcenterId)) { dics.Add(center, listStations); // dics.Add(center, listSoilStations); // dicsSoil.Add(center, listSoilStations); } } if (!this.IsHandleCreated) { InitStation(dics); } else { instance.Invoke(new Action(() => { InitStation(dics); })); } }
/// <summary> /// 初始化分中心、站点信息 /// </summary> //private void InitStation() //{ // var m_listStation = CDBDataMgr.GetInstance().GetAllStation(); // var m_listSubCenter = CDBDataMgr.GetInstance().GetAllSubCenter(); // var dics = new Dictionary<CEntitySubCenter, IList<CEntityStation>>(); // var listSubcenters = new List<int>(); // foreach (var center in m_listSubCenter) // { // int subcenterId = center.SubCenterID; // var listStations = new List<CEntityStation>(); // foreach (var station in m_listStation) // { // if (station.SubCenterID.HasValue && station.SubCenterID == subcenterId) // { // listStations.Add(station); // } // } // if (!listSubcenters.Contains(subcenterId)) // { // dics.Add(center, listStations); // } // } // InitStation(dics); //} private void InitStation() { var m_listStation = CDBDataMgr.GetInstance().GetAllStation(); var m_listSubCenter = CDBDataMgr.GetInstance().GetAllSubCenter(); var m_listSoilStation = CDBSoilDataMgr.GetInstance().GetAllSoilStation(); // var dics = new Dictionary<CEntitySubCenter, IList<CEntityStation>>(); var dics = new Dictionary<CEntitySubCenter, IList<Object>>(); var dicsSoil = new Dictionary<CEntitySubCenter, IList<CEntitySoilStation>>(); var listSubcenters = new List<int>(); foreach (var center in m_listSubCenter) { int subcenterId = center.SubCenterID; var listStations = new List<Object>(); var listSoilStations = new List<Object>(); foreach (var station in m_listStation) { if (station.SubCenterID.HasValue && station.SubCenterID == subcenterId) { listStations.Add(station); } } foreach (var soilstation in m_listSoilStation) { if (soilstation.SubCenterID.HasValue && soilstation.SubCenterID == subcenterId) { listStations.Add(soilstation); } } if (!listSubcenters.Contains(subcenterId)) { dics.Add(center, listStations); // dics.Add(center, listSoilStations); // dicsSoil.Add(center, listSoilStations); } } InitStation(dics); }
// 初始化数据 public void InitDataSource() { m_dgvUser.InitDataSource(CDBDataMgr.GetInstance().GetUserProxy()); }
public CDataGridViewSystemClock() : base() { InitDataGridView(); m_listSubCenter = CDBDataMgr.GetInstance().GetAllSubCenter(); }
private void AssertWaterData(CEntityWater water, ref ERTDDataState rtdState, bool bNotityWarning = true) { // 判断水量信息是否合法,写入系统信息或者告警信息 CEntityStation station = CDBDataMgr.GetInstance().GetStationById(water.StationID); StringBuilder errinfo = new StringBuilder(); // 判断是否超过最大值 rtdState = ERTDDataState.ENormal; if (station.DWaterMax.HasValue) { if (water.WaterStage > station.DWaterMax) { errinfo.AppendFormat("水位 {0} 超过最大值 {1} 站点编号:{2}", water.WaterStage.ToString("0.00"), station.DWaterMax.Value.ToString("0.00"), water.StationID); rtdState = ERTDDataState.EError; } } // 判断是否低于最小值 if (station.DWaterMin.HasValue) { if (water.WaterStage < station.DWaterMin) { errinfo.AppendFormat("水位 {0} 低于最小值 {1} 站点编号:{2}", water.WaterStage.ToString("0.00"), station.DWaterMin.Value.ToString("0.00"), water.StationID); rtdState = ERTDDataState.EError; } } // 判断是否超过允许变化值,暂时还未考虑好 if (station.DWaterChange.HasValue && station.LastWaterStage.HasValue) { Decimal change = water.WaterStage - station.LastWaterStage.Value; if (change > station.DWaterChange) { errinfo.AppendFormat("水位变化 {0} 超过允许值{1} 站点编号:{2}", change.ToString("0.00"), station.DWaterChange.Value.ToString("0.00"), water.StationID); rtdState = ERTDDataState.EError; } } // 更新水位值,便于计算水位变化 station.LastWaterStage = water.WaterStage; // 通知其它页面 if (!errinfo.ToString().Equals("")) { if (bNotityWarning) { CSystemInfoMgr.Instance.AddInfo(errinfo.ToString(), water.TimeCollect, ETextMsgState.EError); CWarningInfoMgr.Instance.AddInfo(errinfo.ToString(), water.TimeCollect, EWarningInfoCodeType.EWater, station.StationID); if (flag == 0) { flag = 1; ////MessageBoxForm mbForm = new MessageBoxForm(); ////mbForm.StartPosition = FormStartPosition.CenterParent; ////mbForm.Text = "水位报警"; ////mbForm.label3.Text = water.TimeCollect.ToString(); ////mbForm.label1.Text = errinfo.ToString(); ////mbForm.label2.Text = "是否关闭报警声音?"; ////mbForm.TopMost = true; ////mbForm.ShowDialog(); string info = water.TimeCollect.ToString() + "\r\n" + "\r\n" + errinfo.ToString() + "\r\n" + "\r\n" + "是否关闭报警声音?" + "\r\n"; Thread t = new Thread(new ParameterizedThreadStart(MessageShow)); t.Start(info); } } } }
public void Import(CBatchStruct batch, DateTime DStartTime, DateTime DEndTime, bool isUpdate = false) { DateTime? lastTime = null; ERTDDataState tmpRTDWaterDataState = ERTDDataState.ENormal; ////gm 1024 $60091K02031610220800084505230800084505 //string rawString = rawData; //string startTime = rawString.Substring(11, 10); //string endTime = rawString.Substring(27, 6); //string strYear = 20 + startTime.Substring(0, 2); //string strMonth = startTime.Substring(2, 2); //string strStartDay = startTime.Substring(4, 2); //string strStartHour = startTime.Substring(6, 2); //string strStartMinute = startTime.Substring(8, 2); //string strEndDay = endTime.Substring(0, 2); //string strEndHour = endTime.Substring(2, 2); //string strEndMinute = endTime.Substring(4, 2); ////DateTime DStartTime = new DateTime(int.Parse(strYear), int.Parse(strMonth), int.Parse(strStartDay), int.Parse(strStartHour), int.Parse(strStartMinute), 0); ////DateTime DEndTime = new DateTime(int.Parse(strYear), int.Parse(strMonth), int.Parse(strEndDay), int.Parse(strEndHour), int.Parse(strEndMinute), 0); List <CTimeAndData> datas = batch.Datas; string stationid = batch.StationID; EStationType type = batch.StationType; CEntityStation station = m_proxyStation.QueryById(stationid); // if (type == EStationType.ERainFall) if (type == EStationType.ERiverWater) // if (true) { for (int i = 0; i < datas.Count; i++) { if (lastTime == datas[i].Time) { lastTime = datas[i].Time; continue; } lastTime = datas[i].Time; int status = 1; DateTime dt = datas[i].Time; string data = datas[i].Data.ToString(); int RawtotalRain = int.Parse(data.Substring(0, 4)); Nullable <Decimal> RawrainAccuracy = decimal.Parse((data.Substring(4, 2))); Nullable <Decimal> rainAccuracy = RawrainAccuracy / 10; Nullable <Decimal> totalRain = RawtotalRain * rainAccuracy; CEntityRain LastSharpMes = new CEntityRain(); CEntityRain LastDayMes = new CEntityRain(); //如果是第一条数据,则通过数据库获取上一条数据 if (i == 0) { Nullable <Decimal> lastTotalRain = null, lastDayTotalRain = null, lastSharpClockTotalRain = null; Nullable <DateTime> lastDayTime = null; Nullable <DateTime> lastClockSharpTime = null; Nullable <DateTime> lastDataTime = null; Nullable <Decimal> lastPeriodRain = null; Nullable <EChannelType> lastChannelType = null; Nullable <EMessageType> lastMessageType = null; LastSharpMes = m_proxyRain.GetLastSharpRain(stationid, dt); LastDayMes = m_proxyRain.GetLastDayRain(stationid, dt); lastTotalRain = m_proxyRain.GetLastRain(stationid, dt).TotalRain; lastSharpClockTotalRain = LastSharpMes.TotalRain; lastDayTotalRain = LastDayMes.TotalRain; lastClockSharpTime = LastSharpMes.TimeCollect; lastDayTime = LastDayMes.TimeCollect; //改动 // 查询成功 station.LastTotalRain = lastTotalRain; station.LastDayTotalRain = lastDayTotalRain; station.LastPeriodRain = lastPeriodRain; if (lastDataTime != null && lastDataTime.HasValue) { station.LastDataTime = lastDataTime; } if (lastClockSharpTime != null && lastClockSharpTime.HasValue) { station.LastClockSharpTime = lastClockSharpTime; } if (lastDayTime != null && lastDayTime.HasValue) { station.LastDayTime = lastDayTime; } if (lastChannelType != null && lastChannelType.HasValue) { station.LastChannelType = lastChannelType; } if (lastMessageType != null && lastMessageType.HasValue) { station.LastMessageType = lastMessageType; } //int year = dt.Year; //int month = dt.Month; //int day = dt.Day; //DateTime tmp1 = new DateTime(year, month, day, 8, 0, 0); //DateTime tmp2 = tmp1.Subtract(new TimeSpan(24, 0, 0)); //station.LastDayTime = tmp2; //lastSharpClockTotalRain = m_proxyRain.GetLastClockSharpTotalRain(stationid, dt); //lastDayTotalRain = m_proxyRain.GetLastDayTotalRain(stationid, tmp2); station.LastTotalRain = lastTotalRain; station.LastClockSharpTotalRain = lastSharpClockTotalRain; station.LastClockSharpTime = lastClockSharpTime; station.LastDayTotalRain = lastDayTotalRain; station.LastDayTime = lastDayTime; } CEntityRain rain = new CEntityRain(); rain.StationID = stationid; rain.TimeCollect = dt; rain.TotalRain = totalRain; // rain.DifferneceRain = CalDifferenceRain(rainAccuracy, RawtotalRain, station.LastTotalRain, station.DRainChange, ref status); if ((dt.Minute + dt.Second) == 0) { //rain.PeriodRain = CalPeriodRain(rainAccuracy, RawtotalRain, dt, station.LastClockSharpTotalRain); rain.PeriodRain = CalPeriodRain_2(rainAccuracy, RawtotalRain, dt, station.LastClockSharpTotalRain, station.LastClockSharpTime, station.LastTotalRain); station.LastClockSharpTotalRain = totalRain; station.LastClockSharpTime = dt; } if (dt.Hour == 8) { //rain.DayRain = CalDayRain(rainAccuracy, RawtotalRain, dt, station.LastDayTime, station.LastDayTotalRain); rain.DayRain = CalDayRain_2(rainAccuracy, RawtotalRain, dt, station.LastDayTotalRain, station.LastDayTime); station.LastDayTotalRain = totalRain; station.LastDayTime = dt; } rain.DifferneceRain = CalDifferenceRain_1(rainAccuracy, RawtotalRain, station.LastTotalRain, station.DRainChange, ref status); station.LastTotalRain = totalRain; // 待检测 rain.ChannelType = EChannelType.GPRS; rain.MessageType = EMessageType.Batch; rain.TimeRecieved = DateTime.Now; if (status == 1) { rain.BState = 1; } else { rain.BState = 0; } rainResults.Add(rain); } List <CEntityRain> listInsert = new List <CEntityRain>(); List <CEntityRain> listUpdate = new List <CEntityRain>(); List <DateTime> listDateTime = m_proxyRain.getExistsTime(stationid, DStartTime, DEndTime); for (int i = 0; i < rainResults.Count; i++) { if (listDateTime.Contains(rainResults[i].TimeCollect)) { listUpdate.Add(rainResults[i]); } else { listInsert.Add(rainResults[i]); } } m_proxyRain.AddNewRows(listInsert); //写入数据库 m_proxyRain.UpdateRows(listUpdate); //更新 //m_proxyRain.AddOrUpdate(rainResults); } //操作water表 // if (type == EStationType.ERiverWater) if (type == EStationType.ERainFall) { for (int i = 0; i < datas.Count; i++) { decimal data = 0; DateTime dt = datas[i].Time; try { string strData = datas[i].Data.Trim(); //decimal data = int.Parse(datas[i].Data) / 100; data = decimal.Parse(strData) / 100; } #pragma warning disable CS0168 // 声明了变量“e”,但从未使用过 catch (Exception e) #pragma warning restore CS0168 // 声明了变量“e”,但从未使用过 { break; } //操作water表 CEntityWater water = new CEntityWater(); water.StationID = station.StationID; water.TimeCollect = dt; water.TimeRecieved = DateTime.Now; if (station.DWaterBase.HasValue) { // 减去水位基值 water.WaterStage = data + station.DWaterBase.Value; } else { water.WaterStage = data; } water.WaterFlow = CDBDataMgr.GetInstance().GetWaterFlowByWaterStageAndStation(stationid, data); //此处 waterflow需要计算的 water.ChannelType = EChannelType.GPRS; water.MessageType = EMessageType.Batch; AssertWaterData(water, ref tmpRTDWaterDataState); //if (tmpRTDWaterDataState == ERTDDataState.ENormal) //{ // water.state = 1; //} //if (tmpRTDWaterDataState == ERTDDataState.EError) //{ // water.state = 0; //} //if (tmpRTDWaterDataState == ERTDDataState.EWarning) //{ // water.state = 2; //} waterResults.Add(water); } List <CEntityWater> listInsert = new List <CEntityWater>(); List <CEntityWater> listUpdate = new List <CEntityWater>(); List <DateTime> listDateTime = m_proxyWater.getExistsTime(stationid, DStartTime, DEndTime); for (int i = 0; i < waterResults.Count; i++) { if (listDateTime.Contains(waterResults[i].TimeCollect)) { listUpdate.Add(waterResults[i]); } else { listInsert.Add(waterResults[i]); } } // m_proxyWater.AddNewRows(listInsert); //写入数据库 m_proxyWater.UpdateRows(listUpdate); //更新数据库 //m_proxyWater.AddOrUpdate(waterResults); } }
private void tsButImport_Click(object sender, EventArgs e) { // 从文件中导入,格式如(1,212.23,2230.344),如果不对,不导入 OpenFileDialog dlg = new OpenFileDialog(); try { dlg.Title = "选择水情测站文件"; dlg.Filter = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*"; DialogResult result = dlg.ShowDialog(); if (DialogResult.OK == result) { // 打开文件,并进行处理 //CMessageBox msgBox = new CMessageBox() { MessageInfo = "正在处理数据" }; //msgBox.ShowDialog(this); StreamReader reader = new StreamReader(dlg.FileName, Encoding.Default); string linebuffer; int linenumber = 0; string strErrorInfo = ""; // 获取数据库中已经存在的GPRS号码 gm 1107 List <string> gprs = m_proxyStation.getAllGprs(); List <string> soilgprs = m_proxySoilStation.getAllGprs(); for (int i = 0; i < soilgprs.Count; i++) { gprs.Add(soilgprs[i]); } while ((linebuffer = reader.ReadLine()) != null && linebuffer.Length > 20) { // 处理一行数据 linenumber += 1; if (!DealWithLineData(linebuffer, linenumber, ref strErrorInfo, ref gprs)) { // 数据非法 //msgBox.CloseDialog(); MessageBox.Show(strErrorInfo); // 显示错误信息 return; } } reader.Close(); //msgBox.CloseDialog(); if (m_listImport.Count > 0) { m_proxyStation.AddRange(m_listImport); for (int i = 0; i < m_listImport.Count; i++) { CDBDataMgr.GetInstance().m_mapStation.Add(m_listImport[i].StationID, m_listImport[i]); } m_listImport.Clear(); } //if (m_listImport.Count > 0) //{ // m_proxyStation.AddRange(m_listImport); // for (int i = 0; i < m_listImport.Count; i++) // { // CDBDataMgr.GetInstance().m_mapStation.Add(m_listImport[i].StationID, m_listImport[i]); // } // m_listImport.Clear(); //} MessageBox.Show("数据导入成功"); m_dgvStatioin.ClearAllRows(); CDBDataMgr.Instance.UpdateAllStation(); m_dgvStatioin.Revert(); // 加载数据 //m_dgvStatioin.LoadData(); }//end of ok } catch (Exception ex) { Debug.WriteLine(ex.ToString()); } finally { this.Focus(); //防止窗体最小化 } }
private void export_Click(object sender, EventArgs e) { DateTime startTimeTmp = DateTimer.Value; DateTime endTimeTmp = endDateTime.Value; DateTime startTime = new DateTime(startTimeTmp.Year, startTimeTmp.Month, startTimeTmp.Day, 0, 0, 0); DateTime endTime = new DateTime(endTimeTmp.Year, endTimeTmp.Month, endTimeTmp.Day, 0, 0, 0); // 获取是雨量还是水位类型 string type = getType(); // 获取被选择的站点 // 获取站点信息 默认为全部站点 List <string> stationSelected = new List <string>(); int flagInt = 0; for (int i = 0; i < StationSelect.Items.Count; i++) { if (StationSelect.GetItemChecked(i)) { flagInt++; } } if (flagInt == 0) { for (int i = 0; i < StationSelect.Items.Count; i++) { stationSelected.Add(StationSelect.GetItemText(StationSelect.Items[i])); } } else { for (int i = 0; i < StationSelect.Items.Count; i++) { if (StationSelect.GetItemChecked(i)) { stationSelected.Add(StationSelect.GetItemText(StationSelect.Items[i])); } } } #region 雨量数据 if (type.Equals("雨 量")) { CMessageBox box = new CMessageBox(); box.MessageInfo = "正在导出雨量数据"; box.ShowDialog(this); try { for (int i = 0; i < stationSelected.Count; i++) { string stationid = stationSelected[i].Split('|')[0]; string stationname = stationSelected[i].Split('|')[1]; List <CEntityRain> rainList = new List <CEntityRain>(); List <string> rainInfoText = new List <string>(); rainList = CDBDataMgr.GetInstance().getListRainByTime(stationid, startTime, endTime); for (int j = 0; j < rainList.Count; j++) { DateTime dataAndTime = rainList[j].TimeCollect; string rainInfo = string.Empty; rainInfo = rainInfo + "\""; string tmp = dataAndTime.ToString("d").Substring(2); string year = dataAndTime.Year.ToString().Substring(2); rainInfo = rainInfo + year + "/"; string month = dataAndTime.Month.ToString(); if (month.Length < 2) { month = "0" + month; } rainInfo = rainInfo + month + "/"; string day = dataAndTime.Day.ToString(); if (day.Length < 2) { day = "0" + day; } rainInfo = rainInfo + day + " "; string hour = dataAndTime.Hour.ToString(); if (hour.Length < 2) { hour = "0" + hour; } rainInfo = rainInfo + hour; string minute = dataAndTime.Minute.ToString(); if (minute.Length < 2) { minute = "0" + minute; } rainInfo = rainInfo + ":" + minute; rainInfo = rainInfo + " "; string rain = rainList[j].TotalRain.ToString(); for (int k = 0; k < 6 - rain.Length; k++) { rainInfo = rainInfo + "0"; } rainInfo = rainInfo + rain; rainInfo = rainInfo + "\""; rainInfoText.Add(rainInfo); } if (rainInfoText != null && rainInfoText.Count > 1) { string fileName = "rainData" + "\\" + stationname + "站" + startTime.ToString("D") + "到" + endTime.ToString("D") + "雨量.Dat"; exportTxt(rainInfoText, fileName); } } box.CloseDialog(); MessageBox.Show("导出雨量数据成功"); } catch (Exception e1) { box.CloseDialog(); MessageBox.Show("导出水位数据失败"); } } #endregion #region 水位数据 if (type.Equals("水 位")) { CMessageBox box = new CMessageBox(); box.MessageInfo = "正在导出水位数据"; box.ShowDialog(this); try { for (int i = 0; i < stationSelected.Count; i++) { List <CEntityWater> waterList = new List <CEntityWater>(); string stationid = stationSelected[i].Split('|')[0]; string stationname = stationSelected[i].Split('|')[1]; List <string> waterInfoText = new List <string>(); waterList = CDBDataMgr.GetInstance().GetWaterByTime(stationid, startTime, endTime); for (int j = 0; j < waterList.Count; j++) { DateTime dataAndTime = waterList[j].TimeCollect; string waterInfo = string.Empty; waterInfo = waterInfo + "\""; string year = dataAndTime.Year.ToString().Substring(2); waterInfo = waterInfo + year + "/"; string month = dataAndTime.Month.ToString(); if (month.Length < 2) { month = "0" + month; } waterInfo = waterInfo + month + "/"; string day = dataAndTime.Day.ToString(); if (day.Length < 2) { day = "0" + day; } waterInfo = waterInfo + day + " "; string hour = dataAndTime.Hour.ToString(); if (hour.Length < 2) { hour = "0" + hour; } waterInfo = waterInfo + hour; string minute = dataAndTime.Minute.ToString(); if (minute.Length < 2) { minute = "0" + minute; } waterInfo = waterInfo + ":" + minute; waterInfo = waterInfo + " "; decimal waterd = waterList[j].WaterStage; string water = ((int)(waterd * 100)).ToString(); for (int k = 0; k < 6 - water.Length; k++) { waterInfo = waterInfo + "0"; } waterInfo = waterInfo + water; waterInfo = waterInfo + "\""; waterInfoText.Add(waterInfo); } if (waterInfoText != null && waterInfoText.Count > 1) { string fileName = "waterData" + "\\" + stationname + "站" + startTime.ToString("D") + "到" + endTime.ToString("D") + "水位.Dat"; exportTxt(waterInfoText, fileName); } } box.CloseDialog(); MessageBox.Show("导出水位数据成功"); } catch (Exception e2) { box.CloseDialog(); MessageBox.Show("导出水位数据失败"); } } #endregion #region 中澳格式数据 if (type.Equals("中澳格式")) { CMessageBox box = new CMessageBox(); box.MessageInfo = "正在导出中澳格式数据"; box.ShowDialog(this); try { for (int i = 0; i < stationSelected.Count; i++) { List <CEntityRainAndWater> rainWaterList = new List <CEntityRainAndWater>(); string stationid = stationSelected[i].Split('|')[0]; string stationname = stationSelected[i].Split('|')[1]; List <string> hydroInfoText = new List <string>(); rainWaterList = CDBDataMgr.GetInstance().getRainAndWaterList(stationid, startTime, endTime); if (rainWaterList == null || rainWaterList.Count == 0) { continue; } for (int j = 0; j < rainWaterList.Count; j++) { DateTime dataAndTime = DateTime.Now;; if (rainWaterList[j].rainTimeCollect <= DateTime.Now) { dataAndTime = rainWaterList[j].rainTimeCollect; } else if (rainWaterList[j].waterTimeCollect <= DateTime.Now) { dataAndTime = rainWaterList[j].waterTimeCollect; } else { continue; } string hydroInfo = string.Empty; hydroInfo = hydroInfo + "1,"; hydroInfo = hydroInfo + dataAndTime.Year.ToString() + ","; hydroInfo = hydroInfo + getDayOfYear(dataAndTime).ToString() + ","; string hour = dataAndTime.Hour.ToString(); if (hour.Length < 2) { hour = "0" + hour; } string minute = dataAndTime.Minute.ToString(); if (minute.Length < 2) { minute = "0" + minute; } hydroInfo = hydroInfo + hour + minute + ","; hydroInfo = hydroInfo + stationid.ToString() + ","; if (rainWaterList[j].WaterStage != -9999) { hydroInfo = hydroInfo + rainWaterList[j].WaterStage.ToString() + ","; } else { hydroInfo = hydroInfo + ","; } if (rainWaterList[j].TotalRain != -9999) { hydroInfo = hydroInfo + rainWaterList[j].TotalRain.ToString() + ","; } else { hydroInfo = hydroInfo + ","; } hydroInfo = hydroInfo + "12.85"; hydroInfoText.Add(hydroInfo); } if (hydroInfoText != null && hydroInfoText.Count > 1) { string fileName = "specData" + "\\" + stationname + "站" + startTime.ToString("D") + "到" + endTime.ToString("D") + "数据.Dat"; exportTxt(hydroInfoText, fileName); } } box.CloseDialog(); MessageBox.Show("导出中澳数据成功"); } catch (Exception e2) { box.CloseDialog(); MessageBox.Show("导出中澳数据失败"); } } #endregion this.Focus(); }
/// <summary> /// 是否开启编辑模式 /// </summary> /// <param name="bEnable"></param> public void SetEditMode(bool bEnable) { if (bEnable) { // 设定标题栏,默认有个隐藏列 this.Header = new string[] { CS_Delete, CS_StationId, CS_StationName, CS_StationType, CS_StationSubcenter, CS_Gsm, CS_Gprs, CS_BDsatellite, CS_BDmember, CS_Maintran, CS_Subtran, CS_Dataprotocol, CS_Reportinterval, CS_VoltageMin, CS_A10, CS_B10, CS_C10, CS_D10, CS_M10, CS_N10, CS_A20, CS_B20, CS_C20, CS_D20, CS_M20, CS_N20, CS_A30, CS_B30, CS_C30, CS_D30, CS_M30, CS_N30, CS_A40, CS_B40, CS_C40, CS_D40, CS_M40, CS_N40, CS_A60, CS_B60, CS_C60, CS_D60, CS_M60, CS_N60, }; base.HideColomns = new int[] { 14, 15, 16, 17, 20, 21, 22, 23, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 38, 39, 40, 41, 42, 43 }; List <string> listHeader = new List <string>(this.Header); //开启编辑模式,设置可编辑列 DataGridViewCheckBoxColumn deleteCol = new DataGridViewCheckBoxColumn(); base.SetColumnEditStyle(listHeader.IndexOf(CS_Delete), deleteCol); //// 设置站名可编辑 DataGridViewTextBoxColumn stationNumber = new DataGridViewTextBoxColumn(); base.SetColumnEditStyle(listHeader.IndexOf(CS_StationName), stationNumber); ////// 设置站点类型下拉列表 //var cmb_StationType = new DataGridViewComboBoxColumn(); //cmb_StationType.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing; // cmb_StationType.Items.Add(CS_None); ////// 初始化站点类型 //cmb_StationType.Items.Add(CEnumHelper.StationTypeToUIStr(EStationType.ESoil)); //cmb_StationType.Items.Add(CEnumHelper.StationTypeToUIStr(EStationType.ESoilHydrology)); //cmb_StationType.Items.Add(CEnumHelper.StationTypeToUIStr(EStationType.ESoilRain)); //cmb_StationType.Items.Add(CEnumHelper.StationTypeToUIStr(EStationType.ESoilWater)); //base.SetColumnEditStyle(listHeader.IndexOf(CS_StationType), cmb_StationType); ////所属分中心下拉列表 var subcenterId = new DataGridViewComboBoxColumn(); subcenterId.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing; List <CEntitySubCenter> listSubCenter = CDBDataMgr.GetInstance().GetAllSubCenter(); // 初始化分中心 foreach (CEntitySubCenter subcenter in listSubCenter) { subcenterId.Items.Add(subcenter.SubCenterName); } //subcenterId.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing; base.SetColumnEditStyle(listHeader.IndexOf(CS_StationSubcenter), subcenterId); //// 设置站点ID下拉列表 //DataGridViewComboBoxColumn stationId = new DataGridViewComboBoxColumn(); //stationId.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing; //List<CEntityStation> listStation = CDBDataMgr.Instance.GetAllStation(); //foreach (CEntityStation station in listStation) //{ // // 只添加墒情站点的类型 // if (station.StationType == EStationType.ESoil || // station.StationType == EStationType.ESoilHydrology || // station.StationType == EStationType.ESoilRain || // station.StationType == EStationType.ESoilWater) // { // stationId.Items.Add(station.StationID); // } //} //base.SetColumnEditStyle(listHeader.IndexOf(CS_StationId), stationId); //// 设置设备号可编辑 //DataGridViewTextBoxColumn deviceNumber = new DataGridViewTextBoxColumn(); //base.SetColumnEditStyle(listHeader.IndexOf(CS_DeviceNumber), deviceNumber); base.SetColumnEditStyle(listHeader.IndexOf(CS_VoltageMin), GenerateColumnStype_1()); //设置A10,B10,C10,D10的编辑列 //水位编辑列 base.SetColumnEditStyle(listHeader.IndexOf(CS_A10), GenerateColumnStype()); base.SetColumnEditStyle(listHeader.IndexOf(CS_B10), GenerateColumnStype()); base.SetColumnEditStyle(listHeader.IndexOf(CS_C10), GenerateColumnStype()); base.SetColumnEditStyle(listHeader.IndexOf(CS_D10), GenerateColumnStype()); base.SetColumnEditStyle(listHeader.IndexOf(CS_M10), GenerateColumnStype()); base.SetColumnEditStyle(listHeader.IndexOf(CS_N10), GenerateColumnStype()); // 设置A20,B20,C20,D20的编辑列 base.SetColumnEditStyle(listHeader.IndexOf(CS_A20), GenerateColumnStype()); base.SetColumnEditStyle(listHeader.IndexOf(CS_B20), GenerateColumnStype()); base.SetColumnEditStyle(listHeader.IndexOf(CS_C20), GenerateColumnStype()); base.SetColumnEditStyle(listHeader.IndexOf(CS_D20), GenerateColumnStype()); base.SetColumnEditStyle(listHeader.IndexOf(CS_M20), GenerateColumnStype()); base.SetColumnEditStyle(listHeader.IndexOf(CS_N20), GenerateColumnStype()); // 设置A30,B30,C30,D30的编辑列 base.SetColumnEditStyle(listHeader.IndexOf(CS_A30), GenerateColumnStype()); base.SetColumnEditStyle(listHeader.IndexOf(CS_B30), GenerateColumnStype()); base.SetColumnEditStyle(listHeader.IndexOf(CS_C30), GenerateColumnStype()); base.SetColumnEditStyle(listHeader.IndexOf(CS_D30), GenerateColumnStype()); base.SetColumnEditStyle(listHeader.IndexOf(CS_M30), GenerateColumnStype()); base.SetColumnEditStyle(listHeader.IndexOf(CS_N30), GenerateColumnStype()); // 设置A40,B40,C40,D40的编辑列 base.SetColumnEditStyle(listHeader.IndexOf(CS_A40), GenerateColumnStype()); base.SetColumnEditStyle(listHeader.IndexOf(CS_B40), GenerateColumnStype()); base.SetColumnEditStyle(listHeader.IndexOf(CS_C40), GenerateColumnStype()); base.SetColumnEditStyle(listHeader.IndexOf(CS_D40), GenerateColumnStype()); base.SetColumnEditStyle(listHeader.IndexOf(CS_M40), GenerateColumnStype()); base.SetColumnEditStyle(listHeader.IndexOf(CS_N40), GenerateColumnStype()); // 设置A60,B60,C60,D60的编辑列 base.SetColumnEditStyle(listHeader.IndexOf(CS_A60), GenerateColumnStype()); base.SetColumnEditStyle(listHeader.IndexOf(CS_B60), GenerateColumnStype()); base.SetColumnEditStyle(listHeader.IndexOf(CS_C60), GenerateColumnStype()); base.SetColumnEditStyle(listHeader.IndexOf(CS_D60), GenerateColumnStype()); base.SetColumnEditStyle(listHeader.IndexOf(CS_M60), GenerateColumnStype()); base.SetColumnEditStyle(listHeader.IndexOf(CS_N60), GenerateColumnStype()); DataGridViewTextBoxColumn gsmNumber = new DataGridViewTextBoxColumn(); base.SetColumnEditStyle(listHeader.IndexOf(CS_Gsm), gsmNumber); //// 设置GPRS号码,北斗卫星终端号,北斗卫星成员号的编辑列 DataGridViewTextBoxColumn gprsNumber = new DataGridViewTextBoxColumn(); base.SetColumnEditStyle(listHeader.IndexOf(CS_Gprs), gprsNumber); DataGridViewTextBoxColumn beidouNumber = new DataGridViewTextBoxColumn(); base.SetColumnEditStyle(listHeader.IndexOf(CS_BDsatellite), beidouNumber); DataGridViewTextBoxColumn beidouMemberNumber = new DataGridViewTextBoxColumn(); base.SetColumnEditStyle(listHeader.IndexOf(CS_BDmember), beidouMemberNumber); //主信道,备信道,通信协议 XmlDocManager.Instance.ReadFromXml(); m_dllCollections = Protocol.Manager.XmlDocManager.Instance.DllInfo; var MaintranNumber = new DataGridViewComboBoxColumn(); var SubtranNumber = new DataGridViewComboBoxColumn(); MaintranNumber.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing; SubtranNumber.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing; foreach (XmlDllInfo info in m_dllCollections.Infos) { // 不显示已经被禁用的协议 if (!info.Enabled) { continue; } // 显示信道协议 if (info.Type == "channel") { // m_mapChannelInfo.Add(info.Name, info); MaintranNumber.Items.Add(info.Name); SubtranNumber.Items.Add(info.Name); // comb_PrepareRoad.Items.Add(info.Name); } } SubtranNumber.Items.Add("无"); MaintranNumber.Items.Add("未知通讯协议"); SubtranNumber.Items.Add("未知通讯协议"); base.SetColumnEditStyle(listHeader.IndexOf(CS_Maintran), MaintranNumber); base.SetColumnEditStyle(listHeader.IndexOf(CS_Subtran), SubtranNumber); var DataprotocolNumber = new DataGridViewComboBoxColumn(); DataprotocolNumber.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing; m_listProtocolData = XmlDocManager.Instance.DataProtocolNames; for (int i = 0; i < m_listProtocolData.Count; i++) { DataprotocolNumber.Items.Add(m_listProtocolData[i]); } base.SetColumnEditStyle(listHeader.IndexOf(CS_Dataprotocol), DataprotocolNumber); var ReportintervalNumber = new DataGridViewComboBoxColumn(); ReportintervalNumber.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing; ReportintervalNumber.Items.Add("1"); ReportintervalNumber.Items.Add("4"); ReportintervalNumber.Items.Add("8"); ReportintervalNumber.Items.Add("12"); ReportintervalNumber.Items.Add("24"); ReportintervalNumber.Items.Add("48"); base.SetColumnEditStyle(listHeader.IndexOf(CS_Reportinterval), ReportintervalNumber); ////// 设置删除列的宽度 //////this.Columns[0].Width = 15; //删除列宽度为20 } else { } }
/// <summary> /// 初始化数据源,连接数据库 /// </summary> /// <param name="proxy"></param> public void InitDataSource(ISoilStationProxy proxy) { m_proxyStation = CDBDataMgr.GetInstance().GetStationProxy(); m_proxySoilStation = proxy; m_listSubCenter = CDBDataMgr.GetInstance().GetAllSubCenter(); }