Dynamics AX 2012视图忽略排序依据

时间:2014-03-28 05:10:47

标签: view axapta x++ dynamics-ax-2012

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

按字母顺序返回记录的前2/3,然后按字母顺序返回最后2/3,但从A开始。

结果看起来像这样:

苹果,香蕉,樱桃,无花果,梨,李,壁球,山药,杏,蓝莓,西葫芦

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

Jan:这是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

2 个答案:

答案 0 :(得分:2)

不知道为什么这是必要的,并且仍然希望了解,但这是我使用的解决方法,将其添加到我的表单的数据源。

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);
}

答案 1 :(得分:1)

View Basics上的MSDN文档指出:

  

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

考虑到在Order By元素中有字段的vanilla视图,这是非常奇怪的。一个例子是AssetInsurance