コード例 #1
0
    private void Control_OnBeforeSave(object sender, EventArgs e)
    {
        UIForm form = (UIForm)sender;
        FormUserControlInfo formControl = form.EditedObject as FormUserControlInfo;

        if (formControl != null)
        {
            if (form.IsInsertMode)
            {
                FormEngineUserControl fileName = form.FieldControls["UserControlFileName"];
                FormEngineUserControl parentId = form.FieldControls["UserControlParentID"];

                if ((fileName != null) && (parentId != null) && fileName.Visible && !parentId.Visible && (ValidationHelper.GetInteger(parentId.Value, 0) > 0))
                {
                    // Reset inheritance setting if it's not visible
                    formControl.SetValue("UserControlParentID", null);
                }
            }
            else
            {
                // Set control's priority
                formControl.UserControlPriority = ValidationHelper.GetBoolean(form.GetFieldValue(FIELD_PRIORITY), false) ? (int)ObjectPriorityEnum.High : (int)ObjectPriorityEnum.Low;

                // Set which (data) types the control can be used for. Individual values are field types
                var values = GetFieldValues(form, FIELD_FOR);

                foreach (var group in DataTypeManager.GetFieldGroups())
                {
                    var col = FormHelper.GetDataTypeColumnForGroup(group);

                    formControl.SetValue(col, values.Contains(group));
                }

                // Set which resources the control can be shown in
                values = GetFieldValues(form, FIELD_SHOWIN);

                formControl.UserControlShowInDocumentTypes = values.Contains(SHOWIN_PAGETYPE);
                formControl.UserControlShowInBizForms      = values.Contains(SHOWIN_FORM);

                values = GetFieldValues(form, FIELD_SHOWIN2);

                formControl.UserControlShowInCustomTables = values.Contains(SHOWIN_CUSTOMTABLE);
                formControl.UserControlShowInSystemTables = values.Contains(SHOWIN_SYSTEMTABLE);
                formControl.UserControlShowInReports      = values.Contains(SHOWIN_REPORT);
                formControl.UserControlShowInWebParts     = values.Contains(SHOWIN_CONTROL);
            }
        }
    }
コード例 #2
0
    private void Control_OnBeforeSave(object sender, EventArgs e)
    {
        UIForm form = (UIForm)sender;
        FormUserControlInfo formControl = form.EditedObject as FormUserControlInfo;

        if (formControl != null)
        {
            if (form.IsInsertMode)
            {
                FormEngineUserControl fileName = form.FieldControls["UserControlFileName"];
                FormEngineUserControl parentId = form.FieldControls["UserControlParentID"];

                if ((fileName != null) && (parentId != null) && fileName.Visible && !parentId.Visible && (ValidationHelper.GetInteger(parentId.Value, 0) > 0))
                {
                    // Reset inheritance setting if it's not visible
                    formControl.SetValue("UserControlParentID", null);
                }
            }
            else
            {
                // Set control's priority
                formControl.UserControlPriority = ValidationHelper.GetBoolean(form.GetFieldValue(FIELD_PRIORITY), false) ? (int)ObjectPriorityEnum.High : (int)ObjectPriorityEnum.Low;

                // Set which (data) types the control can be used for
                List <string> values = GetFieldValues(form, FIELD_FOR);
                formControl.UserControlForText           = values.Contains(FOR_TEXT);
                formControl.UserControlForLongText       = values.Contains(FOR_LONG_TEXT);
                formControl.UserControlForInteger        = values.Contains(FOR_INT);
                formControl.UserControlForLongInteger    = values.Contains(FOR_LONG_INT);
                formControl.UserControlForDecimal        = values.Contains(FOR_DECIMAL);
                formControl.UserControlForDateTime       = values.Contains(FOR_DATE);
                formControl.UserControlForBoolean        = values.Contains(FOR_BOOL);
                formControl.UserControlForGUID           = values.Contains(FOR_GUID);
                formControl.UserControlForFile           = values.Contains(FOR_FILE);
                formControl.UserControlForDocAttachments = values.Contains(FOR_ATTACH);
                formControl.UserControlForVisibility     = values.Contains(FOR_VISIBILITY);

                // Set which resources the control can be shown in
                values = GetFieldValues(form, FIELD_SHOWIN);
                formControl.UserControlShowInDocumentTypes = values.Contains(SHOWIN_PAGETYPE);
                formControl.UserControlShowInBizForms      = values.Contains(SHOWIN_FORM);
                values = GetFieldValues(form, FIELD_SHOWIN2);
                formControl.UserControlShowInCustomTables = values.Contains(SHOWIN_CUSTOMTABLE);
                formControl.UserControlShowInSystemTables = values.Contains(SHOWIN_SYSTEMTABLE);
                formControl.UserControlShowInReports      = values.Contains(SHOWIN_REPORT);
                formControl.UserControlShowInWebParts     = values.Contains(SHOWIN_CONTROL);
            }
        }
    }
    private void Control_OnBeforeSave(object sender, EventArgs e)
    {
        UIForm form = (UIForm)sender;
        FormUserControlInfo formControl = form.EditedObject as FormUserControlInfo;

        if (formControl != null)
        {
            if (form.IsInsertMode)
            {
                var parentIdControl = form.FieldControls[FIELD_PARENTID];

                // Reset inheritance setting if it's not visible
                if (parentIdControl == null || !parentIdControl.Visible)
                {
                    formControl.SetValue(FIELD_PARENTID, null);
                }

                // Ensure that form definition of parameters is not empty
                if (string.IsNullOrWhiteSpace(formControl.UserControlParameters))
                {
                    formControl.UserControlParameters = FormInfo.GetEmptyFormDocument().OuterXml;
                }
            }
            else
            {
                // Reset filename if field not available
                var fileNameControl = form.FieldControls[FIELD_FILENAME];
                if (fileNameControl == null || !fileNameControl.Visible)
                {
                    formControl.SetValue(FIELD_FILENAME, String.Empty);
                }

                // Reset class name if field not available
                var assemblyControl = form.FieldControls[FIELD_ASSEMBLYNAME];
                if (assemblyControl == null || !assemblyControl.Visible)
                {
                    formControl.SetValue(FIELD_ASSEMBLYNAME, null);
                    formControl.SetValue(FIELD_CLASSNAME, null);
                }

                // Set control's priority
                formControl.UserControlPriority = ValidationHelper.GetBoolean(form.GetFieldValue(FIELD_PRIORITY), false) ? (int)ObjectPriorityEnum.High : (int)ObjectPriorityEnum.Low;

                // Set which (data) types the control can be used for. Individual values are field types
                var values = GetFieldValues(form, FIELD_FOR);

                foreach (var group in DataTypeManager.GetFieldGroups())
                {
                    var col = FormHelper.GetDataTypeColumnForGroup(group);

                    formControl.SetValue(col, values.Contains(group));
                }

                // Set which resources the control can be shown in
                values = GetFieldValues(form, FIELD_SHOWIN);

                formControl.UserControlShowInDocumentTypes = values.Contains(SHOWIN_PAGETYPE);
                formControl.UserControlShowInBizForms      = values.Contains(SHOWIN_FORM);

                values = GetFieldValues(form, FIELD_SHOWIN2);

                formControl.UserControlShowInCustomTables = values.Contains(SHOWIN_CUSTOMTABLE);
                formControl.UserControlShowInSystemTables = values.Contains(SHOWIN_SYSTEMTABLE);
                formControl.UserControlShowInReports      = values.Contains(SHOWIN_REPORT);
                formControl.UserControlShowInWebParts     = values.Contains(SHOWIN_CONTROL);
            }
        }
    }