У меня есть собственный график, в данном случае MyGraph. Страница содержит вкладку формы, аналогичную странице товаров на складе, в которой заголовок представляет собой несколько полей моего DAC (MyDAC) и форму на ...

1
Brian Stevens 2 Мар 2021 в 21:47

1 ответ

Лучший ответ

Я недавно столкнулся с этой проблемой. Легко заставить страницу отправлять обратно на сервер при открытии интеллектуальной панели вне действия, но если панель не открывается, как вы принудительно публикуете данные, которые были изменены в полях, которые не фиксируются при обновлении? Я нашел единственный способ добиться этого - отредактировать ASPX и добавить StartNewGroup = "true" и CommitChanges = "true" в PXDSCallbackCommand для папки действий, в которую добавлено действие.

<px:PXDataSource ID="ds" runat="server" Visible="True" Width="100%"
    TypeName="MyGraph"
    PrimaryView="MyView">
    <CallbackCommands>
        <px:PXDSCallbackCommand CommitChanges="True" Name="ActionFolder" StartNewGroup="True" />
    </CallbackCommands>
</px:PXDataSource>

Для действия следует использовать второй способ.

public PXAction<MyDAC> convertIt;
[PXUIField(DisplayName = "My DAC Label", MapEnableRights = PXCacheRights.Update, MapViewRights = PXCacheRights.Select)]
[PXButton(CommitChanges = true)]
public virtual IEnumerable ConvertIt(PXAdapter adapter)
{
    MyDAC myDAC = MyView.Current;
    MyDAC myDAC2 = MyCurrentView.Current;

    **DO THE WORK OF THE ACTION HERE **
        
    return adapter.Get();
}

public MyGraph()
{
    actionFolder.AddMenuAction(convertIt);
}

1
Parmisean 5 Мар 2021 в 17:02