使用Navision网络服务,如何按日期过滤。
即。在SalesHeader表中有一个“ExportedDate”。我想找到所有没有设置ExportedDate或在特定日期导出的SalesHeaders。
似乎每当我们在日期字段上设置过滤器时,webservice将返回所有行或没有行。
答案 0 :(得分: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.
答案 1 :(得分: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日的订单,以及一份文件日期为空白的订单。