示例#1
0
        private void BtnSave_Click(object sender, EventArgs e)
        {
            DBColumn dbColumn = new DBColumn()
            {
                ColumnName = txtColumnName.Text,
                AllowNull  = checkBoxAllowNull.Checked,
                DbType     = JFieldType.String,
            };
            int length = 0;

            if (!string.IsNullOrEmpty(txtLength.Text))
            {
                int.TryParse(txtLength.Text, out length);
                dbColumn.Length = length;
            }

            if (!string.IsNullOrEmpty(comboBoxSQLDBType.Text))
            {
                JFieldType dbType;
                if (Enum.TryParse <JFieldType>(comboBoxSQLDBType.Text, out dbType))
                {
                    dbColumn.DbType = dbType;
                }
            }

            JField field = new JField(dbColumn);

            if (AddFieldDelegate != null)
            {
                AddFieldDelegate(field);
            }
            this.Close();
        }
示例#2
0
        public TreeNode PrepareNode(JField field)
        {
            var fieldNode = new TreeNode(field.FieldName);

            fieldNode.Tag = field.FieldName;
            if (field.ValueType == JFieldType.DateTime)
            {
                fieldNode.ImageIndex = fieldNode.SelectedImageIndex = 4;
            }
            else if (field.ValueType == JFieldType.Numeric)
            {
                fieldNode.ImageIndex = fieldNode.SelectedImageIndex = 5;
            }
            else
            {
                fieldNode.ImageIndex = fieldNode.SelectedImageIndex = 1;
            }
            if (!field.Visible)
            {
                if (!field.AllowNull)
                {
                    fieldNode.ForeColor = Color.Red;
                }
                else
                {
                    fieldNode.ForeColor = Color.OrangeRed;
                }
            }

            return(fieldNode);
        }
示例#3
0
        private static JField visitField(Field fe)
        {
            var fe2 = new JField();

            visitMember(fe, fe2);
            fe2.Type = visitType(fe.GenericType);
            return(fe2);
        }
        public JField ConvertField(XField field, ParentObjectInfo parentInfo)
        {
            if (field.ID == null)
            {
                throw new Exception("Объект field не может быть преобразован в JField");
            }

            if (string.IsNullOrEmpty(parentInfo.CardVersion))
            {
                throw new Exception("У поля " + field.Alias + " отсутствует версия (карточки)");
            }

            if (parentInfo.CardLibID == null || parentInfo.CardLibID == Guid.Empty)
            {
                throw new Exception("У поля " + field.Alias + " отсутствует идентификатор библиотеки карточек");
            }

            if (parentInfo.CardID == null || parentInfo.CardID == Guid.Empty)
            {
                throw new Exception("У поля " + field.Alias + " отсутствует идентификатор карточки");
            }

            if (parentInfo.SectionID == null || parentInfo.SectionID == Guid.Empty)
            {
                throw new Exception("У поля " + field.Alias + " отсутствует идентификатор секции");
            }

            var version = new JFieldVersion
            {
                SystemVersion = parentInfo.SystemVersion,
                Version       = parentInfo.CardVersion,
                FieldType     = field.Type,
                RefType       = field.RefType,
                RefSection    = field.RefSection,
                DefaultValue  = field.DefaultValue,
                EnumValues    = field.Enum != null?field.Enum.Select(t => $"{t.Alias}[{t.Value}]").ToArray() : new string[0],
            };

            var jField = new JField
            {
                ID              = field.ID,
                Alias           = field.Alias,
                Name            = GetRuName(field.Names),
                CardLibID       = parentInfo.CardLibID,
                CardID          = parentInfo.CardID,
                ParentSectionID = parentInfo.SectionID,
                Versions        = new List <JFieldVersion> {
                    version
                }
            };

            return(jField);
        }
        void WriteField(DatWriter w, JField field)
        {
            w.WriteUInt8((byte)field.type);
            w.WriteUtf8(field.field);

            if (field.klass == null)
            {
                return;
            }
            w.WriteUInt8(TC_STRING);
            w.WriteUtf8(field.klass);
        }
示例#6
0
        private void BindFieldInfo(JField field)
        {
            if (field == null)
            {
                return;
            }
            lbFieldName.Text   = field.FieldName;
            cBoxValueType.Text = field.ValueType.ToJString();
            cBoxVisible.Text   = field.Visible.ToJString("True");

            cBoxOperator.Text = field.Operator;
            operandCtrl1.LoadJOperateNum(field.FirstOperand, field.FieldName);
            operandCtrl2.LoadJOperateNum(field.SecondOperand, field.FieldName);
        }
示例#7
0
 private void visualeMenuItemOfDst_Click(object sender, EventArgs e)
 {
     try
     {
         if (tvDst.SelectedNode.Parent != null)
         {
             string fieldName = tvDst.SelectedNode.Tag.ToString();
             JField field     = TableSetting.Fields.Where(f => f.FieldName == fieldName).FirstOrDefault();
             field.SetVisible(!field.Visible);
             BindFieldInfo(field);
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "设置是否生成该列数据", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
示例#8
0
 private void tvDst_AfterSelect(object sender, TreeViewEventArgs e)
 {
     if (tvDst.SelectedNode.Parent != null)
     {
         string fieldName = tvDst.SelectedNode.Tag.ToString();
         IEnumerable <string> allFieldNames = TableSetting.Fields.Select(row => row.FieldName);
         operandCtrl1.PreLoad(allFieldNames);
         operandCtrl2.PreLoad(allFieldNames);
         JField field = TableSetting.Fields.Where(f => f.FieldName == fieldName).FirstOrDefault();
         BindFieldInfo(field);
         tabControl1.SelectedIndex = 0;
     }
     else
     {
         BindTableInfo();
         tabControl1.SelectedIndex = 1;
     }
 }
示例#9
0
        void WriteValue(DatWriter w, JField field)
        {
            switch (field.type)
            {
            case 'I':
                w.WriteInt32((int)field.value);
                break;

            case '[':
                w.WriteUInt8(TC_ARRAY);
                WriteClassDesc(w, "[B", new JField[0]);
                w.WriteInt32(((byte[])field.value).Length);
                w.WriteBytes((byte[])field.value);
                break;

            default:
                throw new InvalidOperationException("Can't write fields of type " + field.type);
            }
        }
示例#10
0
        Field Visit(JField fe)
        {
            var me2 = new Field
            {
                Name        = fe.Name,
                IsInternal  = !fe.IsProtected && !fe.IsPrivate && !fe.IsPublic,
                IsProtected = fe.IsProtected,
                IsStatic    = fe.IsStatic,
                IsReadOnly  = fe.IsFinal,
                //IsVirtual = !fe.IsFinal,
                //TypeRef = ResolveAndFix(fe.Type),
            };

            OnProcessMemberTypes.Do(() =>
            {
                me2.Type = ResolveAndFix(fe.Type, me2.DeclaringClass);
            });
            OnVisit(fe, me2);
            return(me2);
        }
示例#11
0
        void WriteValue(DatWriter w, JField field)
        {
            switch (field.type)
            {
            case 'I':
                w.WriteInt32((int)field.value);
                break;

            case '[':
                w.WriteUInt8(TC_ARRAY);
                WriteClassDesc(w, "[B", new JField[0]);
                w.WriteInt32(((byte[])field.value).Length);
                //w.WriteBytes((byte[])field.value);
                // NOTE: need to convert since level might have blocks that don't exist in classic
                WriteLevelBlocks(w.dst, (byte[])field.value);
                break;

            default:
                throw new InvalidOperationException("Can't write fields of type " + field.type);
            }
        }
示例#12
0
        private void btnSaveFieldInfo_Click(object sender, EventArgs e)
        {
            try
            {
                if (tvDst.SelectedNode == null || tvDst.SelectedNode.ImageIndex == 0)
                {
                    this.ShowMessage("请在左侧树中选择字段!");
                    return;
                }
                string fieldName = tvDst.SelectedNode.Tag.ToString();
                string tableName = tvDst.SelectedNode.Parent.Tag.ToString();
                JField field     = TableSetting.Fields.Where(f => f.FieldName == fieldName).FirstOrDefault();
                field.ValueType = (JFieldType)Enum.Parse(typeof(JFieldType), cBoxValueType.Text, true);
                field.SetVisible(bool.Parse(cBoxVisible.Text));

                field.FirstOperand  = operandCtrl1.GetOperateNum();
                field.SecondOperand = operandCtrl2.GetOperateNum();
                field.Operator      = cBoxOperator.Text;

                if (field.FirstOperand.ValueCategroy == JValueCategroy.OtherField)
                {
                    field.Order        = TableSetting.Order;
                    TableSetting.Order = TableSetting.Order + 1;
                }

                if (TableSetting.DataCount == 0)
                {
                    tabControl1.SelectedIndex = 1;
                }
                tvDst.SelectedNode.ForeColor = Color.Green;
                this.ShowMessage("表【{0}】字段【{1}】配置信息保存成功!", tableName, fieldName);
                TableSetting.Modified = true;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "设置生成规则失败", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }