Exemple #1
0
        protected string ConvertRelationFilterToString(AxEdtTableReferenceFilter referenceFilter)
        {
            string           res        = "";
            AxTable          axTableRef = _axHelper.MetadataProvider.Tables.Read(referenceFilter.Table);
            AxTableFieldEnum field      = axTableRef?.Fields[referenceFilter.RelatedField] as AxTableFieldEnum;

            if (field != null && !String.IsNullOrEmpty(field.EnumType))
            {
                AxEnum      axEnum      = _axHelper.MetadataProvider.Enums.Read(field.EnumType);
                AxEnumValue axEnumValue = axEnum?.EnumValues[referenceFilter.Value];
                if (axEnumValue != null && axEnumValue.Value == referenceFilter.Value)
                {
                    res = $"{axEnum.Name}::{axEnumValue.Name}";
                }
            }

            return(res);
        }
        //edt can be null
        public AxTableField BuildField(AxEdt edt)
        {
            AxTableField axTableField;

            switch (FieldType)
            {
            case FieldType.String:
                axTableField = new AxTableFieldString();
                if (edt == null)
                {
                    if (NewStrEdtLen > 0)
                    {
                        AxTableFieldString axTableFieldString = (AxTableFieldString)axTableField;
                        axTableFieldString.StringSize = NewStrEdtLen;
                    }
                }

                break;

            case FieldType.Integer:
                axTableField = new AxTableFieldInt();
                break;

            case FieldType.Real:
                axTableField = new AxTableFieldReal();
                break;

            case FieldType.DateTime:
                axTableField = new AxTableFieldUtcDateTime();
                break;

            case FieldType.Guid:
                axTableField = new AxTableFieldGuid();
                break;

            case FieldType.Int64:
                axTableField = new AxTableFieldInt64();
                break;

            case FieldType.Enum:
                axTableField = new AxTableFieldEnum();

                if (edt != null)
                {
                    AxEdtEnum        edtEnum   = edt as AxEdtEnum;
                    AxTableFieldEnum fieldEnum = axTableField as AxTableFieldEnum;
                    if (edtEnum != null)
                    {
                        fieldEnum.EnumType = edtEnum.EnumType;
                    }
                }

                break;

            case FieldType.Time:
                axTableField = new AxTableFieldTime();
                break;

            case FieldType.Container:
                axTableField = new AxTableFieldContainer();
                break;

            case FieldType.Memo:
                axTableField = new AxTableFieldString();
                break;

            case FieldType.Date:
                axTableField = new AxTableFieldDate();
                break;

            default:
                throw new NotImplementedException(
                          $"Field type {FieldType.ToString()} is not supported");
            }
            axTableField.Name = FieldName;
            if (IsMandatory)
            {
                axTableField.Mandatory = NoYes.Yes;
            }

            if (edt != null)
            {
                axTableField.ExtendedDataType = edt.Name;
            }
            else
            {
                if (LabelText != String.Empty)
                {
                    axTableField.Label = LabelText;
                }

                if (HelpTextText != String.Empty)
                {
                    axTableField.HelpText = HelpTextText;
                }
            }

            if (IsEdtExist && edt != null)
            {
                if (LabelText != String.Empty && edt.Label != LabelText)
                {
                    axTableField.Label = LabelText;
                }

                if (HelpTextText != String.Empty && edt.HelpText != HelpTextText)
                {
                    axTableField.HelpText = HelpTextText;
                }
            }

            return(axTableField);
        }