You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
4.3 KiB
120 lines
4.3 KiB
using System; |
|
using System.Collections.Generic; |
|
using System.ComponentModel; |
|
using System.Drawing; |
|
using System.Data; |
|
using System.Linq; |
|
using System.Text; |
|
using System.Threading.Tasks; |
|
using System.Windows.Forms; |
|
using DevExpress.XtraGrid.Columns; |
|
using ESRI.ArcGIS.Geodatabase; |
|
|
|
namespace KGIS.Plugin.LayerProperty.View.UC_Controls |
|
{ |
|
public partial class UCFieldsList : UserControl |
|
{ |
|
public UCFieldsList() |
|
{ |
|
InitializeComponent(); |
|
} |
|
|
|
public void InitUC(IFields fields) |
|
{ |
|
try |
|
{ |
|
DataTable dataTable = this.CreateDataTable(); |
|
if (fields != null) |
|
{ |
|
for (int i = 0; i < fields.FieldCount; i++) |
|
{ |
|
IField field = fields.get_Field(i); |
|
this.CreateDataRow(field, dataTable); |
|
} |
|
} |
|
this.SetDataSource(dataTable); |
|
} |
|
catch (Exception ex) |
|
{ |
|
//RdbUtil.AddException(ex); |
|
} |
|
} |
|
private DataTable CreateDataTable() |
|
{ |
|
try |
|
{ |
|
DataTable dataTable = new DataTable(); |
|
DataColumn dataColumn = new DataColumn("name", Type.GetType("System.String")); |
|
dataColumn.Caption = "名称"; |
|
dataTable.Columns.Add(dataColumn); |
|
dataColumn = new DataColumn("alias", Type.GetType("System.String")); |
|
dataColumn.Caption = "别名"; |
|
dataTable.Columns.Add(dataColumn); |
|
dataColumn = new DataColumn("datatype", Type.GetType("System.String")); |
|
dataColumn.Caption = "类型"; |
|
dataTable.Columns.Add(dataColumn); |
|
dataColumn = new DataColumn("length", Type.GetType("System.Int32")); |
|
dataColumn.Caption = "长度"; |
|
dataTable.Columns.Add(dataColumn); |
|
dataColumn = new DataColumn("precision", Type.GetType("System.Int32")); |
|
dataColumn.Caption = "精度"; |
|
dataTable.Columns.Add(dataColumn); |
|
dataColumn = new DataColumn("scale", Type.GetType("System.Int32")); |
|
dataColumn.Caption = "数值范围"; |
|
dataTable.Columns.Add(dataColumn); |
|
dataColumn = new DataColumn("numberformat", Type.GetType("System.String")); |
|
dataColumn.Caption = "数字格式"; |
|
dataTable.Columns.Add(dataColumn); |
|
return dataTable; |
|
} |
|
catch (Exception ex) |
|
{ |
|
//RdbUtil.AddException(ex); |
|
} |
|
return null; |
|
} |
|
private void CreateDataRow(IField field, DataTable dt) |
|
{ |
|
DataRow dataRow = dt.NewRow(); |
|
try |
|
{ |
|
dataRow["name"] = field.Name; |
|
dataRow["alias"] = field.AliasName; |
|
string value = field.Type.ToString().Substring(13); |
|
dataRow["datatype"] = value; |
|
dataRow["length"] = field.Length; |
|
dataRow["precision"] = field.Precision; |
|
dataRow["scale"] = field.Scale; |
|
dt.Rows.Add(dataRow); |
|
} |
|
catch (Exception ex) |
|
{ |
|
//RdbUtil.AddException(ex); |
|
} |
|
} |
|
private void SetDataSource(DataTable source) |
|
{ |
|
try |
|
{ |
|
this.gridViewMain.BeginDataUpdate(); |
|
this.gridViewMain.Columns.Clear(); |
|
this.gridViewMain.OptionsView.ColumnAutoWidth = false; |
|
this.gridMainCtrl.DataSource = source; |
|
this.gridMainCtrl.RefreshDataSource(); |
|
this.gridViewMain.PopulateColumns(); |
|
foreach (GridColumn gridColumn in this.gridViewMain.Columns) |
|
{ |
|
gridColumn.Caption = source.Columns[gridColumn.FieldName].Caption; |
|
} |
|
this.gridViewMain.OptionsBehavior.Editable = false; |
|
this.gridViewMain.OptionsView.ColumnAutoWidth = false; |
|
this.gridViewMain.BestFitColumns(); |
|
this.gridViewMain.EndDataUpdate(); |
|
} |
|
catch (Exception ex) |
|
{ |
|
//TraceEvent.AddException(ex); |
|
} |
|
} |
|
} |
|
}
|
|
|