Acumatica - NonStockItem Экран на AlloAddNew на странице - PullRequest
0 голосов
/ 28 января 2019

Добрый день!

У меня есть поле PXSelector в ЦАП, в котором отображаются только нестандартные товары

    public abstract class inventoryID : IBqlField { }

    [PXDBInt]
    [PXSelector(typeof(Search2<InventoryItem.inventoryID,
                                LeftJoin<RECOInventoryItem, On<RECOInventoryItem.inventoryID, Equal<InventoryItem.inventoryID>>>,
                                Where<RECOInventoryItem.inventoryID, IsNull,
                                    And<InventoryItem.itemType, Equal<ItemType.NON_STOCK>,
                                        And<InventoryItem.stkItem, Equal<False>>>>>),
                          typeof(InventoryItem.inventoryCD),
                          typeof(InventoryItem.descr),
                          DescriptionField = typeof(InventoryItem.descr))]
    [PXUIField(DisplayName = "Inventory")]
    [PXDefault(PersistingCheck = PXPersistingCheck.Nothing)]
    public virtual int? InventoryID { get; set; }

У меня также есть селектор, который позволяет редактировать и позволяет добавлять новыеметоды

        <px:PXSelector ID="edInventoryID" runat="server" DataField="InventoryID" AllowEdit="true" AllowAddNew="true">
        </px:PXSelector>

Теперь моя проблема заключается в кнопке редактирования (карандаш) в пользовательском интерфейсе.Когда я нажимаю кнопку редактирования с элементом, который я хочу редактировать, меня перенаправляют на страницу «Нет на складе»,

Но когда я хочу добавить еще один элемент, не имеющий запаса, с помощью редактирования(карандаш), я перенаправлен на страницу Stock Items.

Я уже установил свой PrimaryGraph.

[PXPrimaryGraph(typeof(PropertyMaint))]
public class RECOInventoryItem : Audit, IBqlTable

Как установить перенаправление AllowAddNew на страницу товара без запаса вместоСтраница элемента товара.

Как переопределить PxPrimaryGraph объекта InventoryItem, чтобы граф, на который я перенаправлял, представлял собой элемент со склада, а не элемент со склада.

Спасибомного за советы и предложения.

1 Ответ

0 голосов
/ 30 января 2019

PXPrimaryGraph может обрабатывать привязку 1 DAC к нескольким графам, используя условия BQL для полей DAC, как показано в DAC InventoryItem:

[PXPrimaryGraph(new Type[] 
                {
                   typeof(NonStockItemMaint),
                   typeof(InventoryItemMaint)
                },
                new Type[] 
                {
                   typeof(Where<InventoryItem.stkItem, Equal<False>>),
                   typeof(Where<InventoryItem.stkItem, Equal<True>>)
                })] 

Это хорошо работает с функциональностью AllowEdit, поскольку поле InventoryItem.stkItemиспользуемый для перенаправления графа уже заполняется в записи, которую вы хотите редактировать.

Когда вы создаете новую запись с AllowAddNew, хотя я подозреваю, что поле InventoryItem.stkItem будет нулевым или всегда будет иметь значение по умолчанию, равное атрибуту PXDefault.Это может иметь побочный эффект - всегда перенаправлять на один и тот же график.

Как вы, вероятно, можете догадаться, AllowAddNew не имеет никаких опций или программного интерфейса для влияния на его поведение, поэтому он довольно ограничен в том, что он можетделать.По этой причине я не думаю, что вы можете изменить это поведение.

Это оставит создание вашей собственной кнопки действия как единственный вариант, который я знаю для достижения вашего варианта использования.Вы можете настроить стиль кнопки так, чтобы она отображала значок +, а текст отсутствовал, как в AllowAddNew.Вы все равно будете ограничены в том, где вы можете разместить эту кнопку, потому что во всплывающих окнах Selector также отсутствуют опции и программный интерфейс.

...