来自 VS class 的新 DAC 字段
New DAC field from VS class
我必须在 Visual Studio 项目中创建一个 DAC 扩展而不是 DAC class 到自定义中,因为我必须为几个字段定义下拉值,如果我直接扩展 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 中 table。但是,如果我将任何新字段添加到此 DAC 扩展 class,它不会在 SOOrder table 中创建新字段,并且在我发布自定义时会跳过。因此,我需要在我的自定义中添加一个 SQL 脚本,以将这些新字段添加到 SOOrder table.
我不确定这样做是否正确。理想情况下,如果我在 Visual Studio 中的 DAC 扩展中添加新字段,它应该在 SOOrder table 中创建新字段,就像我在 DAC 扩展中直接将新字段添加到自定义中一样。
Krunal,当您在自定义项目管理器中声明新的绑定 DAC 字段时,Acumatica 只会在数据库中创建新列。当有人直接在 Visual Studio.
中声明 DAC 扩展中的新字段时,无法在数据库中自动创建新列
请参考下面的屏幕截图,其中显示了如何直接在项目管理器中声明您的自定义 UsrDropDown:
我必须在 Visual Studio 项目中创建一个 DAC 扩展而不是 DAC class 到自定义中,因为我必须为几个字段定义下拉值,如果我直接扩展 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 中 table。但是,如果我将任何新字段添加到此 DAC 扩展 class,它不会在 SOOrder table 中创建新字段,并且在我发布自定义时会跳过。因此,我需要在我的自定义中添加一个 SQL 脚本,以将这些新字段添加到 SOOrder table.
我不确定这样做是否正确。理想情况下,如果我在 Visual Studio 中的 DAC 扩展中添加新字段,它应该在 SOOrder table 中创建新字段,就像我在 DAC 扩展中直接将新字段添加到自定义中一样。
Krunal,当您在自定义项目管理器中声明新的绑定 DAC 字段时,Acumatica 只会在数据库中创建新列。当有人直接在 Visual Studio.
中声明 DAC 扩展中的新字段时,无法在数据库中自动创建新列请参考下面的屏幕截图,其中显示了如何直接在项目管理器中声明您的自定义 UsrDropDown: