Acumatica 绕场

Acumatica 绕场,acumatica,Acumatica,我们有一位客户要求将“持续时间”或“结束时间”字段四舍五入到服务预约条目中最近的四分之一小时(以最合理的为准) 在服务预约中有很多事情要做。有人有没有想过哪种方法是最好的?有很多事件会修改持续时间和结束时间,我不想修改所有这些。我想知道是否可以只修改DAC上的某些内容,将结束时间自动四舍五入到四分之一小时 在修改DAC方面取得了很大进展。代码中没有错误,当我一步一步地通过它时,我可以看到它按我所希望的方式舍入时间。但是,该字段未在屏幕中设置。我错过了什么愚蠢的事情吗 命名空间PX.Objec

我们有一位客户要求将“持续时间”或“结束时间”字段四舍五入到服务预约条目中最近的四分之一小时(以最合理的为准)

在服务预约中有很多事情要做。有人有没有想过哪种方法是最好的?有很多事件会修改持续时间和结束时间,我不想修改所有这些。我想知道是否可以只修改DAC上的某些内容,将结束时间自动四舍五入到四分之一小时


在修改DAC方面取得了很大进展。代码中没有错误,当我一步一步地通过它时,我可以看到它按我所希望的方式舍入时间。但是,该字段未在屏幕中设置。我错过了什么愚蠢的事情吗


命名空间PX.Objects.FS
{
公共类FSAppointDetServiceExt:PXCacheExtension
//公共类FSAppointDetServiceExt:PXCacheExtension
{
#区域实际日期时间结束
[PXDBDateAndTime(UseTimeZone=true,PreserveTime=true,DisplayNameDate=“实际日期结束”,DisplayNameTime=“实际时间结束-Nicole”)]
[PXUIField(DisplayName=“实际日期”,Visibility=PXUIVisibility.SelectorVisible)]
公共虚拟日期时间?实际日期时间结束
{
得到
{
返回此项。\u ActualDateTimeEnd;
}
设置
{
这._ActualDateTimeEnd=RoundUp(值,TimeSpan.FromMinutes(15));
}
}
#pragma warning disable PX1026//不能在DAC声明中使用下划线
公共日期时间?\u实际日期时间结束;
#pragma warning restore PX1026//不能在DAC声明中使用下划线
公共静态日期时间?综述(日期时间?dt,时间跨度d)
{
DateTime nt=转换为ToDateTime(dt);
如果(nt!=null)
{
返回新的日期时间((nt.Ticks+d.Ticks-1)/d.Ticks*d.Ticks,nt.Kind);
}
其他的
{
返回nt;
}
}
#端区
}
}
我想知道是否可以修改DAC上的某些内容以 自动将结束时间四舍五入到四分之一小时

是的,这是可能的,我会推荐它,因为它是最简单(也许不是最好)的方法

在代码部分创建DAC扩展名,覆盖(替换)需要舍入的字段日期。向属性添加支持字段,并修改setter属性以取整时间

例如:

[PXDBDateAndTime(UseTimeZone = true, PreserveTime = true, DisplayNameDate = "Actual Date Time Begin", DisplayNameTime = "Actual Start Time")]
[PXUIField(DisplayName = "Actual Date", Visibility = PXUIVisibility.SelectorVisible)]
public virtual DateTime? ActualDateTimeBegin 
{ 
   get { return _ActualDateTimeBegin; }
   set 
   {
      _ActualDateTimeBegin = RoundTime(value);
   }
}

public DateTime? _ActualDateTimeBegin;

public DateTime? RoundTime(DateTime? dateTime)
{
   // return the rounded datetime
}