如何在acumatica中创建自定义字段时将“自定义DB”字段作为某个值而不是null

时间:2019-12-03 15:47:19

标签: database acumatica

我有一个要创建的自定义字段,即DB字段。即使默认值为0.0,“完成预测”字段的初始值为空。

最初如何获取数据库字段0.00?

[PXDBDecimal(2)]

[PXDefault(TypeCode.Decimal,“ 0.0”)]

[PXUIField(DisplayName =“要完成的预测”)]

2 个答案:

答案 0 :(得分:1)

也许有一种机制可以在字段初始化后分配空值。

如果记录是通过UI创建的,则可以尝试将AllowNull属性设置为False值:

<px:PXNumberEdit ID="edForecastToComplete" runat="server" AllowNull="False" 
                 DataField="ForecastToComplete" Decimals="4" ValueType="Decimal" />

在最坏的情况下,您可以使用C#属性设置器和支持字段将分配强制为非null:

public decimal? _forecastToComplete;

[PXDBDecimal]
[PXUIField(DisplayName = "Forecast to Complete")]
public virtual decimal? ForecastToComplete 
{ 
   get { return _forecastToComplete != null ? _forecastToComplete : 0M; }   
   set { _forecastToComplete = value != null ? value : 0M }
}

public abstract class forecastToComplete : IBqlField { }

答案 1 :(得分:1)

PXDefaultAttribute允许您设置新记录的默认值。
首次插入记录时分配该值。
您可以编写FieldSelecting事件处理程序并检查该字段的值,如果该值为null,则将其设置为默认值。