2016-01-15 34 views
0

我需要一些帮助。 我有一张表A(主)和一张表B(孩子)。 我正在使用DevExpress XAF。 我需要评估儿童在最后一排,并将其显示在主表A.用户devexpress从子列表中的最后一行获取字段

比方说表,A具有followind领域: 的OID, 员工, 地址 [名] =持续申请员工

比方说表B具有以下字段: 的Oid, 员工(参考文献的tbale A), 状态(打开,分配,闭合), 状态日期

子表具有至少2的录音功DS为每个主记录: Oid的员工状态状态日期 1马克打开2015年12月12日 2马克分配二○一五年十二月一十三日 3标记关闭2015年12月29日

到目前为止,我用这个:

[PersistentAlias("TableB[Status != 'Closed']")] 
public GetStatus 
{ 
    get 
     {return EvaluateAlias(GetStatus)}; 
} 

我想在主表A中为每个员工显示子列表的最后一个状态。 当我运行这段代码时,我得到Open,因为它与Closed不同,但我想要的是如果表B中的最后一行是Status = Closed,则应该返回Closed。 不知道我是否解释了正确! 任何想法? 谢谢

回答

0

您应该使用聚合函数来选取集合的最后一个元素,例如max和single函数。

[PersistentAlias("TableB.Max(Date)")] 
public DateTime? GetLastActionDate 
{ 
    get 
     {return (DateTime?)EvaluateAlias(GetLastActionDate)}; 
} 

[PersistentAlias("TableB[Date == GetLastActionDate].Single()")] 
public TableB GetStatus 
{ 
    get 
     {return (TableB)EvaluateAlias(GetStatus)}; 
} 
相关问题