这个问题通常是由于在Acumatica中使用PXSelectJoin和PXSelectLeftJoin时设置不当而引起的。如果在关联的记录集中使用PXSelectJoin或PXSelectLeftJoin语句时,需要确保使用完整的关键字列表来定义SELECT语句。以下是一个使用PXSelectJoin的示例代码:
public class MyGraph : PXGraph
{
public PXSelectJoin>>> MyView;
//...
}
在这个例子中,使用了LeftJoin语句来创建MYTABLE和MYRELATEDTABLE之间的关联,同时使用了ON语句来指定JOIN条件。需要注意的是, MyTable和MyRelatedTable之间的联接字段必须在查询中指定,以便显示所有相关记录。
如果PXForeignSelector属性中需要使用自定义的查询,可以使用SetRelationXXX方法来设置记录集,如下所示:
//定义示例MyView视图
public PXSelect MyView;
//设置自定义查询
PXResultset relatedRows = PXSelectJoin>>>.Select(this);
//将查询结果传递给MyView
MyView.SetRelation(typeof(MyTable.myTableID), typeof(MyRelatedTable.myTableID), relatedRows);
以上代码将从MyRelatedTable中选择相关记录,并在MyView属性中设置它们。注意,在SetRelation方法中,需要使用正确的关键字从MyTable和MyRelatedTable中选择记录。
通过这些方法和技巧,可以确保Acumatica Cases附加网格可以正确显示所有相关数据行。