Сортировка представления данных Acumatica по строковому полю, но с использованием двоичного сопоставления - PullRequest
0 голосов
/ 19 июня 2020

Я переопределил представление данных APPrintChecks для сортировки по коду поставщика. Но поскольку все VendorCodes клиента - это numeri c, они хотели бы, чтобы чеки были отсортированы так, чтобы, например, VendorCode '357' печатался перед VendorCode '10021'. Есть идеи, как я могу sh это сделать?

public class APPrintChecks_Extension : PXGraphExtension<APPrintChecks>
    {
//change sort from Vendor Name to Vendor Code    
        [PXFilterable]
        public PXFilteredProcessingJoin<APPayment, PrintChecksFilter,
          InnerJoin<Vendor, On<Vendor.bAccountID, Equal<APPayment.vendorID>>>,
          Where<boolTrue, Equal<boolTrue>>,
          OrderBy<Asc<Vendor.acctCD, Asc<APPayment.refNbr>>>> APPaymentList;
    }

1 Ответ

0 голосов
/ 20 июня 2020

Согласно предложению в комментариях, я бы сначала проверил, есть ли еще одно числовое поле / поле даты, по которому вы можете сортировать, например BAccountId или CreatedDate. Если этого не произойдет, вам нужно будет найти более творческий способ исправить это, например:

  • Изменение последовательности нумерации кода поставщика, чтобы включить начальные нули, например: 0000357, 001021
  • Добавление настраиваемого поля (которое хранится в базе данных) и установка этого настраиваемого поля на графике так, чтобы оно включало ведущие нули. Пример добавления поля UsrVendorCode типа string, в которое вы добавляете ведущие нули в событии (графика поставщика), таком как RowPersisting.
  • Добавление вычисляемого поля базы данных для добавления ведущих нулей и добавление его в качестве настраиваемого поля (расширение of Vendor) в Acumatica (не уверен, полностью ли это поддерживается Acumatica, поскольку для этого требуются изменения в БД)
...