我有一个要创建的自定义字段,即DB字段。即使默认值为0.0,“完成预测”字段的初始值为空。
最初如何获取数据库字段0.00?
[PXDBDecimal(2)]
[PXDefault(TypeCode.Decimal,“ 0.0”)]
[PXUIField(DisplayName =“要完成的预测”)]
答案 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
,则将其设置为默认值。