gpt4 book ai didi

acumatica - 隐藏/禁用基于输入字段的其他字段

转载 作者:行者123 更新时间:2023-12-04 14:25:56 30 4
gpt4 key购买 nike

我想根据另一个字段的条件在 UI 上隐藏或更新一个字段。

例如,如果我有一个名为 Color 的字段:

[PXUIField(DisplayName="Color")]
[PXStringList("Red,Blue,Other")]
[PXDefault("Red")]

评论的文本字段仅在选择“其他”时显示,这是如何实现的?

最佳答案

请求的行为可以通过一系列事件处理程序或一组属性来完成。您可以在 T200 培训类(class)中找到有关如何订阅 RowSelected 和 FieldUpdated 事件的几个示例,网址为 Acumatica University。和 Acumatica Open University

对于您的特定场景,使用字段属性是一种更方便、更简单的选择。我建议将下拉菜单的 CommitChanges 设置为 True,这样 Comments 字段会在用户更新 Color 后立即被清除和禁用/启用.此外,在 Comments 之后声明 Color 非常重要,因此框架将首先处理 Comments 字段,并始终在 Color 字段更新后清除当前的 Comments 值。

public class Other : Constant<string>
{
public Other() : base("Other") { }
}
public abstract class comments : IBqlField { }
[PXDBString(255, IsUnicode = true)]
[PXUIField(DisplayName = "Comments")]
[PXUIEnabled(typeof(Where<color, Equal<Other>>))]
[PXFormula(typeof(Default<color>))]
[PXDefault(PersistingCheck = PXPersistingCheck.Nothing)]
public string Comments { get; set; }

public abstract class color : IBqlField { }
[PXDBString(10, IsUnicode = true)]
[PXUIField(DisplayName = "Color")]
[PXStringList("Red,Blue,Other")]
[PXDefault("Red")]
public string Color { get; set; }

在表单上有条件地隐藏/显示编辑器的唯一方法是通过 RowSelected 事件处理程序:

public void YourDAC_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
{
YourDAC row = e.Row as YourDAC;
if (row == null) return;

PXUIFieldAttribute.SetVisible<YourDAC.comments>(sender, row, row.Color == "Other");
}

我相信,在 T200 培训类(class)中,有几个关于 PXUIFieldAttribute.SetVisible 方法的示例。

关于acumatica - 隐藏/禁用基于输入字段的其他字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44379202/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com