【发布时间】:2016-11-02 14:50:28
【问题描述】:
我必须在 Visual Studio 项目中创建一个 DAC 扩展,而不是自定义 DAC 类,因为我必须为几个字段定义下拉值,如果我直接从自定义扩展 DAC,我将无法创建它。
这里是带有下拉字段及其值的 DAC 扩展代码,来自 Visual Studio 项目-
public class SOOrderExtension : PXCacheExtension<PX.Objects.SO.SOOrder>
{
#region Class DropDownValue
public static class DropDownValue
{
public const string Value1 = "1";
public const string Value2 = "2";
public const string Value3 = "3";
}
#endregion
#region UsrDropDown
[PXDBString(1)]
[PXUIField(DisplayName = "My DropDown")]
[PXStringList(new string[]
{
DropDownValue.Value1, DropDownValue.Value2, DropDownValue.Value3
},
new string[]
{
"One", "Two", "Three"
})]
public virtual string UsrDropDown { get; set; }
public abstract class usrDropDown : IBqlField { }
#endregion
}
这工作正常,它在 SOOrder 现有表中创建了新的用户定义字段。但是,如果我将任何新字段添加到此 DAC 扩展类中,它不会在 SOOrder 表中创建新字段,并且只会在我发布我的自定义时跳过。因此,我需要在我的自定义中添加一个 SQL 脚本,以将这些新字段添加到 SOOrder 表中。
我不确定这是否是正确的方法。理想情况下,如果我在 Visual Studio 的 DAC 扩展中添加新字段,它应该在 SOOrder 表中创建新字段,就像我将 DAC 扩展中的新字段直接添加到自定义中一样。
【问题讨论】:
标签: acumatica