public override void Run(object sender, System.EventArgs e) { if (CommonUtils.Instance().CurEditLayer != null) { bool inProjectTree = false; bool isCheckOut = false; IFeatureLayer fl = CommonUtils.Instance().CurEditLayer.GetFeatureLayer(); IDataSourceFactory dsf = new DataSourceFactory(); if (dsf.HasDataSourceByString(fl.FeatureClassInfo.DataSourceConnectionString)) { IDataSource ds = dsf.OpenDataSourceByString(fl.FeatureClassInfo.DataSourceConnectionString); IFeatureDataSet fds = ds.OpenFeatureDataset(fl.FeatureClassInfo.DataSetName); if (fds != null) { using (FCPropertyFrm fCPropertyForm = new FCPropertyFrm(ds, fl.FeatureClassInfo.DataSetName, CommonUtils.Instance().CurEditLayer.GetFeatureClass(), inProjectTree, isCheckOut)) { fCPropertyForm.ShowDialog(); } } } } else { XtraMessageBox.Show("请设置当前编辑要素类!"); } }
private Dictionary <string, string> GetQueryResult(IFeatureClassInfo fcInfo, int featureId) { if (fcInfo == null || featureId < 0) { return(null); } IFdeCursor cursor = null; IRowBuffer row = null; try { IDataSourceFactory dsf = new DataSourceFactory(); if (!dsf.HasDataSourceByString(fcInfo.DataSourceConnectionString)) { return(null); } IDataSource ds = dsf.OpenDataSourceByString(fcInfo.DataSourceConnectionString); if (ds == null) { return(null); } IFeatureDataSet fds = ds.OpenFeatureDataset(fcInfo.DataSetName); if (fds == null) { return(null); } IFeatureClass fc = fds.OpenFeatureClass(fcInfo.FeatureClassName); if (fc == null) { return(null); } IQueryFilter filter = new QueryFilter(); filter.WhereClause = fc.FidFieldName + "=" + featureId; if (fc.GetCount(filter) == 0) { return(null); } cursor = fc.Search(filter, false); if (cursor == null) { return(null); } row = cursor.NextRow(); if (row == null) { return(null); } IFieldInfoCollection fiCol = row.Fields; Dictionary <string, string> dict = new Dictionary <string, string>(); for (int i = 0; i < fiCol.Count; i++) { IFieldInfo fi = row.Fields.Get(i); object obj = row.GetValue(fiCol.IndexOf(fi.Name)); if (obj == null) { continue; } string str = ""; switch (fi.FieldType) { case gviFieldType.gviFieldBlob: case gviFieldType.gviFieldUnknown: case gviFieldType.gviFieldGeometry: break; case gviFieldType.gviFieldFloat: case gviFieldType.gviFieldDouble: double d; if (double.TryParse(obj.ToString(), out d)) { str = d.ToString("0.00"); } break; default: str = obj.ToString(); break; } if (!string.IsNullOrEmpty(str.Trim())) { string temp = (string.IsNullOrEmpty(fi.Alias)) ? fi.Name : fi.Alias; dict[temp] = str; } } return(dict); } catch (Exception ex) { return(null); } }