我已将用户定义的复选框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;
}
}
在您的dac扩展中的字段上,您应该能够使用公式来设置值。这将在输入或删除客户时检查或取消选中您的字段。在场上使用逻辑也消除了编写图形级别更改(例如事件)的需要。
[PXFormula(typeof(IIf<Where<CRCase.customerID, IsNull>, False, True>))]
如果您想要使用该事件,我会尝试缓存设置值,例如:
cache.SetValueExt<CRCaseExt.usrContractCustomer>(e.Row, row.CustomerID != null);
布兰登的解决方案是正确的。在另一篇文章中,我检索了我想用来设置用户定义字段的值。 'false'被替换为设置复选框字段的条件。
sender.SetValueExt<CRCaseExt.usrContractCustomer>(crcase, false);
感谢您的帮助和支持。