Acumatica - композитный первичный ключ - PullRequest
0 голосов
/ 24 марта 2020

Как создать отдельный селектор для составного первичного ключа ... Как OrderNbr и Revision nbr ... У меня возникла проблема при выборе значения из селектора Order Nbr, он устанавливает значения, если поле revision nbr является значением по умолчанию, иначе Order nbr селектор не может установить значения в поле Revision nbr. как установить оба поля при выборе значения из любого селектора.

1 Ответ

0 голосов
/ 25 марта 2020

Решение состоит в том, чтобы один запрос селектора ссылался на другое ключевое поле.

Пример для заказа клиента, который использует два селектора управления OrderType и OrderNumber:

// User selects the OrderType first
[PXSelector(typeof(Search<SOOrderType.orderType>))]

// OrderNumber Selector reference current OrderType value in selector query
[PXSelector(typeof(Search<SOOrder.orderNbr,
                   Where<SOOrder.orderType, Equal<Current<this.orderType>>>>)]

Вам также необходимо установить свойство AutoRefresh для True, поэтому селектор перезапускает запрос каждый раз, когда открывается диалог селектора. Это гарантирует, что в примере он правильно отфильтрован по типу заказа.

<px:PXSelector ID="edOrderType" runat="server" DataField="OrderType"
               AutoRefresh="True" CommitChanges="True" DataSourceID="ds">

<px:PXSelector ID="edOrderNbr" runat="server" DataField="OrderNbr" 
               AutoRefresh="True" CommitChanges="True" DataSourceID="ds">

Категорически невозможно иметь один диалог выбора, чтобы выбрать запись, для которой требуется более одного поля, чтобы быть уникальным. В этих особых случаях альтернативным решением является добавление другого поля, которое является уникальным, и выбор записи на основе этого поля. Обратите внимание, что для вашего случая предпочтительнее использовать два элемента управления селектором.

Для реализации этого альтернативного решения добавьте столбец типа Identity в базу данных в качестве уникального поля и украсьте соответствующее поле DA C атрибутом PXDBIdentity , Сохраните остальные ключи как есть. Поле идентификатора будет автоматически увеличиваться автоматически и гарантировать уникальность на основе одного поля, которое требуется для правильной работы селектора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...