字段排序

简介: 我们知道表里面的记录是按照时间的顺序创建的,如果要对某一字段排序,ArcGIS的字段上点右键,但是当我们重新打开后,发现没有变化。写了断小代码可以对表的字段排序,没有对要素类排序,可以参考和修改代码 using System;using System.

我们知道表里面的记录是按照时间的顺序创建的,如果要对某一字段排序,ArcGIS的字段上点右键,但是当我们重新打开后,发现没有变化。写了断小代码可以对表的字段排序,没有对要素类排序,可以参考和修改代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Geodatabase;
using ESRI.ArcGIS.esriSystem;
namespace TableSort
{
    public partial class Sort : Form
    {
        private ITable pTable;
        IMap pMap;
        public Sort(IMap _pMap)
        {
            InitializeComponent();
            this.pMap = _pMap;
        }
        private void Sort_Load(object sender, EventArgs e)
        {
            IDataset pDataset = null;
            ITable plTable=null ;
            ITableCollection pTableCollection = pMap as ITableCollection;
            for (int i = 0; i < pTableCollection.TableCount; i++)
            {
                plTable = pTableCollection.get_Table(i);
                pDataset = plTable as IDataset;
                comboBox1.Items.Add(pDataset.Name);
               
            }

           comboBox1.Text = comboBox1.Items[0].ToString();
       
           FieldName(comboBox2, FindTable (pMap as ITableCollection  ,comboBox1.Text ));
           comboBox3.Items.Add("升序");
           comboBox3.Items.Add("降序");
           comboBox3.Text = comboBox3.Items[0].ToString();
        }
        private void FieldName(ComboBox _pComBox, ITable _pTable)
        {
            IFields pTableFields = _pTable.Fields;
            for (int i = 0; i < pTableFields.FieldCount; i++)
            {
                if ( pTableFields.get_Field(i).Type != esriFieldType.esriFieldTypeOID)
                {
                    _pComBox.Items.Add(pTableFields.get_Field(i).Name);
                }
            }
           _pComBox.Text = _pComBox.Items[0].ToString();
        }
        private ITable FindTable(ITableCollection _pTabbleCollection, string _Name)
        {
            ITable plTable = null; ;
            IDataset plDataset;
            for (int i = 0; i < _pTabbleCollection .TableCount ;i++)
            {
              
                plDataset = _pTabbleCollection.get_Table(i) as IDataset;
                if (plDataset.Name == _Name.Trim ())
                {
                    plTable = _pTabbleCollection.get_Table(i);
                    break;
                }
            }
            return plTable;
        }
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            FieldName(comboBox2, FindTable(pMap as ITableCollection, comboBox1.Text));
        }
        private void bOK_Click(object sender, EventArgs e)
        {
            pTable = FindTable(pMap as ITableCollection, comboBox1.Text);
            ITableSort plTalbeSort = new TableSortClass();
            plTalbeSort.Table = pTable;
            plTalbeSort.Fields = comboBox2.Text.Trim();
            if (comboBox3.Text.Trim () == "降序")
            {
                plTalbeSort.set_Ascending(comboBox2.Text, false );
            }
            else
            {
                plTalbeSort.set_Ascending(comboBox2.Text, true);
            }
            plTalbeSort.Sort(null);           
           
            ICursor plSortCursor = plTalbeSort.Rows;
            IRow pSortRow = plSortCursor .NextRow ();
            IDataset plSortDataset = pTable as IDataset;
            IFeatureWorkspace plFWS = plSortDataset.Workspace as IFeatureWorkspace;
           ITable plStable= plFWS.CreateTable("NewSort", pTable.Fields, null, null, null);

           while (pSortRow != null)
           {
               IRow pRow = plStable.CreateRow();
               for (int i=0;i <pRow .Fields .FieldCount;i++ )
               {
                   if (pRow .Fields .get_Field (i).Type !=esriFieldType .esriFieldTypeOID)
                   {
                      pRow.set_Value (i,pSortRow .get_Value (i));
                   }
               }
               pRow.Store();
               pSortRow = plSortCursor.NextRow();
           }
           ITableCollection pTC = pMap as ITableCollection;
           pTC.AddTable(plStable);
         
        }
       
    }

}

相关文章
|
5天前
|
人工智能 JSON 监控
Claude Code 源码泄露:一份价值亿元的 AI 工程公开课
我以为顶级 AI 产品的护城河是模型。读完这 51.2 万行泄露的源码,我发现自己错了。
3985 10
|
15天前
|
人工智能 JSON 机器人
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
本文带你零成本玩转OpenClaw:学生认证白嫖6个月阿里云服务器,手把手配置飞书机器人、接入免费/高性价比AI模型(NVIDIA/通义),并打造微信公众号“全自动分身”——实时抓热榜、AI选题拆解、一键发布草稿,5分钟完成热点→文章全流程!
11605 134
让龙虾成为你的“公众号分身” | 阿里云服务器玩Openclaw
|
3天前
|
人工智能 数据可视化 安全
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
本文详解如何用阿里云Lighthouse一键部署OpenClaw,结合飞书CLI等工具,让AI真正“动手”——自动群发、生成科研日报、整理知识库。核心理念:未来软件应为AI而生,CLI即AI的“手脚”,实现高效、安全、可控的智能自动化。
1409 6
王炸组合!阿里云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!(附带免费使用6个月服务器)
|
5天前
|
人工智能 自然语言处理 数据挖掘
零基础30分钟搞定 Claude Code,这一步90%的人直接跳过了
本文直击Claude Code使用痛点,提供零基础30分钟上手指南:强调必须配置“工作上下文”(about-me.md+anti-ai-style.md)、采用Cowork/Code模式、建立标准文件结构、用提问式提示词驱动AI理解→规划→执行。附可复制模板与真实项目启动法,助你将Claude从聊天工具升级为高效执行系统。
|
5天前
|
人工智能 定位技术
Claude Code源码泄露:8大隐藏功能曝光
2026年3月,Anthropic因配置失误致Claude Code超51万行源码泄露,意外促成“被动开源”。代码中藏有8大未发布功能,揭示其向“超级智能体”演进的完整蓝图,引发AI编程领域震动。(239字)
2294 9

热门文章

最新文章