Acumatica PXTimeSpanLong(格式=TimeSpanFormatType.??)未提供正确的输出/输入

Acumatica PXTimeSpanLong(格式=TimeSpanFormatType.??)未提供正确的输出/输入,acumatica,Acumatica,你好 我目前正在使用[PXDBTimeSpan],但我仅限于24小时。 我需要的是能够将小时值设置为100小时以上。 示例:126:11(HHH:mm;126小时) 我研究了[PXTimeSpanLong()],在那里我测试了: *格式=TimeSpanFormatType.LongHoursMinutes *我试过使用输入掩码 *尝试仅使用PXTimeSpanLong并将时间模式设置为true 我在wiki上查看了更多关于TimeSpanFormatType的信息,但是还没有记录枚举类型。 旁

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

我研究了[PXTimeSpanLong()],在那里我测试了: *格式=TimeSpanFormatType.LongHoursMinutes *我试过使用输入掩码 *尝试仅使用PXTimeSpanLong并将时间模式设置为true

我在wiki上查看了更多关于TimeSpanFormatType的信息,但是还没有记录枚举类型。
旁注:我正在使用Acumatica ERP创建此字段

Acumatica页面在绑定到
日期时间
字段时使用天-小时-分钟格式,因此您必须遵循此数据类型的模式:

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

在屏幕上,它看起来像这样:

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

添加MaskEdit控件:

设置MaskEdit InputMask属性:

字符串数据类型允许保存任意格式,如3位数字:

我们使用了PXDBTimeSpanLong和LongHoursMinutes格式。实际上,我们有一些字段,可以通过设置选择格式。只要您对页面使用PXMaskEdit,LongHoursMinutes就应该适用于您的情况

在DAC的INT字段上:

[PXDBTimeSpanLong(Format = TimeSpanFormatType.LongHoursMinutes)] 
然后在您所在领域的页面上:

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

示例显示左侧的PXDBTimeSpanLong字段和使用右侧的简单PXInt unbound字段显示DB值的相同值:

示例中使用的完整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
#区域MyTime字段
公共抽象类myTimeField:PX.Data.BQL.BqlInt.Field{}
受保护的Int32_MyTimeField;
[PXDBTimeSpanLong(格式=TimeSpanFormatType.LongHoursMinutes)]
[PXDefault(TypeCode.Int32,“0”)]
[PXUIField(DisplayName=“LongHoursMinutesField”)]
公共虚拟Int32?MyTimeField
{
得到
{
将此返回。\u MyTimeField;
}
设置
{
这是。_MyTimeField=值;
}
}
#端区
#地区MyTimeFieldDdb
[PXInt]
[PXUIField(DisplayName=“DB Value”)]
公共虚拟Int32?MyTimeFieldDdb
{
得到
{
将此返回。\u MyTimeField;
}
}
#端区

谢谢您的回复。我们试过这条路线。问题是我们希望在其他形式和Power BI中使用此字段进行计算,因此使用Int值作为保存类型是理想的。我的建议是在代码中进行转换,或者只使用PXInt类型的数字字段。