SuperMap Object 二次开发之获取图层中的指定字段

   class Attribute_Action:CtrlAction
    {
        public override void Run()
        {
            try
            {
                //获取当前活动的地图窗口
                IFormMap formMap = SuperMap.Desktop.Application.ActiveApplication.MainForm.FormManager.ActiveForm as IFormMap;
                //地图窗口中包含的地图图层
                int nlayerCount = formMap.MapControl.Map.Layers.Count;
                for (int i = 0; i < nlayerCount; i++)
                {
                    //获取每一个图层的数据集
                    Layer layer = formMap.MapControl.Map.Layers[i];
                    Dataset dataset = layer.Dataset;

                   

                    #region 面集合的判断
                    try
                    {
                        if (dataset.Type == DatasetType.Region && layer.Selection != null && layer.Selection.Count > 0)
                        {
                            Recordset recordset = layer.Selection.ToRecordset();
                            
                            int smid = Convert.ToInt32(recordset.GetFieldValue("SmID"));
                            //先取第10个字段判断是否是导入的还是原始数据
                            string Filed_Flag = recordset.GetFieldInfos()[9].Name;
                            
                            //获取第13个字段,判断导入的数据是否复制到数据源中
                            string Field_Input = recordset.GetFieldInfos()[12].Name;

                  
                            if (Field_Input == "UserID")
                            {
                                //获取第13个字段名用来区分面要素中的各类要素
                                String fileName = recordset.GetFieldInfos()[15].Name;

                               
                                if (fileName.Equals("XZQDM") || fileName == "XZQDM")
                                {
                                    frm f = new frm(smid, recordset);
                                    f.ShowDialog();
                                    break;
                                }}



你可能感兴趣的:(SuperMap Object 二次开发之获取图层中的指定字段)