Как отключить кнопку «Обновить» на «Карте сотрудника» (EP406000) - PullRequest
0 голосов
/ 23 октября 2018

Мне удалось отключить кнопки вставки и удаления на экране «Таймкарты сотрудников» (EP406000), но кнопка обновления, похоже, не волнует.Вот мой код:

    protected void TimecardFilter_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
    {
        Base.create.SetEnabled(false);
        Base.update.SetEnabled(false);
        Base.delete.SetEnabled(false);
    }

Он работает для вставки и удаления - но не для обновления.В исходном коде я заметил, что код кнопки обновления немного отличается тем, что он не имеет атрибута [PXUIField], как и некоторые другие.Кнопки вставки и удаления имеют аналогичные настройки и атрибуты, но обновление определенно отличается.Не уверен, что именно поэтому.

Итог: как отключить кнопку обновления на экране «Таймкарта сотрудника» (EP406000)?

1 Ответ

0 голосов
/ 23 октября 2018

Диагностическое сообщение о том, что в действии «Обновление» отсутствует атрибут PXUIField, находится на месте.

Для некоторых функций свойств кнопок требуется наличие атрибута PXUIField .: enter image description here

Вы можете переопределить действие Обновить, чтобы добавить атрибут PXUIField:

using PX.Data;

namespace PX.Objects.EP
{
    public class TimecardPrimary_Extension : PXGraphExtension<TimecardPrimary>
    {
        public PXAction<TimecardPrimary.TimecardFilter> update;

        [PXButton(Tooltip = Messages.EditTimecardToolTip, ImageKey = PX.Web.UI.Sprite.Main.RecordEdit)]
        [PXUIField]
        protected virtual void Update()
        {
            EPTimeCard row = PXSelect<EPTimeCard, Where<EPTimeCard.timeCardCD, Equal<Current<TimecardWithTotals.timeCardCD>>>>.Select(Base);
            if (row == null) return;

            PXRedirectHelper.TryRedirect(Base, row, PXRedirectHelper.WindowMode.InlineWindow);
        }

        protected void TimecardFilter_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {
            Base.create.SetEnabled(false);
            Base.update.SetEnabled(false);
            Base.delete.SetEnabled(false);
        }
    }
}

Добавление атрибута PXUIField заставит метод SetEnabled работать: enter image description here

Если вы удвоите-нажмите запись сетки, она вызовет действие сетки по умолчанию (обновление в этом случае).При двойном щелчке записи он уведомляет пользователя о том, что действие отключено: enter image description here

Чтобы предотвратить запуск отключенного действия по умолчанию, вы можете настроить панель действий сетки для удалениядействие по умолчанию: enter image description here

...