在Acumatica中,要显示每周的数据,可以使用以下代码示例:
using PX.Data;
using PX.Objects.CR;
using PX.Objects.CS;
using PX.Objects.GL;
using PX.Objects.IN;
using PX.Objects.SO;
using PX.Objects.AR;
public class MyGraph : PXGraph
{
public PXSelectJoin>>> MyData;
public PXFilter Filter;
public PXSelect>>> MyFilteredData;
public MyGraph()
{
MyData.View = new PXView(this, false, new SelectJoin>>>(
this,
new[]
{
typeof(SelectJoin>>>),
typeof(MyTable),
typeof(MyOtherTable)
}),
new PXSelectDelegate(InitializeFilter));
}
public IEnumerable InitializeFilter()
{
Filter.Current.WeekStartDate = PXWeekSelectorAttribute.GetWeekID(DateTime.Now.Date);
yield return Filter.Cache.Current;
}
public PXAction ViewDetails;
[PXButton(CommitChanges = true)]
[PXUIField(DisplayName = "View Details")]
protected virtual void viewDetails()
{
if (MyFilteredData.Current != null)
{
// Open a new screen to show the details of the selected record
MyDetailsGraph graph = CreateInstance();
graph.MyData.Current = MyFilteredData.Current;
throw new PXRedirectRequiredException(graph, true, "Details");
}
}
}
在上面的代码示例中,我们定义了一个名为MyGraph
的Graph类。其中,MyTable
和MyOtherTable
是自定义表格,MyFilter
是自定义过滤器。
在图表的构造函数中,我们为MyData.View
设置了一个自定义的查询。该查询使用PXWeekSelectorAttribute.GetWeekID
方法获取当前周的开始日期,并将其与MyTable.DateColumn
进行比较,以过滤出每周的数据。
此外,我们还定义了一个名为ViewDetails
的Action方法。在此方法中,我们检查MyFilteredData.Current
是否为空,并打开一个新的屏幕以显示所选记录的详细信息。
请注意,上述代码仅为示例,实际情况可能会有所不同。您可能需要根据自己的需求进行适当的更改和调整。