Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Join 网格中的显示方法在所有行中显示相同的文本_Join_Axapta_Sqldatasource_Dynamics Ax 2009 - Fatal编程技术网

Join 网格中的显示方法在所有行中显示相同的文本

Join 网格中的显示方法在所有行中显示相同的文本,join,axapta,sqldatasource,dynamics-ax-2009,Join,Axapta,Sqldatasource,Dynamics Ax 2009,我在表格上有一个非常简单的显示方法来显示给定日期的工作日: display DateDayName day() { WeekDays weekday; ; weekday = dayofwk(this.TransDate); return enum2str(weekday); } 但由于某些原因,当我在特定表单的网格上使用此方法时,显示的文本将使用网格中所有行的第一条记录,并且当选择新行时,所选行将使用正确的文本进行更新,而先前选择的记录将使用新选择的记

我在表格上有一个非常简单的显示方法来显示给定日期的工作日:

display DateDayName day()
{
    WeekDays    weekday;
    ;
    weekday = dayofwk(this.TransDate);

    return enum2str(weekday);
}
但由于某些原因,当我在特定表单的网格上使用此方法时,显示的文本将使用网格中所有行的第一条记录,并且当选择新行时,所选行将使用正确的文本进行更新,而先前选择的记录将使用新选择的记录的值进行更新


可以看到,该数据源链接到另一个数据源,但看起来它已正确设置。我尝试过数据源和链接类型的各种设置,但都没有帮助或改变任何东西

我只是在发布后立即找到了答案。我正要尝试将display方法更改为位于forms数据源上,而不是位于表上,这时我发现它已经存在,并且具有相同的名称。这可能导致axapta在选择读取哪个方法时出现问题,因为如果未指定数据源,它是查找显示方法的默认位置。我只是在数据源上更改了方法的名称,一切都很好。

当在表单上放置一个display方法时,您会得到这个结果。对于显示方法,它们应该放在表本身上,并且通常应该是根据最佳实践放置此类代码的第一个位置

我认为,它为每个记录显示相同的值的原因是,正在呈现的记录不是该方法用于查找值的记录,而是第一个当前选定的记录。此外,您会看到,如果您更改了所选记录,该值似乎会意外地“更改”。在本例中,当您选择一条新记录时,该方法将以该新记录作为数据源再次运行,并且AX将结果值放入先前选择的记录和新选择的记录中(如果我记得正确的话)


考虑这一点最简单的方法是,表单将具有一定大小的表缓冲区(通常为2+),因此它可以同时显示多个记录的所有信息。但是,调用缓冲区的显示方法一次只能引用一条记录,因此我们需要确定该记录是哪条记录。在表单上,确定传递哪个记录的最直观的方法是当前选定的记录。

感谢您的输入。我选择了自己的答案,因为它解决了实际问题,基本上是我不知道其他人在表单上放置了显示方法。不过,你确实提供了一些好的、有价值的信息。