Axapta 限制用户为玩家添加5个以上的属性
我有表格(字段:playerId,skill) 所以我的问题是:如何使用户不能添加超过5个相同的playerId? 表中要重写的方法以及要执行的操作?Axapta 限制用户为玩家添加5个以上的属性,axapta,x++,dynamics-ax-2012,Axapta,X++,Dynamics Ax 2012,我有表格(字段:playerId,skill) 所以我的问题是:如何使用户不能添加超过5个相同的playerId? 表中要重写的方法以及要执行的操作? Tanks…您可以创建一个新的整数字段AttributeNum。根据需要,可以覆盖表上的insert()或initValue()。如果希望在此表上快速执行基于集合的操作,请选择initValue()而不是insert() 在重写的方法中,可以使用query来聚合和计算每个当前记录的属性数 编辑: 或者,您也可以覆盖表上的validateWri
Tanks…您可以创建一个新的整数字段AttributeNum。根据需要,可以覆盖表上的insert()或initValue()。如果希望在此表上快速执行基于集合的操作,请选择initValue()而不是insert() 在重写的方法中,可以使用query来聚合和计算每个当前记录的属性数 编辑: 或者,您也可以覆盖表上的
validateWrite()
方法
boolean validateWrite()
{
TableA tableA;
boolean ret = super();
#define.MaxAttributes(5) // consider using setup
if (ret && !this.RecId)
{
select count(RecId) from tableA where tableA.PlayerId == this.PlayerId;
if (tableA.RecId >= #MaxAttributes)
{
ret = checkFailed("Error message goes here");
}
}
return ret;
}
你没有指定每个玩家的属性是否应该是唯一的,但是你也应该考虑创建合适的索引来执行数据完整性。 您可以在此处找到更多信息:
谢谢,但你能给我举个代码示例吗?因为我是SQL和AX方面的新手:)添加了代码。这只是一个想法,只有你能使它在你的需求的上下文中工作:)还要记住,我没有编译代码,所以请对此持保留态度。