123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229 |
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Drawing;
- using System.Data;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using WWPipeLine.MapBasic.Conditions;
- using WeifenLuo.WinFormsUI.Docking;
- using WWPipeLine.MapBasic;
- using SuperMap.Data;
- using SuperMap.Mapping;
- using Sunny.UI;
- using System.IO;
- namespace WWPipeLine.MapTools.Conditions.ShuJuChuLi
- {
- public partial class PCCheck : ConditionPanel
- {
- DataTable dt = null;
- public PCCheck()
- {
- this.ConditionPanelName = "普查数据检查";
- InitializeComponent();
- this.SetSize(1000, 635);
- this.IsShowResultWindow = false;
- this.IsShowPanelFooter = false;
- }
- protected override void OnLoad(EventArgs e)
- {
- ComsStatic.setUIDataGridView(uidgv);
- uirbtGD.Checked = true;
- }
- private void uiButton1_Click(object sender, EventArgs e)
- {
- if (dt == null || dt.Rows.Count == 0) { Sunny.UI.UIMessageTip.ShowError("请先选择普查表类型"); return; }
- OpenFileDialog ofd = new OpenFileDialog { Filter = "CSV文件|*.csv", RestoreDirectory = true, Title = "请选择需要上传的图片" };
- if (ofd.ShowDialog() == DialogResult.OK)
- {
- uidgv.DataSource = ComsStatic.CSVToDataTable(ofd.FileName, uirbnT.Checked);
- }
- if (uidgv.Rows.Count == 0) { Sunny.UI.UIMessageTip.ShowError("当前普查数据为空"); return; }
- List<string> listPuCha = new List<string>();
- foreach (DataGridViewColumn dc in uidgv.Columns)
- {
- listPuCha.Add(dc.Name);
- }
- panel1.Controls.Clear(); panel2.Controls.Clear();
- foreach (DataRow dr in dt.Rows)
- {
- string pzKey = dr["pzKey"].ToString();
- Point p = new Point(10, uiGroupBox2.Controls.Find("cbxPeiZhi", true).Length * 40);
- UILabel cbxPeiZhi = new UILabel() { Name = "cbxPeiZhi", Size = new Size(180, 30), TextAlign = ContentAlignment.MiddleRight, Text = string.Format("{0}对应字段:", pzKey) };
- cbxPeiZhi.Location = p;
- panel1.Controls.Add(cbxPeiZhi);
- UIComboBox cbxPuCha = new UIComboBox() { Name = pzKey, Tag = pzKey, TagString = dr["gxcz"]?.ToString(), DropDownStyle = UIDropDownStyle.DropDownList, Size = new Size(180, 30) };
- cbxPuCha.Items.Add("非检查项"); foreach (string pz in listPuCha.ToArray()) { cbxPuCha.Items.Add(pz); }
- cbxPuCha.Location = p;
- cbxPuCha.SelectedIndex = 0;
- panel2.Controls.Add(cbxPuCha);
- }
- uirbnF.Enabled = false; uirbnT.Enabled = false; uirbtGD.Enabled = false; uirbtGX.Enabled = false; uiButton1.Enabled = false;
- }
- private void uibtnChengtu_Click(object sender, EventArgs e)
- {
- if (panel2.Controls.Count == 0 || uidgv.Rows.Count == 0) { Sunny.UI.UIMessageTip.ShowError("请先加载普查数据"); return; }
- bool isChecked = true;
- foreach (Control c in panel2.Controls)
- {
- UIComboBox cbx = c as UIComboBox;
- if (cbx.TagString != "成图必须字段") continue;
- if (cbx.SelectedItem.ToString() == "非检查项")
- {
- Sunny.UI.UIMessageTip.ShowWarning(cbx.Name + ",该项为成图必须字段,请选择对应的普查字段");
- isChecked = false; break;
- }
- }
- if (isChecked) Sunny.UI.UIMessageTip.ShowOk("成图必须字段检查通过", 2000, false);
- }
- private void uiButton2_Click(object sender, EventArgs e)
- {
- if (panel2.Controls.Count == 0 || uidgv.Rows.Count == 0) { Sunny.UI.UIMessageTip.ShowError("请先加载普查数据"); return; }
- foreach (Control c in panel2.Controls)
- {
- UIComboBox cbx = c as UIComboBox;
- if (cbx.TagString != "业务关键字段") continue;
- if (cbx.SelectedItem.ToString() == "非检查项")
- {
- Sunny.UI.UIMessageTip.ShowWarning(cbx.Name + ",该项为业务关键字段,请选择对应的普查字段");
- return;
- }
- }
- Sunny.UI.UIMessageTip.ShowOk("业务关键字段检查通过", 2000, false);
- }
- private void uibtnGdzb_Click(object sender, EventArgs e)
- {
- if (!uirbtGD.Checked) { Sunny.UI.UIMessageTip.ShowError("此功能仅用于管点表检查"); return; }
- StringBuilder sb = new StringBuilder();
- foreach (string pzxy in new string[] { "X坐标", "Y坐标" })
- {
- Control[] cs = panel2.Controls.Find(pzxy, true);
- if (cs.Length != 1) { Sunny.UI.UIMessageTip.ShowError(pzxy + "检查配置未发现"); return; }
- UIComboBox cbx = cs[0] as UIComboBox;
- if (cbx.SelectedItem.ToString() == "非检查项") { Sunny.UI.UIMessageTip.ShowWarning(pzxy + "对应的普查字段未选择"); return; }
- DataRow[] drs = dt.Select(string.Format(" pzkey='{0}'", pzxy));
- if (drs.Length != 1) { Sunny.UI.UIMessageTip.ShowError(pzxy + "检查配置未发现"); return; }
- double valueMax = ComsStatic.StringToDouble(drs[0]["gxczjj"]);
- double valueMin = ComsStatic.StringToDouble(drs[0]["gxspjj"]);
- foreach (DataGridViewRow dr in uidgv.Rows)
- {
- double value = ComsStatic.StringToDouble(dr.Cells[cbx.SelectedItem.ToString()].Value);
- if (value == 0)
- { sb.AppendFormat("第{0}行中,{1}为空\n\r", dr.Index + 1, pzxy); break; }
- if (valueMax != 0 && valueMax < value)
- { sb.AppendFormat("第{0}行中,{1}的值大于配置项的最大值{2}\n\r", dr.Index + 1, pzxy, valueMax); break; }
- if (valueMin != 0 && valueMin > value)
- { sb.AppendFormat("第{0}行中,{1}的值小于配置项的最小值{2}\n\r", dr.Index + 1, pzxy, valueMin); break; }
- }
- }
- if (sb.ToString().Length == 0)
- Sunny.UI.UIMessageTip.ShowOk("管点坐标检查通过", 2000, false);
- else
- Sunny.UI.UIMessageTip.ShowError(sb.ToString());
- }
- private void uirbtGX_CheckedChanged(object sender, EventArgs e)
- {
- string sql = "pzlx='普查数据检查配置' and gxlx='管点表'"; // and valueBefore<>null and pzKey<>null
- if (uirbtGX.Checked)
- sql = "pzlx='普查数据检查配置' and gxlx='管线表'";
- Recordset rd = ComsStatic.dvJSLK_PZ.Query(sql, CursorType.Static);
- dt = ComsStatic.RecordsetToDataTable(rd);
- }
- private void uibtnGdgc_Click(object sender, EventArgs e)
- {
- if (!uirbtGD.Checked) { Sunny.UI.UIMessageTip.ShowError("此功能仅用于管点表检查"); return; }
- StringBuilder sb = new StringBuilder();
- Control[] cs = panel2.Controls.Find("地面高程", true);
- if (cs.Length != 1) { Sunny.UI.UIMessageTip.ShowError("地面高程检查配置未发现"); return; }
- UIComboBox cbx = cs[0] as UIComboBox;
- if (cbx.SelectedItem.ToString() == "非检查项") { Sunny.UI.UIMessageTip.ShowWarning("地面高程对应的普查字段未选择"); return; }
- DataRow[] drs = dt.Select(" pzkey='地面高程' ");
- if (drs.Length != 1) { Sunny.UI.UIMessageTip.ShowError("地面高程检查配置未发现"); return; }
- double valueMax = ComsStatic.StringToDouble(drs[0]["gxczjj"]);
- double valueMin = ComsStatic.StringToDouble(drs[0]["gxspjj"]);
- foreach (DataGridViewRow dr in uidgv.Rows)
- {
- double value = ComsStatic.StringToDouble(dr.Cells[cbx.SelectedItem.ToString()].Value);
- if (value == 0)
- { sb.AppendFormat("第{0}行中,地面高程为空\n\r", dr.Index + 1); break; }
- if (valueMax != 0 && valueMax < value)
- { sb.AppendFormat("第{0}行中,地面高程的值大于配置项的最大值{1}\n\r", dr.Index + 1, valueMax); break; }
- if (valueMin != 0 && valueMin > value)
- { sb.AppendFormat("第{0}行中,地面高程的值小于配置项的最小值{1}\n\r", dr.Index + 1, valueMin); break; }
- }
- if (sb.ToString().Length == 0)
- Sunny.UI.UIMessageTip.ShowOk("管点坐标检查通过", 2000, false);
- else
- Sunny.UI.UIMessageTip.ShowError(sb.ToString());
- }
- private void uibtnGxcz_Click(object sender, EventArgs e)
- {
- if (!uirbtGX.Checked) { Sunny.UI.UIMessageTip.ShowError("此功能仅用于管线表检查"); return; }
- StringBuilder sb = new StringBuilder();
- Control[] cs = panel2.Controls.Find("材质", true);
- if (cs.Length != 1) { Sunny.UI.UIMessageTip.ShowError("材质检查配置未发现"); return; }
- UIComboBox cbx = cs[0] as UIComboBox;
- if (cbx.SelectedItem.ToString() == "非检查项") { Sunny.UI.UIMessageTip.ShowWarning("材质对应的普查字段未选择"); return; }
- DataRow[] drs = dt.Select(" pzkey='材质' ");
- if (drs.Length != 1) { Sunny.UI.UIMessageTip.ShowError("材质检查配置未发现"); return; }
- foreach (DataGridViewRow dr in uidgv.Rows)
- {
- if (string.IsNullOrEmpty(dr.Cells[cbx.SelectedItem.ToString()].Value?.ToString()))
- {
- sb.AppendFormat("第{0}行中,材质为空\n\r", dr.Index + 1);
- }
- }
- if (sb.ToString().Length == 0)
- Sunny.UI.UIMessageTip.ShowOk("材质检查通过", 2000, false);
- else
- Sunny.UI.UIMessageTip.ShowError(sb.ToString());
- }
- private void uibtnGxgj_Click(object sender, EventArgs e)
- {
- if (!uirbtGX.Checked) { Sunny.UI.UIMessageTip.ShowError("此功能仅用于管点表检查"); return; }
- StringBuilder sb = new StringBuilder();
- Control[] cs = panel2.Controls.Find("管径", true);
- if (cs.Length != 1) { Sunny.UI.UIMessageTip.ShowError("管径检查配置未发现"); return; }
- UIComboBox cbx = cs[0] as UIComboBox;
- if (cbx.SelectedItem.ToString() == "非检查项") { Sunny.UI.UIMessageTip.ShowWarning("管径对应的普查字段未选择"); return; }
- DataRow[] drs = dt.Select(" pzkey='管径' ");
- if (drs.Length != 1) { Sunny.UI.UIMessageTip.ShowError("管径检查配置未发现"); return; }
- double valueMax = ComsStatic.StringToDouble(drs[0]["gxczjj"]);
- double valueMin = ComsStatic.StringToDouble(drs[0]["gxspjj"]);
- foreach (DataGridViewRow dr in uidgv.Rows)
- {
- double value = ComsStatic.StringToDouble(dr.Cells[cbx.SelectedItem.ToString()].Value);
- if (value == 0)
- { sb.AppendFormat("第{0}行中,管径为空\n\r", dr.Index + 1); break; }
- if (valueMax != 0 && valueMax < value)
- { sb.AppendFormat("第{0}行中,管径的值大于配置项的最大值{1}\n\r", dr.Index + 1, valueMax); break; }
- if (valueMin != 0 && valueMin > value)
- { sb.AppendFormat("第{0}行中,管径的值小于配置项的最小值{1}\n\r", dr.Index + 1, valueMin); break; }
- }
- if (sb.ToString().Length == 0)
- Sunny.UI.UIMessageTip.ShowOk("管径检查通过", 2000, false);
- else
- Sunny.UI.UIMessageTip.ShowError(sb.ToString());
- }
- }
- }
|