根据特定条件动态更改字段DisplayName

时间:2017-11-08 14:02:15

标签: acumatica

我知道在BLC的构造函数中,我们可以通过静态方法

更改displayname
  

PXUIFieldAttribute.SetDisplayName<>

PXUIFieldAttribute.SetDisplayName<FIELD>(sender, "NEW VALUE");

我尝试更改我的文档标题记录的行选择事件。但它似乎没有用。是否可以在某个rowseleted事件中或初始化后更改此值?

1 个答案:

答案 0 :(得分:2)

要在运行时更改表单上的字段显示名称,您可以:

- 向DAC添加新的未绑定字段。(以readonly方式)

  [PXString(60, IsUnicode = true)]
  [PXUIField(Enabled = false, IsReadOnly = true)]
  public virtual string UsrReadOnlyAcctName{get;set;}
  public abstract class usrReadOnlyAcctName : IBqlField{}

- 根据使用处理程序的条件修改其值。(示例:选择客户声明周期ID)

 public class CustomerMaint_Extension:PXGraphExtension<CustomerMaint>
  {

      protected void Customer_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
      {
          var customer = (BAccount)e.Row;
          var customerExt = customer.GetExtension<BAccountExt>();
          if (customerExt != null)
          {
              customerExt.UsrReadOnlyAcctName = customer.AcctName;
          }
      }

  }

-SuppressLabel(true)表示新的未绑定字段和标签将被替换的现有字段。

enter image description here

-Locate /将添加的Unbound字段放在现有字段之前。

对于Details或PXGrid,只需确保将 RepaitColumns 属性设置为 PXGrid Control的True。

对于详情,我们已回答了类似的问题:Changing column name dynamically