2

使用 Navision 网络服务,您如何按日期过滤。

即在SalesHeader 表中有一个“ExportedDate”。我想查找未设置 ExportedDate 或在特定日期导出的所有 SalesHeaders。

似乎每当我们在日期字段上设置过滤器时,Web 服务要么返回所有行,要么不返回任何行。

4

2 回答 2

7

这是可以做到的。您必须使用与在 Nav Client 中使用的过滤器表达式相同的过滤器表达式:

01012011..         would be all dates from 01.01.2011
..01012011         would be all dates to 01.01.2011
01012011..03012011 gets all dates between 01. and 03.
于 2011-02-17T13:54:09.687 回答
1

在 NAV 中将第 42 页(销售订单)作为 Web 服务发布后,我在 Visual Studio 项目中添加了对新创建的 Web 服务的 Web 引用。在 C# 代码中,我创建了一个新的服务实例,并告诉它使用默认凭据:

SalesOrders_Service salesOrdersService = new SalesOrders_Service();
salesOrdersService.UseDefaultCredentials = true;

然后我实例化一个过滤器,并设置字段和条件:

SalesOrders_Filter filter = new SalesOrders_Filter();
filter.Field = SalesOrders_Fields.Document_Date;
filter.Criteria = "01-31-14|''"; // specific date (MM-dd-yy) or empty

然后将过滤器实例添加到新的 SalesOrders_Filters 数组中,然后将后者传递给 ReadMultiple:

SalesOrders[] salesOrders = salesOrdersService.ReadMultiple(new SalesOrders_Filter[] { filter }, null, 0);

在我的机器上,这将返回两个文档日期为 2014 年 1 月 31 日的订单,以及一个文档日期为空白的订单。

于 2012-12-11T09:17:36.387 回答