12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- using SuperMap.Data;
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using WeifenLuo.WinFormsUI.Docking;
- using WWPipeLine.MapBasic.Conditions;
- using WWPipeLine.MapBasic;
- namespace WWPipeLine.MapTools.Conditions.Statistics
- {
- public partial class GXGJStatistics : ConditionPanel
- {
- public GXGJStatistics() : base()
- {
- this.ConditionPanelName = "按管线的管径统计";
- this.SetSize(200, 400);
- InitializeComponent();
- }
- protected override void OnLoad(EventArgs e)
- {
- if (!ComsStatic.HasField(ComsStatic.gsGuanXian, "gj"))
- {
- Sunny.UI.UIMessageTip.ShowError("当前矢量数据集没有管径信息"); return;
- }
- ComsStatic.BindDataTableOnCheckedListBox(ComsStatic.gsGuanXian, clb, "gj");
- }
- public override object Do(DockPanel dockPanel = null)
- {
- List<string> gxList = new List<string>();
- foreach (string str in clb.CheckedItems)
- {
- gxList.Add(str);
- }
- DataTable dtFinal = new DataTable();
- dtFinal.Columns.Add("管径");
- foreach (string gx in gxList.ToArray())
- {
- dtFinal.Columns.Add(gx);
- }
- DataRow drcd = dtFinal.NewRow(); drcd["管径"] = "长度";
- DataRow drsl = dtFinal.NewRow(); drsl["管径"] = "数量";
- Recordset rd = null;
- foreach (string gx in gxList.ToArray())
- {
- if (gx == "未知")
- rd = ComsStatic.QueryRecordset(ComsStatic.gsGuanXian, " gj is null");
- else
- rd = ComsStatic.QueryRecordset(ComsStatic.gsGuanXian, string.Format(" gj='{0}'", gx));
- drcd[gx] = Math.Round(rd.Statistic("cd", StatisticMode.Sum), 2);
- drsl[gx] = rd.RecordCount;
- }
- dtFinal.Rows.Add(drcd); dtFinal.Rows.Add(drsl);
- ComsStatic.RecordsetDispose(rd);
- return dtFinal;
- }
- }
- }
|