Axapta 使用超级方法
我想在Dynamics AX2012中使用super()方法编程 我构建了一个类(“a”)和其中的一些方法。我构建了另一个类(“B”),它从以前的类扩展而来。Axapta 使用超级方法,axapta,dynamics-ax-2012,x++,Axapta,Dynamics Ax 2012,X++,我想在Dynamics AX2012中使用super()方法编程 我构建了一个类(“a”)和其中的一些方法。我构建了另一个类(“B”),它从以前的类扩展而来。 我的A班有一些方法。 现在在类“B”中,我想重写一个方法。我会这样做。 我将重写getTable()方法 现在我的问题是 我已经了解到,使用super()这个新方法确实带走了它的一切,从它在motherclass“A”中扩展的方法 但是我如何才能向方法添加更多的内容,以便它提供以前方法中的内容以及我在重写方法中添加的内容?查看getTab
我的A班有一些方法。 现在在类“B”中,我想重写一个方法。我会这样做。 我将重写getTable()方法 现在我的问题是 我已经了解到,使用super()这个新方法确实带走了它的一切,从它在motherclass“A”中扩展的方法
但是我如何才能向方法添加更多的内容,以便它提供以前方法中的内容以及我在重写方法中添加的内容?查看getTable()的实现,您可能希望使用super()返回的另一个SYCCarBrandTable的值来选择一些SYCCarBrandTable记录as标准+其他新添加的标准 我不知道为什么要这样做,但如果对同一个表变量执行select语句,实际上就是覆盖所有行为,而不是添加任何内容 如果我答对了,您可能需要使用另一个SYCCarBrandTable:
protected SYCCarBrandTable getTable()
{
SYCCarBrandTable superCar;
SYCCarBrandTable ret;
superCar = super();
select brandid,branddescription from ret
where ret.CriteriaA = superCar.CriteriaA
&& ret.brandid == "Bentley";
return ret;
}
再说一遍,我不确定这样一个东西为什么会有用,但这是聚合功能而不是完全覆盖功能的一种示例方法 查看getTable()的实现,您可能希望使用super()返回的另一个SYCCarBrandTable的值作为条件+其他新添加的条件来选择一些SYCCarBrandTable记录 我不知道为什么要这样做,但如果对同一个表变量执行select语句,实际上就是覆盖所有行为,而不是添加任何内容 如果我答对了,您可能需要使用另一个SYCCarBrandTable:
protected SYCCarBrandTable getTable()
{
SYCCarBrandTable superCar;
SYCCarBrandTable ret;
superCar = super();
select brandid,branddescription from ret
where ret.CriteriaA = superCar.CriteriaA
&& ret.brandid == "Bentley";
return ret;
}
再说一遍,我不确定这样一个东西为什么会有用,但这是聚合功能而不是完全覆盖功能的一种示例方法 如果要向select添加其他标准,应使用查询对象并设计select。然后,您应该在基类上创建一个名为modifierQuery()或setQueryRange()的新方法。在这个方法中,您可以根据需要为基类向查询添加范围。当您在类“B”中重写此方法时,可以调用super,然后添加额外的范围,或者只重写不带super()的方法,然后根据需要设置范围。在基类上的getTable方法中,调用modifierQuery()并执行它 如果要向select添加其他标准,应使用查询对象并设计select。然后,您应该在基类上创建一个名为modifierQuery()或setQueryRange()的新方法。在这个方法中,您可以根据需要为基类向查询添加范围。当您在类“B”中重写此方法时,可以调用super,然后添加额外的范围,或者只重写不带super()的方法,然后根据需要设置范围。在基类上的getTable方法中,调用modifierQuery()并执行它 你能显示A.getTable的内容吗?你能显示A.getTable的内容吗?