批准时间卡摘要过滤器自定义
Approve Time Card Summaries filter customization
我正在自定义“批准时间卡摘要”屏幕以执行以下操作:
1.) 在过滤器部分添加一个复选框
2.) 选中此复选框后,不在网格中显示 'Approved' 行。
我添加了一个带有新的未绑定布尔字段的缓存扩展,并将复选框添加到屏幕的过滤器/header 部分。
我想知道的是 - 是否有一个 IEnumerable 方法(我可以使用 'summary' 吗?)可以检查 header 过滤字段并且只产生 return 行通过过滤测试?如果是这样,我不确定这样做的语法是什么。
或者 - 在 Graph 扩展中重写摘要视图 select 语句并添加 where 子句会更好吗?
谢谢...
我知道怎么做了。在 Graph 扩展中,我重写了 'Summary' 视图,然后仅将 IEnumerable 'summary' 委托用于 return 满足我设置的复选框条件的行。即:
public PXSelectJoin<EPSummaryApprove
, LeftJoin<EPEarningType, On<EPEarningType.typeCD, Equal<EPSummaryApprove.earningType>>>
, Where2<Where<EPSummaryApprove.taskApproverID, Equal<Current<EPSummaryFilter.approverID>>, Or<Where<EPSummaryApprove.taskApproverID, IsNull, And<EPSummaryApprove.approverID, Equal<Current<EPSummaryFilter.approverID>>>>>>
, And2<Where<EPSummaryApprove.weekId, GreaterEqual<Current<EPSummaryFilter.fromWeek>>, Or<Current<EPSummaryFilter.fromWeek>, IsNull>>
, And2<Where<EPSummaryApprove.weekId, LessEqual<Current<EPSummaryFilter.tillWeek>>, Or<Current<EPSummaryFilter.tillWeek>, IsNull>>
, And2<Where<EPSummaryApprove.projectID, Equal<Current<EPSummaryFilter.projectID>>, Or<Current<EPSummaryFilter.projectID>, IsNull>>
, And2<Where<EPSummaryApprove.projectTaskID, Equal<Current<EPSummaryFilter.projectTaskID>>, Or<Current<EPSummaryFilter.projectTaskID>, IsNull>>
, And<Where<EPSummaryApprove.employeeID, Equal<Current<EPSummaryFilter.employeeID>>, Or<Current<EPSummaryFilter.employeeID>, IsNull>>
>
>
>
>
>
>
> Summary;
protected IEnumerable summary()
{
var epsf = (EPSummaryFilter)Base.Filter.Cache.Current;
var epse = PXCache<EPSummaryFilter>.GetExtension<EPSummaryFilterExt>(epsf);
foreach(var res in Base.Summary.Select())
{
var sum = (EPSummaryApprove)res;
if (epse != null)
{
if (epse.ExcludeApproved == true)
{
if (sum.IsApprove != true)
{
yield return res;
}
}
else
yield return res;
}
else
yield return res;
}
}
我正在自定义“批准时间卡摘要”屏幕以执行以下操作:
1.) 在过滤器部分添加一个复选框
2.) 选中此复选框后,不在网格中显示 'Approved' 行。
我添加了一个带有新的未绑定布尔字段的缓存扩展,并将复选框添加到屏幕的过滤器/header 部分。
我想知道的是 - 是否有一个 IEnumerable 方法(我可以使用 'summary' 吗?)可以检查 header 过滤字段并且只产生 return 行通过过滤测试?如果是这样,我不确定这样做的语法是什么。
或者 - 在 Graph 扩展中重写摘要视图 select 语句并添加 where 子句会更好吗?
谢谢...
我知道怎么做了。在 Graph 扩展中,我重写了 'Summary' 视图,然后仅将 IEnumerable 'summary' 委托用于 return 满足我设置的复选框条件的行。即:
public PXSelectJoin<EPSummaryApprove
, LeftJoin<EPEarningType, On<EPEarningType.typeCD, Equal<EPSummaryApprove.earningType>>>
, Where2<Where<EPSummaryApprove.taskApproverID, Equal<Current<EPSummaryFilter.approverID>>, Or<Where<EPSummaryApprove.taskApproverID, IsNull, And<EPSummaryApprove.approverID, Equal<Current<EPSummaryFilter.approverID>>>>>>
, And2<Where<EPSummaryApprove.weekId, GreaterEqual<Current<EPSummaryFilter.fromWeek>>, Or<Current<EPSummaryFilter.fromWeek>, IsNull>>
, And2<Where<EPSummaryApprove.weekId, LessEqual<Current<EPSummaryFilter.tillWeek>>, Or<Current<EPSummaryFilter.tillWeek>, IsNull>>
, And2<Where<EPSummaryApprove.projectID, Equal<Current<EPSummaryFilter.projectID>>, Or<Current<EPSummaryFilter.projectID>, IsNull>>
, And2<Where<EPSummaryApprove.projectTaskID, Equal<Current<EPSummaryFilter.projectTaskID>>, Or<Current<EPSummaryFilter.projectTaskID>, IsNull>>
, And<Where<EPSummaryApprove.employeeID, Equal<Current<EPSummaryFilter.employeeID>>, Or<Current<EPSummaryFilter.employeeID>, IsNull>>
>
>
>
>
>
>
> Summary;
protected IEnumerable summary()
{
var epsf = (EPSummaryFilter)Base.Filter.Cache.Current;
var epse = PXCache<EPSummaryFilter>.GetExtension<EPSummaryFilterExt>(epsf);
foreach(var res in Base.Summary.Select())
{
var sum = (EPSummaryApprove)res;
if (epse != null)
{
if (epse.ExcludeApproved == true)
{
if (sum.IsApprove != true)
{
yield return res;
}
}
else
yield return res;
}
else
yield return res;
}
}