Ах да, ты прав. Я думаю, что вы можете установить его видимость для видимого, который добавляет его в список доступных столбцов, используя PXUIFieldAttribute.SetVisibility <DAC.Field> (кеш, строка, PXUIVisibility.Visible), и по-прежнему не отображать его в сетке по умолчанию. делать PXUIFieldAttribute.SetVisible <DAC.Field> (кеш, строка, ложь). Просто прочитайте вашу правку, вы все правильно поняли с атрибутом PXUIField, это эквивалентно.

дал ListView для отображения списка документов, затем создал кнопку «Кнопка A» для выполнения некоторых действий, мое требование - я хотел бы, чтобы статус кнопки мог быть изменен с изменениями выбранного документа.

Пример Fox: на следующем рисунке три документа, я хочу, чтобы кнопка была включена, когда я нажимал Order-00001 или Order-00002, и она отключена для Order-00003 из-за отсутствия денег на ней.

Я благодарен, если бы вы могли дать мне подсказку, если будет какое-либо событие, которое будет вызвано, когда я нажму на строку. Большое спасибо.

Ответы на вопрос(1)

Решение Вопроса

место этого есть свойство PXToolbarButton StateColumn для управления состоянием кнопки.

Когда вы объявляете свою кнопку, вы указываете логическое поле DAC, которое будет включать / отключать кнопку в зависимости от ее значения. Обратите внимание, что для кнопки требуется свойство DependOnGrid, установленное на идентификатор сетки, чтобы получить выбранную строку:

<px:PXToolBarButton Text="Button A" DependOnGrid="grid" StateColumn="IsButtonVisible">

IsButtonVisible - это настраиваемое несвязанное логическое поле DAC (вы можете выбрать любое имя, кроме w, кроме isSelected / Selected, которое зарезервировано для флажка):

#region IsButtonVisible
public abstract class isButtonVisible : IBqlField
{
}

protected bool? _IsButtonVisible;
[PXBool]
[PXUIField(DisplayName = "Is Button Visible", Enabled = false, Visible = false)] 
public virtual bool? IsButtonVisible
{
    get
    {
        return _IsButtonVisible;
    }
    set
    {
        _IsButtonVisible = value;
    }
}
#endregion

Вы можете установить значение IsButtonVisible в событии RowSelected на основе вашей бизнес-логики:

protected virtual void DAC_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
{
    DAC row = e.Row as DAC;

    if (row != null)
    {
        bool yourCondition = ???;
        row.IsButtonVisible = yourCondition;
    }
}

Источник:Включить кнопку отключения сетки или PXToolBarButton, которая зависит от значения столбца в Acumatica

 ukalpa18 дек. 2017 г., 23:41
Привет @HB_ACUMATICA, Большое спасибо за быстрый ответ !!!
 HB_ACUMATICA19 дек. 2017 г., 21:06
Ах да, ты прав. Я думаю, что вы можете установить его видимость для видимого, который добавляет его в список доступных столбцов, используя PXUIFieldAttribute.SetVisibility <DAC.Field> (кеш, строка, PXUIVisibility.Visible), и по-прежнему не отображать его в сетке по умолчанию. делать PXUIFieldAttribute.SetVisible <DAC.Field> (кеш, строка, ложь). Просто прочитайте вашу правку, вы все правильно поняли с атрибутом PXUIField, это эквивалентно.
 HB_ACUMATICA19 дек. 2017 г., 15:39
Можете ли вы опубликовать свой код или сравнить его со ссылкой на источник внизу моего ответа? Когда это не идеально настроено, оно молча терпит неудачу и ничего не делает.
 ukalpa19 дек. 2017 г., 03:20
Привет @HB_ACUMATICA, я попробовал ваше решение, и кажется, что оно не работает. Кнопка остается включенной независимо от того, что я установил для столбца состояния, верно или нет, какие-либо дальнейшие предложения?
 ukalpa19 дек. 2017 г., 03:43
Привет @HB_ACUMATICA, можешь ли ты подтвердить, правильно ли присваивать значение IsButtonVisible в RowSelected? Я предполагаю, что проблема здесь.

Ваш ответ на вопрос