예제 #1
0
        public static string GetTableColumnDisplayName(int id)
        {
            TableColumnDisplay tableColumnDisplay = tableColumnDisplayList.Find(obj => obj.Id == id && obj.Language_id == GlobeSetting.language);

            if (tableColumnDisplay != null)
            {
                return(tableColumnDisplay.Column_display_name);
            }
            else
            {
                return(String.Empty);
            }
        }
예제 #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);
        }
예제 #3
0
        public void CreateLayoutEditor(DynamicObjectHelper dynamicObject)
        {
            if (dynamicObject.classDesc == null)
            {
                return;
            }

            this.dynamicObject       = dynamicObject;
            bindingSource.DataSource = dynamicObject.objclass;

            int group_idx = 1;

            while (true)
            {
                List <TableColumnDesc> list = dynamicObject.ColumnList.FindAll(obj => obj.Group_idx == group_idx);

                if (list.Count > 0)
                {
                    string group_text = String.Empty;

                    TableColumnDisplay display = dynamicObject.ColumnLanguageDisplayList.Find(obj => obj.Id == list[0].Id);
                    if (display != null)
                    {
                        group_text = display.Column_display_name;
                    }
                    LayoutControlGroup grp = this.CreateLayoutGroup(group_text);

                    #region 子Group
                    (int min, int max)tuple = (list.Min(obj => obj.Sub_group_idx), list.Min(obj => obj.Sub_group_idx));

                    if (tuple.min > 0)
                    {
                        for (int k = tuple.min; k <= tuple.max; k++)
                        {
                            List <TableColumnDesc> sub_list = list.FindAll(obj => obj.Sub_group_idx == k);

                            grp.Add(this.CreateLayoutGroup(sub_list, dynamicObject.ColumnLanguageDisplayList, dynamicObject.ColumnReferenceList, dynamicObject.ColumnRegularList));
                        }
                    }
                    #endregion

                    #region 单个Group
                    else
                    {
                        grp = this.CreateLayoutGroup(list, dynamicObject.ColumnLanguageDisplayList, dynamicObject.ColumnReferenceList, dynamicObject.ColumnRegularList);
                    }
                    #endregion

                    this.layoutEdit.AddGroup(grp);
                }
                else
                {
                    break;
                }

                group_idx++;
            }

            List <ClassRelated> sub_class = GlobeData.classRelatedList.FindAll(obj => obj.Main_class_id == dynamicObject.classDesc.Id);
            foreach (ClassRelated sub in sub_class)
            {
                ClassDesc subclass = GlobeData.classDescList.Find(obj => obj.Id == sub.Sub_class_id);

                LayoutControlGroup grp1 = this.CreateLayoutGroup(subclass.Class_name);
                LayoutControlItem  item = this.CreateGridListViewItem(subclass);
                grp1.AddItem(item);
                layoutEdit.AddGroup(grp1);
            }
        }