Microsoft Dynamics Nav ReadMultiple сортировка записей по конкретному столбцу
Я использую функцию ReadMultiple для извлечения отфильтрованных данных из службы Navision, как показано ниже.
var customers = postedInvService.ReadMultiple(filtercustomers.ToArray(), CustomerParams.bookmarkKey, -10);
Это отлично работает. Но мое требование - сначала отсортировать по определенному столбцу и получить записи. Как дать конкретный столбец для сортировки записей?
1 ответ
Есть три разных подхода к решению этой проблемы.
С помощью веб-службы SOAP и
setSize = 0
Вы получаете весь набор результатов. Вы можете отсортировать результат с помощью LINQ. Напримерvar result = from serviceInvoice in postedInvService.ReadMultiple(filtercustomers.ToArray(), null, 0) orderby serviceInvoice.No select serviceInvoice;
В среде разработки Dynamics NAV также можно создать новую страницу с полями и сортировкой (свойство SourceTableView), как это должно быть.
Начиная с Dynamics NAV 2013, страницы также можно получить из веб-службы OData, которая поддерживает сортировку и фильтрацию на стороне сервера. Например
http://localhost:7048/DynamicsNAV90/OData/Company('CRONUS%20International%20Ltd.')/postedInvService?$orderby=PostingDate