我已将用户定义的复选框UsrContractCustomer添加到CRCase。我的第一步是尝试在用户选择企业帐户(CustomerID)时设置复选框。
这是我最近一次设置此复选框的尝试。
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;
}
}
答案 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);
感谢您的帮助和支持。