View Dynamics AX 2012视图按忽略订单

View Dynamics AX 2012视图按忽略订单,view,axapta,x++,dynamics-ax-2012,View,Axapta,X++,Dynamics Ax 2012,我对AX 2012有一个非常简单的看法。它有一个数据源,只返回该表中的一行。视图在返回的同一字段上指定了Order By DESC。没有GROUPBY子句 它按字母顺序返回大约前2/3个记录,然后按字母顺序返回最后2/3个记录,但从A开始 结果如下所示: 苹果、香蕉、樱桃、无花果、梨、李子、南瓜、山药、杏子、蓝莓、西葫芦 已尝试同步、编译、CIL编译。尝试转储数据源并重新开始。几乎没有想法了 简:这是SQL的视图。看起来即使在我同步之后,ORDER BY也被忽略了 USE [MicrosoftD

我对AX 2012有一个非常简单的看法。它有一个数据源,只返回该表中的一行。视图在返回的同一字段上指定了Order By DESC。没有GROUPBY子句

它按字母顺序返回大约前2/3个记录,然后按字母顺序返回最后2/3个记录,但从A开始

结果如下所示:

苹果、香蕉、樱桃、无花果、梨、李子、南瓜、山药、杏子、蓝莓、西葫芦

已尝试同步、编译、CIL编译。尝试转储数据源并重新开始。几乎没有想法了

简:这是SQL的视图。看起来即使在我同步之后,ORDER BY也被忽略了

USE [MicrosoftDynamicsAX]
GO
/****** Object:  View [dbo].[MENUSVIEW]    Script Date: 03/28/2014 09:57:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[MENUSVIEW] AS SELECT T1.TRANSACTIONNAME AS TRANSACTIONNAME,T1.PARTITION AS PARTITION,T1.RECID AS RECID FROM TRANSACTIONS T1
GO

不知道为什么这是必要的,我仍然想理解,但这里是我使用的解决方法,将它添加到表单的数据源中

public void init()
{
    super();
    //manually sort the view, because the built in sort does not work
    ScanWorkX_MenusPickerView_ds.query().dataSourceNo(1).sortClear();
    ScanWorkX_MenusPickerView_ds.query().dataSourceNo(1).addSortField(fieldNum(MenusView,
        TransactionName), SortOrder::Ascending);
}
MSDN文档对此进行了说明:

不要在Order By元素中指定字段。视图不能使用Order By元素中的字段信息


这是非常奇怪的,因为有一些普通视图的字段是按元素排序的。例如,
AssetInsurance

如果直接查询表,即没有视图,会发生什么?您能否共享您的AX视图或生成的SQL视图定义?FH:如果直接查询表,请按事务顺序依次从事务中选择*TransactionName所有内容都按正确的顺序显示。