123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- using SuperMap.Data;
- using SuperMap.Mapping;
- using System;
- using System.Data;
- using System.Drawing;
- using System.Windows.Forms;
- using WWPipeLine.MapBasic;
- using WWPipeLine.MapBasic.Conditions;
- namespace WWPipeLine.MapTools.Conditions.AnalystToolBar
- {
- public class PouMian : BasicToolBar
- {
- public PouMian() : base()
- {
- this.ConditionPanelName = "剖面分析";
- var analystToolStripButton = new ToolStripButton()
- {
- DisplayStyle = ToolStripItemDisplayStyle.ImageAndText,
- Text = "分析",
- Name = "Analyst",
- AutoToolTip = false
- };
- base.ToolStrip.Items.Add(analystToolStripButton);
- analystToolStripButton.Click += AnalystToolStripButton_Click;
- }
- private void AnalystToolStripButton_Click(object sender, EventArgs e)
- {
- Selection[] _selection = base.MapControl.Map.FindSelection(true);
- if (_selection.Length == 0 || _selection == null)
- {
- Sunny.UI.UIMessageTip.ShowError("请先选择需要分析的管线信息,仅可以选择连续的管线!", 2000);
- return;
- }
- Recordset _recordset = _selection[0].ToRecordset();
- DatasetVector _dv = _recordset.Dataset as DatasetVector;
- if (_dv.Name != "JSLK" || _recordset.RecordCount < 1)
- {
- Sunny.UI.UIMessageTip.ShowError("仅可以选择管线图层,且至少选择一条管线", 2000);
- return;
- }
- //这里还需要判断选择的管线是否连续
- DataTable dt = new DataTable { TableName = "DuanMianAnalystResult" };
- DataColumn dataColumn;
- dataColumn = new DataColumn { ColumnName = "dmgc", Caption = "地面高程(M)" }; dt.Columns.Add(dataColumn);
- dataColumn = new DataColumn { ColumnName = "gdgc", Caption = "管顶高程(M)" }; dt.Columns.Add(dataColumn);
- dataColumn = new DataColumn { ColumnName = "gdms", Caption = "管点埋深(M)" }; dt.Columns.Add(dataColumn);
- dataColumn = new DataColumn { ColumnName = "gxgj", Caption = "管线管径(MM)" }; dt.Columns.Add(dataColumn);
- dataColumn = new DataColumn { ColumnName = "gxcd", Caption = "管线长度(M)" }; dt.Columns.Add(dataColumn);
- dataColumn = new DataColumn { ColumnName = "gxSMID", Caption = "管线ID" }; dt.Columns.Add(dataColumn);
- dataColumn = new DataColumn { ColumnName = "gdSMID", Caption = "管点ID" }; dt.Columns.Add(dataColumn);
- dataColumn = new DataColumn { ColumnName = "x", Caption = "X坐标" }; dt.Columns.Add(dataColumn);
- dataColumn = new DataColumn { ColumnName = "y", Caption = "Y坐标" }; dt.Columns.Add(dataColumn);
- DatasetVector dvJSJDPT = this.DatasourceMapControl.Datasets["JSJDPT"] as DatasetVector;
- DatasetVectorEx dvJSJDPTEx = new DatasetVectorEx(dvJSJDPT.Name) { DatasetVector = dvJSJDPT };
- dvJSJDPTEx.ResultFields.Clear();
- DataRow dr;
- DataTable dtJSJDPT;
- dt.Rows.Clear();
- _recordset.MoveFirst();
- for (int i = 1; i <= _recordset.RecordCount; i++)
- {
- if (i == _recordset.RecordCount)
- dtJSJDPT = dvJSJDPTEx.Query(string.Format(" (wth ='{0}' OR wth='{1}') AND ms is not null ", _recordset.GetFieldValue("qsdh").ToString(), _recordset.GetFieldValue("zddh").ToString()));
- else
- dtJSJDPT = dvJSJDPTEx.Query(string.Format(" wth ='{0}' AND ms is not null ", _recordset.GetFieldValue("qsdh").ToString()));
- if (dtJSJDPT.Rows.Count == 1 || dtJSJDPT.Rows.Count == 2)
- {
- foreach (DataRow drr in dtJSJDPT.Rows)
- {
- dr = dt.NewRow();
- dr["dmgc"] = drr["dmgc"];
- dr["gdgc"] = double.Parse(drr["dmgc"].ToString()) - double.Parse(drr["ms"].ToString());//管顶高程=地面高程-埋深
- dr["gdms"] = drr["ms"];
- dr["gxgj"] = _recordset.GetFieldValue("gj");
- dr["gxcd"] = _recordset.GetFieldValue("cd");
- dr["gxSMID"] = _recordset.GetFieldValue("smid");
- dr["gdSMID"] = drr["smid"].ToString() + "-" + drr["wth"].ToString();
- dt.Rows.Add(dr);
- }
- }
- _recordset.MoveNext();
- }
- if (dt.Rows.Count == (_recordset.RecordCount + 1))
- {
- _recordset.Close(); _recordset.Dispose();
- PouMianAnalystResult form = new PouMianAnalystResult(dt);
- form.ShowDialog();
- }
- else
- {
- _recordset.Close(); _recordset.Dispose();
- Sunny.UI.UIMessageTip.ShowError("构建查询结果失败", 2000);
- }
- }
- protected override void OnLoad(EventArgs e)
- {
- }
- private void InitializeComponent()
- {
- this.SuspendLayout();
- //
- // ToolsConditions
- //
- this.Name = "ToolsConditions";
- this.ResumeLayout(false);
- }
- }
- }
|