PXTimeSpanLong(Format = TimeSpanFormatType。????)没有给出正确的输出/输入

时间:2019-07-04 06:19:28

标签: acumatica

美好的一天 我目前正在使用[PXDBTimeSpan],但仅限于24小时。 我需要的是能够将小时值设置为100小时以上。 例如:126:11(HHH:mm; 126小时。)

我在[PXTimeSpanLong()]中进行了测试: *格式= TimeSpanFormatType.LongHoursMinutes *我尝试使用输入掩码 *尝试仅使用PXTimeSpanLong并将“时间”模式设置为true。

我在Wiki上查找了有关TimeSpanFormatType的更多信息,但枚举类型尚未记录。 旁注:我正在使用Acumatica ERP创建此字段

2 个答案:

答案 0 :(得分:1)

Acumatica页面在绑定到DateTime字段时使用“天小时分钟”格式,因此您必须使用以下数据类型来遵循该模式:

    <px:PXMaskEdit ID="edTimeReaction" runat="server" DataField="TimeReaction" 
                   InputMask="### d\ays ## hrs ## mins" EmptyChar="0" Text="0" />

在屏幕上看起来像这样: enter image description here

要获得所需的格式,您将不得不选择其他数据类型,例如String,它将接受任何文本格式。然后,您将该字段添加为MaskEdit字段编辑器控件,并应用所需的InputMask

添加MaskEdit控件: enter image description here

设置MaskEdit InputMask属性: enter image description here

字符串数据类型将允许保存任意任意格式,例如3位数字: enter image description here

答案 1 :(得分:0)

我们已将PXDBTimeSpanLong与LongHoursMinutes格式一起使用。实际上,我们有一些字段可以通过设置来选择格式。只要您在页面上使用PXMaskEdit,LongHoursMinutes就可以正常工作。

在您的DAC的INT字段上:

[PXDBTimeSpanLong(Format = TimeSpanFormatType.LongHoursMinutes)] 

然后在您所在字段的页面上:

<px:PXMaskEdit ID="edMyTimeField" runat="server" DataField="MyTimeField" />

示例在左侧显示PXDBTimeSpanLong字段,并在右侧使用简单的PXInt未绑定字段显示相同的值以显示DB值:

enter image description here

示例中使用的完整dac字段:

#region MyTimeField
public abstract class myTimeField : PX.Data.BQL.BqlInt.Field<myTimeField> { }

protected Int32? _MyTimeField;

[PXDBTimeSpanLong(Format = TimeSpanFormatType.LongHoursMinutes)]
[PXDefault(TypeCode.Int32, "0")]
[PXUIField(DisplayName = "LongHoursMinutesField")]
public virtual Int32? MyTimeField
{
    get
    {
        return this._MyTimeField;
    }
    set
    {
        this._MyTimeField = value;
    }
}
#endregion
#region MyTimeFieldDB

[PXInt]
[PXUIField(DisplayName = "DB Value")]
public virtual Int32? MyTimeFieldDB
{
    get
    {
        return this._MyTimeField;
    }
}
#endregion