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); }