private void BindViewCombo() { for (int i = 0; i < this.gridView1.Columns.Count; i++) { this.gridView1.Columns[i].OptionsColumn.AllowEdit = false; string field_name = this.gridView1.Columns[i].FieldName.ToLower(); #region 设定列标签 TableColumnDesc desc = this.dynamicObject.ColumnList.Find(obj => obj.Column_name.ToLower() == field_name); this.gridView1.Columns[i].Caption = GlobeData.GetTableColumnDisplayName(desc.Id); #endregion #region BindCombo if (this.gridView1.Columns[i].FieldName == "Id") { this.gridView1.Columns[i].VisibleIndex = 0; } else { TableColumnReference columnReference = this.dynamicObject.ColumnReferenceList.Find(obj => obj.Id == desc.Id); if (columnReference != null) { if (columnReference.Reference_id != null) { DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit repEditor = new DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit(); repEditor.AutoHeight = false; repEditor.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] { new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo) }); repEditor.Columns.AddRange(new DevExpress.XtraEditors.Controls.LookUpColumnInfo[] { new DevExpress.XtraEditors.Controls.LookUpColumnInfo(GlobeData.GetColumnName(columnReference.Reference_value_column_id), "ID"), new DevExpress.XtraEditors.Controls.LookUpColumnInfo(GlobeData.GetColumnName(columnReference.Reference_text_column_id), "Name") }); repEditor.DisplayMember = GlobeData.GetColumnName(columnReference.Reference_text_column_id); repEditor.Name = "repEditor" + field_name; repEditor.ValueMember = GlobeData.GetColumnName(columnReference.Reference_value_column_id); repEditor.DataSource = new DynamicObjectHelper( GlobeData.classDescList.Find(obj => obj.Table_id == columnReference.Reference_id)).DataList; this.gridView1.Columns[i].ColumnEdit = repEditor; } } } #endregion TableColumnRegular regular = this.dynamicObject.ColumnRegularList.Find(obj => obj.Id == desc.Id); if (regular != null && regular.Max_value != regular.Min_value) { BindCondtion(this.gridView1.Columns[i], regular.Min_value, regular.Max_value); } } }
private LayoutControlGroup CreateLayoutGroup(List <TableColumnDesc> column_list, List <TableColumnDisplay> display_list, List <TableColumnReference> reference_list, List <TableColumnRegular> rule_list) { string group_text = String.Empty; string sub_group_text = String.Empty; TableColumnDisplay display = display_list.Find(obj => obj.Id == column_list[0].Id); if (display != null) { group_text = display.Column_display_name; sub_group_text = display.Sub_group_display_name; } LayoutControlGroup grp = this.CreateLayoutGroup(sub_group_text == String.Empty?group_text:sub_group_text); foreach (TableColumnDesc col in column_list) { TableColumnDisplay column_display = display_list.Find(obj => obj.Id == col.Id); TableColumnReference column_reference = reference_list.Find(obj => obj.Id == col.Id); TableColumnRegular column_rule = rule_list.Find(obj => obj.Id == col.Id); string column_text = column_display != null?column_display.Column_display_name:col.Column_name; string column_ref_value = GlobeData.tableColumnDescList.Find(obj => obj.Column_idx == column_reference.Reference_value_column_id).Column_name; string column_ref_text = GlobeData.tableColumnDescList.Find(obj => obj.Column_idx == column_reference.Reference_text_column_id).Column_name; var ref_data = new object(); LayoutControlItem itm = new LayoutControlItem(); if (column_reference != null) { ClassDesc tmp = GlobeData.classDescList.Find(obj => obj.Id == column_reference.Reference_id); if (tmp != null) { object ref_class = GlobeData.assembly.CreateInstance(tmp.Class_name); ref_data = ref_class.GetType().InvokeMember("GetDataList", BindingFlags.Default | BindingFlags.InvokeMethod, null, ref_class, null); } } switch (col.Column_edit_type) { case ObjectEnum.ColumnEditType.Calc: itm = this.CreateCalcItem(column_text, col.Column_name, 10, 8, col.Is_readonly); break; case ObjectEnum.ColumnEditType.Check: itm = this.CreateCheckItem(column_text, col.Column_name, col.Is_readonly); break; case ObjectEnum.ColumnEditType.CheckedCombo: itm = this.CreateCheckedComboItem(column_text, col.Column_name, column_rule != null ? column_rule.ItemList.Split(',').ToList(): new List <String>(), "(Select All)", ',', col.Is_readonly); break; case ObjectEnum.ColumnEditType.Combo: itm = this.CreateComboItem(column_text, col.Column_name, ref_data, column_ref_text, column_ref_value, col.Is_readonly); break; case ObjectEnum.ColumnEditType.Date: itm = this.CreateDateItem(column_text, col.Column_name, col.Is_readonly); break; case ObjectEnum.ColumnEditType.Grid: break; case ObjectEnum.ColumnEditType.LookUp: itm = this.CreateSearchFindItem(column_text, col.Column_name, ref_data, column_ref_text, column_ref_value, col.Is_readonly); break; case ObjectEnum.ColumnEditType.Memo: itm = this.CreateMemoItem(column_text, col.Column_name, column_rule != null ? column_rule.Max_length : 65535, col.Is_readonly); break; case ObjectEnum.ColumnEditType.Spin: itm = this.CreateSpinItem(column_text, col.Column_name, column_rule != null ? column_rule.Max_value : int.MaxValue, column_rule != null ? column_rule.Min_value : int.MinValue, 1, false, col.Is_readonly); break; case ObjectEnum.ColumnEditType.Text: itm = this.CreateTextItem(column_text, col.Column_name, column_rule != null ? column_rule.Max_length : 65535, column_rule != null?column_rule.Mask_type:MaskType.None, column_rule != null?column_rule.Mask:String.Empty, col.Is_readonly); break; case ObjectEnum.ColumnEditType.Time: itm = this.CreateTimeItem(column_text, col.Column_name, col.Is_readonly); break; case ObjectEnum.ColumnEditType.Toggle: itm = this.CreateToggleSwitchItem(column_text, col.Column_name, column_rule != null ? column_rule.Toggle_off_value : false, column_rule != null ? column_rule.Toggle_on_value : true, column_rule != null ? column_rule.Toggle_off_text : "Off", column_rule != null ? column_rule.Toggle_on_text : "ON", col.Is_readonly); break; } grp.AddItem(itm); } return(grp); }