Example #1
0
        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);
                }
            }
        }
Example #2
0
        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);
        }