public GroupField Clone()
        {
            GroupField clone = (GroupField)this.MemberwiseClone();

            base.AssignMembers(clone);
            return(clone);
        }
예제 #2
0
 /// <summary>
 /// Constructor for Label Field Definition
 /// </summary>
 /// <param name="frm">The main form</param>
 /// <param name="field">The label field</param>
 public GroupFieldDefinition(MainForm frm, GroupField field)
     : base(frm)
 {
     InitializeComponent();
     this.mode = FormMode.Edit;
     this.field = field;
     this.page = field.Page;
     LoadFormData();
 }
예제 #3
0
        private List<Control> GetControls(GroupField field, Size canvasSize)
        {
            DragableGroupBox group = new DragableGroupBox();
            SetControlProperties(group, field, canvasSize);
            group.ForeColor = Color.Black;
            group.BackColor = field.BackgroundColor;
            group.Text = field.PromptText;
            group.AutoSize = true;
            group.Tag = field.ChildFieldNames;

            List<Control> controls = new List<Control>();
            controls.Add(group);
            if (!fieldControls.ContainsKey(field))
            {
                fieldControls.Add(field, controls);
            }
            else
            {
                fieldControls.Remove(field);
                fieldControls.Add(field, controls);
            }
            return controls;
        }
예제 #4
0
        /// <summary>
        /// Update Group field.
        /// </summary>
        /// <param name="field">Group field to update.</param>
        public void UpdateField(GroupField field)
        {
            try
            {
                #region InputValidation
                if (field == null)
                {
                    throw new ArgumentNullException("GroupField");
                }
                #endregion

                Query updateQuery = db.CreateQuery("update metaFields set [ControlFontFamily] = @ControlFontFamily, [ControlFontStyle] = @ControlFontStyle, " +
                    "[ControlFontSize] = @ControlFontSize, [ControlHeightPercentage] = @ControlHeightPercentage, [ControlLeftPositionPercentage] = @ControlLeftPositionPercentage, " +
                    "[ControlTopPositionPercentage] = @ControlTopPositionPercentage, [ControlWidthPercentage] = @ControlWidthPercentage, " +
                    "[FieldTypeId] = @FieldTypeId, [HasTabStop] = @HasTabStop, [Name] = @Name, [PageId] = @PageId, [PromptText] = @PromptText, " +
                    "[List] = @List, [BackgroundColor] = @BackgroundColor, " +
                    "[TabIndex] = @TabIndex where [UniqueId] = @UniqueId");

                updateQuery.Parameters.Add(new QueryParameter("@ControlFontFamily", DbType.String, field.ControlFont.Name));
                updateQuery.Parameters.Add(new QueryParameter("@ControlFontStyle", DbType.String, field.ControlFont.Style.ToString()));
                updateQuery.Parameters.Add(new QueryParameter("@ControlFontSize", DbType.Double, field.ControlFont.Size));
                updateQuery.Parameters.Add(new QueryParameter("@ControlHeightPercentage", DbType.Double, field.ControlHeightPercentage));
                updateQuery.Parameters.Add(new QueryParameter("@ControlLeftPositionPercentage", DbType.Double, field.ControlLeftPositionPercentage));
                updateQuery.Parameters.Add(new QueryParameter("@ControlTopPositionPercentage", DbType.Double, field.ControlTopPositionPercentage));
                updateQuery.Parameters.Add(new QueryParameter("@ControlWidthPercentage", DbType.Double, field.ControlWidthPercentage));
                updateQuery.Parameters.Add(new QueryParameter("@FieldTypeId", DbType.Int32, (int)field.FieldType));
                updateQuery.Parameters.Add(new QueryParameter("@HasTabStop", DbType.Boolean, field.HasTabStop));
                updateQuery.Parameters.Add(new QueryParameter("@Name", DbType.String, field.Name));
                updateQuery.Parameters.Add(new QueryParameter("@PageId", DbType.Int32, field.Page.Id));
                updateQuery.Parameters.Add(new QueryParameter("@PromptText", DbType.String, field.PromptText));
                updateQuery.Parameters.Add(new QueryParameter("@List", DbType.String, field.ChildFieldNames));
                updateQuery.Parameters.Add(new QueryParameter("@BackgroundColor", DbType.Int32, field.BackgroundColor.ToArgb()));
                updateQuery.Parameters.Add(new QueryParameter("@TabIndex", DbType.Int32, field.TabIndex));
                updateQuery.Parameters.Add(new QueryParameter("@UniqueId", DbType.Guid, field.UniqueId));

                db.ExecuteNonQuery(updateQuery);
            }
            catch (Exception ex)
            {
                throw new GeneralException("Could not update GroupField in the database", ex);
            }
        }
예제 #5
0
        /// <summary>
        /// Gets all the fields in a view
        /// </summary>
        /// <param name="view">A view object</param>
        /// <returns>A collection of fields</returns>
        public virtual FieldCollectionMaster GetFields(View view)
        {
            FieldCollectionMaster fields = new FieldCollectionMaster();
            try
            {
                DataTable table = GetFieldsAsDataTable(view);
                foreach (DataRow row in table.Rows)
                {
                    MetaFieldType fieldTypeId = (MetaFieldType)row[ColumnNames.FIELD_TYPE_ID];
                    Field field = null;
                    switch (fieldTypeId)
                    {
                        case MetaFieldType.Text:
                            field = new SingleLineTextField(view);
                            field.LoadFromRow(row);
                            break;
                        case MetaFieldType.LabelTitle:
                            field = new LabelField(view);
                            field.LoadFromRow(row);
                            break;
                        case MetaFieldType.TextUppercase:
                            field = new UpperCaseTextField(view);
                            field.LoadFromRow(row);
                            break;
                        case MetaFieldType.Multiline:
                            field = new MultilineTextField(view);
                            field.LoadFromRow(row);
                            break;
                        case MetaFieldType.Number:
                            field = new NumberField(view);
                            field.LoadFromRow(row);
                            break;
                        case MetaFieldType.PhoneNumber:
                            field = new PhoneNumberField(view);
                            field.LoadFromRow(row);
                            break;
                        case MetaFieldType.Date:
                            field = new DateField(view);
                            field.LoadFromRow(row);
                            break;
                        case MetaFieldType.Time:
                            field = new TimeField(view);
                            field.LoadFromRow(row);
                            break;
                        case MetaFieldType.DateTime:
                            field = new DateTimeField(view);
                            field.LoadFromRow(row);
                            break;
                        case MetaFieldType.Checkbox:
                            field = new CheckBoxField(view);
                            field.LoadFromRow(row);
                            break;
                        case MetaFieldType.YesNo:
                            field = new YesNoField(view);
                            field.LoadFromRow(row);
                            break;
                        case MetaFieldType.Option:
                            field = new OptionField(view);
                            field.LoadFromRow(row);
                            break;
                        case MetaFieldType.CommandButton:
                            field = new CommandButtonField(view);
                            field.LoadFromRow(row);
                            break;
                        case MetaFieldType.Image:
                            field = new ImageField(view);
                            field.LoadFromRow(row);
                            break;
                        case MetaFieldType.Mirror:
                            field = new MirrorField(view);
                            field.LoadFromRow(row);
                            break;
                        case MetaFieldType.Grid:
                            field = new GridField(view);
                            field.LoadFromRow(row);
                            break;
                        case MetaFieldType.Group:
                            field = new GroupField(view);
                            field.LoadFromRow(row);
                            break;
                        case MetaFieldType.GUID:
                            field = new GUIDField(view);
                            field.LoadFromRow(row);
                            break;
                        case MetaFieldType.LegalValues:
                            field = new DDLFieldOfLegalValues(view);
                            field.LoadFromRow(row);
                            break;
                        case MetaFieldType.Codes:
                            field = new DDLFieldOfCodes(view);
                            ((DDLFieldOfCodes)field).LoadFromRow(row);  //zack
                            break;
                        case MetaFieldType.List:
                            field = new DDListField(view);
                            ((DDListField)field).LoadFromRow(row);
                            break;
                        case MetaFieldType.CommentLegal:
                            field = new DDLFieldOfCommentLegal(view);
                            field.LoadFromRow(row);
                            break;
                        case MetaFieldType.Relate:
                            field = new RelatedViewField(view);
                            field.LoadFromRow(row);
                            break;
                        case MetaFieldType.RecStatus:
                            field = new RecStatusField(view);
                            field.LoadFromRow(row);
                            break;
                        case MetaFieldType.UniqueKey:
                            field = new UniqueKeyField(view);
                            field.LoadFromRow(row);
                            break;
                        case MetaFieldType.ForeignKey:
                            field = new ForeignKeyField(view);
                            field.LoadFromRow(row);
                            break;
                        case MetaFieldType.GlobalRecordId:
                            field = new GlobalRecordIdField(view);
                            field.LoadFromRow(row);
                            break;
                        default:
                            throw new ApplicationException("Invalid Field Type");
                    }
                    // Note: This check ideally shouldn't be necessary, but Epi 3.5.1 and previous versions actually do allow duplicate field names for group fields.
                    if (fields.Contains(field))
                    {
                        Logger.Log(DateTime.Now + ":  " + string.Format("The {0} field with name \"{1}\" already exists in {2}. This field has not been imported.", field.GetType().ToString(), field.Name, view.Name));
                    }
                    else
                    {
                        fields.Add(field);
                    }
                }

            }
            catch (Exception ex)
            {

            }
            return (fields);
        }
예제 #6
0
        /// <summary>
        /// Insert a GroupField record into the metaFields table.
        /// </summary>
        /// <param name="field">Group Filed</param>
        public int CreateField(GroupField field)
        {
            try
            {
                #region InputValidation
                if (field == null)
                {
                    throw new ArgumentNullException("GroupField");
                }
                #endregion

                Query insertQuery = db.CreateQuery("insert into metaFields([ViewId], [UniqueId], [ControlFontFamily], [ControlFontStyle], [ControlFontSize], [ControlHeightPercentage], [ControlLeftPositionPercentage], [ControlTopPositionPercentage], [ControlWidthPercentage], [FieldTypeId], [HasTabStop], [Name], [PageId], [PromptText], [List], [BackgroundColor], [TabIndex]) " +
                    "values (@ViewId, @UniqueId, @ControlFontFamily, @ControlFontStyle, @ControlFontSize, @ControlHeightPercentage, @ControlLeftPositionPercentage, @ControlTopPositionPercentage, @ControlWidthPercentage, @FieldTypeId, @HasTabStop, @Name, @PageId, @PromptText, @List, @BackgroundColor, @TabIndex)");

                insertQuery.Parameters.Add(new QueryParameter("@ViewId", DbType.Int32, field.GetView().Id));
                insertQuery.Parameters.Add(new QueryParameter("@UniqueId", DbType.Guid, field.UniqueId));
                insertQuery.Parameters.Add(new QueryParameter("@ControlFontFamily", DbType.String, field.ControlFont.Name));
                insertQuery.Parameters.Add(new QueryParameter("@ControlFontStyle", DbType.String, field.ControlFont.Style.ToString()));
                insertQuery.Parameters.Add(new QueryParameter("@ControlFontSize", DbType.Double, field.ControlFont.Size));
                insertQuery.Parameters.Add(new QueryParameter("@ControlHeightPercentage", DbType.Double, field.ControlHeightPercentage));
                insertQuery.Parameters.Add(new QueryParameter("@ControlLeftPositionPercentage", DbType.Double, field.ControlLeftPositionPercentage));
                insertQuery.Parameters.Add(new QueryParameter("@ControlTopPositionPercentage", DbType.Double, field.ControlTopPositionPercentage));
                insertQuery.Parameters.Add(new QueryParameter("@ControlWidthPercentage", DbType.Double, field.ControlWidthPercentage));
                insertQuery.Parameters.Add(new QueryParameter("@FieldTypeId", DbType.Int32, (int)field.FieldType));
                insertQuery.Parameters.Add(new QueryParameter("@HasTabStop", DbType.Boolean, field.HasTabStop));
                insertQuery.Parameters.Add(new QueryParameter("@Name", DbType.String, field.Name));
                insertQuery.Parameters.Add(new QueryParameter("@PageId", DbType.Int32, field.Page.Id));
                insertQuery.Parameters.Add(new QueryParameter("@PromptText", DbType.String, field.PromptText));
                insertQuery.Parameters.Add(new QueryParameter("@List", DbType.String, field.ChildFieldNames));
                insertQuery.Parameters.Add(new QueryParameter("@BackgroundColor", DbType.Int32, field.BackgroundColor.ToArgb()));
                insertQuery.Parameters.Add(new QueryParameter("@TabIndex", DbType.Int32, field.TabIndex));

                db.ExecuteNonQuery(insertQuery);
                return GetMaxFieldId(field.GetView().Id);
            }
            catch (Exception ex)
            {
                throw new GeneralException("Could not create field in the database", ex);
            }
        }
예제 #7
0
 /// <summary>
 /// Update Group field.
 /// </summary>
 /// <param name="field">Group field to update.</param>
 public void UpdateField(GroupField field)
 {
 }
예제 #8
0
        /// <summary>
        /// Insert a GroupField record into the metaFields table.
        /// </summary>
        /// <param name="field">Group Filed</param>
        public int CreateField(GroupField field)
        {
            try
            {
                return field.Id;
            }
            finally
            {

            }
        }
예제 #9
0
 /// <summary>
 /// Constructor for the class
 /// </summary>
 public GroupDefinition(GroupField groupField)
 {
     InitializeComponent();
     this.groupField = groupField;
     LoadFormData();
 }