| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- 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.dvJSLK, "gj"))
- {
- Sunny.UI.UIMessageTip.ShowError("当前矢量数据集没有管径信息"); return;
- }
- ComsStatic.BindDataTableOnCheckedListBox(ComsStatic.dvJSLK, 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;
- foreach (string gx in gxList.ToArray())
- {
- if (gx == "未知")
- rd = ComsStatic.QueryRecordset(ComsStatic.dvJSLK, " gj is null");
- else
- rd = ComsStatic.QueryRecordset(ComsStatic.dvJSLK, string.Format(" gj='{0}'", gx));
- drcd[gx] = rd.Statistic("cd", StatisticMode.Sum);
- drsl[gx] = rd.RecordCount;
- }
- dtFinal.Rows.Add(drcd); dtFinal.Rows.Add(drsl);
- return dtFinal;
- }
- }
- }
|