如何设置用户定义的字段?

时间:2019-03-21 15:48:03

标签: acumatica

我已将用户定义的复选框UsrContractCustomer添加到CRCase。我的第一步是尝试在用户选择企业帐户(CustomerID)时设置复选框。

Contract Customer Checkbox

这是我最近一次设置此复选框的尝试。

  protected void CRCase_CustomerID_FieldUpdated(PXCache cache, PXFieldUpdatedEventArgs e)
  {
    var row = (CRCase)e.Row;
    if (row.CustomerID != null)
    {
      //CRCaseExt rowExt = PXCache<CRCase>.GetExtension<CRCaseExt>(row);
      CRCaseExt rowExt = row.GetExtension<CRCaseExt>();
      rowExt.UsrContractCustomer = true;
    }
  }

2 个答案:

答案 0 :(得分:0)

在dac扩展名的字段中,您应该可以使用公式来设置值。输入或删除客户时,这将选中或取消选中您的字段。有了逻辑就可以消除编写图形级更改(例如事件)的需要。

[PXFormula(typeof(IIf<Where<CRCase.customerID, IsNull>, False, True>))]

如果要使用事件,请尝试缓存设置值,例如:

cache.SetValueExt<CRCaseExt.usrContractCustomer>(e.Row, row.CustomerID != null);

答案 1 :(得分:0)

布伦丹的解决方案是正确的。在另一篇文章中,我检索了要用于设置用户定义字段的值。 “ false”已替换为设置复选框字段的条件。

sender.SetValueExt<CRCaseExt.usrContractCustomer>(crcase, false);

感谢您的帮助和支持。