using SuperMap.Data; using System; using System.Collections.Generic; using System.Data; using WeifenLuo.WinFormsUI.Docking; using WWPipeLine.MapBasic.Conditions; using WWPipeLine.MapBasic; namespace WWPipeLine.MapTools.Conditions.Statistics { /// /// 管线-材质统计 /// public partial class GXStatistics : ConditionPanel { private DatasetVector _dv; private DatasetVectorEx _dvEx; public GXStatistics() : base() { this.ConditionPanelName = "按管线属性统计"; InitializeComponent(); } protected override void OnLoad(EventArgs e) { this.rbgGXSX.SelectedIndex = 0;//0全部 1材质 2管径 3地址描述 4埋设日期 this.rbgCDSL.SelectedIndex = 0;//0长度 1数量 } public override object Do(DockPanel dockPanel = null) { _dvEx = new DatasetVectorEx(_dv.Name) { DatasetVector = _dv }; DataTable dt = new DataTable() { TableName = "selectResult" }; //全部管线的长度 if (rbgGXSX.SelectedIndex == 0 && rbgCDSL.SelectedIndex == 0) { } //全部管线的数量 if (rbgGXSX.SelectedIndex == 0 && rbgCDSL.SelectedIndex == 1) { } //材质的长度 if (rbgGXSX.SelectedIndex == 1 && rbgCDSL.SelectedIndex == 0) { return _dvEx.GetTableByFieldOnUniqueValSumOrder("材质", "cz", "cd"); } //材质的数量 if (rbgGXSX.SelectedIndex == 1 && rbgCDSL.SelectedIndex == 1) { return _dvEx.GetTableByFieldOnUniqueValCount("材质", "cz"); } //管径的长度 if (rbgGXSX.SelectedIndex == 2 && rbgCDSL.SelectedIndex == 0) { return _dvEx.GetTableByFieldOnUniqueValSumOrder("管径", "gj", "cd"); } //管径的数量 if (rbgGXSX.SelectedIndex == 2 && rbgCDSL.SelectedIndex == 1) { return _dvEx.GetTableByFieldOnUniqueValCount("管径", "gj"); } //地址描述的长度 if (rbgGXSX.SelectedIndex == 3 && rbgCDSL.SelectedIndex == 0) { return _dvEx.GetTableByFieldOnUniqueValSumOrder("地址描述", "dzms", "cd"); } //地址描述的数量 if (rbgGXSX.SelectedIndex == 3 && rbgCDSL.SelectedIndex == 1) { return _dvEx.GetTableByFieldOnUniqueValCount("地址描述", "dzms"); } return dt; } public override bool ConditionValid() { _dv = this.DatasourceMapControl.Datasets["JSLK"] as DatasetVector; if (_dv == null) { Sunny.UI.UIMessageTip.ShowError("当前数据源中不包含相应的矢量数据集"); return false; } return true; } } }