예제 #1
0
        protected void addSpecificPropertiesToEdt(Metadata.MetaModel.AxEdt edt)
        {
            FieldType fieldType;

            if (!edtExist)
            {
                Enum.TryParse <FieldType>(this.controller.comboBoxFieldType.SelectedValue.ToString(), out fieldType);

                switch (fieldType)
                {
                case FieldType.String:
                    Metadata.MetaModel.AxEdtString edtString = edt as Metadata.MetaModel.AxEdtString;
                    edtString.StringSize = (int)this.controller.numericUpDownStringSize.Value;
                    break;

                case FieldType.Enum:
                    Metadata.MetaModel.AxEdtEnum edtEnum = edt as Metadata.MetaModel.AxEdtEnum;
                    edtEnum.EnumType = this.controller.comboBoxFieldType.Text;
                    break;

                case FieldType.Memo:
                    edt.Extends = "FreTxt";
                    break;

                default:
                    break;
                }
            }
        }
예제 #2
0
        public void edtNameChanged(object sender, EventArgs e)
        {
            FieldType fieldType;

            Enum.TryParse <FieldType>(this.comboBoxFieldType.SelectedValue.ToString(), out fieldType);

            if (this.textBoxEDTName.Text != string.Empty)
            {
                Metadata.MetaModel.AxEdt edt = this.MetadataProvider.Edts.Read(this.textBoxEDTName.Text);

                if (edt == null)
                {
                    this.textBoxHelpText.Text = string.Empty;
                    this.textBoxLabel.Text    = string.Empty;

                    this.textBoxExtends.Enabled = true;
                }
                else
                {
                    this.textBoxExtends.Enabled          = false;
                    this.textBoxExtends.Text             = string.Empty;
                    this.numericUpDownStringSize.Enabled = false;
                    this.numericUpDownStringSize.Value   = 0;

                    this.toolTipEdtName.SetToolTip(this.textBoxEDTName, "This EDT already exists. Label and help text will be set to new field.");
                }
            }
        }
예제 #3
0
 protected void addGeneralPropertiesToEdt(Metadata.MetaModel.AxEdt edt)
 {
     if (!edtExist)
     {
         edt.Name     = this.controller.textBoxEDTName.Text;
         edt.Label    = this.controller.textBoxLabel.Text;
         edt.HelpText = this.controller.textBoxHelpText.Text;
     }
 }
예제 #4
0
        public void fieldTypeChanged(object sender, EventArgs e)
        {
            ComboBox  curCombobox = sender as ComboBox;
            FieldType fieldType;

            Metadata.MetaModel.AxEdt edt = null;

            this.comboBoxExtends.SelectedIndex = -1;

            Enum.TryParse <FieldType>(curCombobox.SelectedItem.ToString(), out fieldType);

            if (this.comboBoxEDTName.SelectedIndex == -1)
            {
                if (this.comboBoxEDTName.Text != string.Empty)
                {
                    edt = this.MetadataProvider.Edts.Read(this.comboBoxEDTName.Text);
                }
            }
            else
            {
                edt = this.MetadataProvider.Edts.Read(this.comboBoxEDTName.SelectedItem.ToString());
            }
        }
        protected void CreateEDT(IBaseField baseField)
        {
            if (String.IsNullOrEmpty(baseField.ExtendedDataType) == false)
            {
                // There is already a EDT defined for this field
                return;
            }

            //  The Name of the edt to create should have the prefix as per the Settings
            //  If the Prefix already exists on the
            var modelSettings = Settings.FetchSettings.FindOrCreateSettings();
            var edtName       = baseField.Name;

            if (String.IsNullOrEmpty(modelSettings.Prefix) == false &&
                edtName.StartsWith(modelSettings.Prefix, StringComparison.InvariantCultureIgnoreCase) == false)
            {
                edtName = modelSettings.Prefix + edtName;
            }
            Microsoft.Dynamics.AX.Metadata.MetaModel.AxEdt edtToCreate = null;

            if (baseField is IFieldContainer)
            {
                //var currentField = baseField as IFieldContainer;
                edtToCreate = new Microsoft.Dynamics.AX.Metadata.MetaModel.AxEdtContainer();
            }
            else if (baseField is IFieldDate)
            {
                edtToCreate = new Microsoft.Dynamics.AX.Metadata.MetaModel.AxEdtDate();
            }
            else if (baseField is IFieldEnum)
            {
                edtToCreate = new Microsoft.Dynamics.AX.Metadata.MetaModel.AxEdtEnum();
            }
            else if (baseField is IFieldGuid)
            {
                edtToCreate = new Microsoft.Dynamics.AX.Metadata.MetaModel.AxEdtGuid();
            }
            else if (baseField is IFieldInt)
            {
                edtToCreate = new Microsoft.Dynamics.AX.Metadata.MetaModel.AxEdtInt();
            }
            else if (baseField is IFieldReal)
            {
                edtToCreate = new Microsoft.Dynamics.AX.Metadata.MetaModel.AxEdtReal();
            }
            else if (baseField is IFieldString)
            {
                edtToCreate = new Microsoft.Dynamics.AX.Metadata.MetaModel.AxEdtString();
            }
            else if (baseField is IFieldTime)
            {
                edtToCreate = new Microsoft.Dynamics.AX.Metadata.MetaModel.AxEdtTime();
            }
            else if (baseField is IFieldUtcDateTime)
            {
                edtToCreate = new Microsoft.Dynamics.AX.Metadata.MetaModel.AxEdtUtcDateTime();
            }

            this.copyProperties(baseField, edtToCreate);
            edtToCreate.Name = edtName;

            if (edtToCreate != null)
            {
                // Find current model
                var modelSaveInfo = Common.CommonUtil.GetCurrentModelSaveInfo();

                //Create menu item in the right model
                var metaModelProviders = ServiceLocator.GetService <IMetaModelProviders>() as IMetaModelProviders;
                var metaModelService   = metaModelProviders.CurrentMetaModelService;

                metaModelService.CreateExtendedDataType(edtToCreate, modelSaveInfo);

                //Update the table field with the EDT, also remove any labels from the field
                baseField.ExtendedDataType = edtToCreate.Name;
                baseField.Label            = String.Empty;
                baseField.HelpText         = String.Empty;

                // Add to the current active project
                Common.CommonUtil.AddElementToProject(edtToCreate);
            }
        }
예제 #6
0
        public void fieldTypeSelectedIndexChanged(object sender, EventArgs e)
        {
            FieldType fieldType;

            Metadata.MetaModel.AxEdt edt = null;

            bool enumTypeEnabled   = false;
            bool stringSizeEnabled = false;

            Enum.TryParse <FieldType>(this.comboBoxFieldType.SelectedValue.ToString(), out fieldType);

            if (this.textBoxEDTName.Text != string.Empty)
            {
                edt = this.MetadataProvider.Edts.Read(this.textBoxEDTName.Text);
            }

            switch (fieldType)
            {
            case FieldType.String:
                if (this.textBoxEDTName.Text == string.Empty)
                {
                    stringSizeEnabled = true;
                }
                else
                {
                    if (edt == null)
                    {
                        stringSizeEnabled = true;
                    }
                    else
                    {
                        stringSizeEnabled = false;
                    }
                }
                break;

            case FieldType.Enum:
                if (this.textBoxEDTName.Text == string.Empty)
                {
                    enumTypeEnabled = true;
                }
                else
                {
                    if (edt == null)
                    {
                        enumTypeEnabled = true;
                    }
                    else
                    {
                        enumTypeEnabled = false;
                    }
                }
                break;

            default:
                stringSizeEnabled = false;
                enumTypeEnabled   = false;
                break;
            }

            numericUpDownStringSize.Enabled = stringSizeEnabled;
            textBoxEnumType.Enabled         = enumTypeEnabled;
        }