If you need not just to maintain lookup for a refence group but also to validate a manually input value, you need to implement resolveReference method for the field of the form data source. Say, we want to validate a custom financial dimension value.
You can check resolveReference* methods in EcoResCategory table as a good example.
The most interesting detail for me is the way how the related form control value is found inside of the given reference group.
/// <summary> /// Resolve reference /// </summary> /// <param name = "_formReferenceControl"></param> /// <returns></returns> public Common resolveReference(FormReferenceControl _formReferenceControl) { Common ret; ret = myAssignedBankAccountDimension.dimensionResolveReference(_formReferenceControl); return ret; }
public Common dimensionResolveReference(FormReferenceControl _formReferenceControl) { DimensionAttribute dimensionAttribute; DimensionAttributeDirCategory dimAttributeDirCategory; DimensionFinancialTag dimensionFinancialTag; myFinancialDimensionValueFinancialTagView view; myAssignedBankAccountDimension myAssignedBankAccountDimension; DimensionDisplayValue dimensionDisplayValue; if (!_formReferenceControl || _formReferenceControl.handle() != classNum(FormReferenceGroupControl) ) { throw(error(strFmt("@SYS137393", Error::wrongUseOfFunction(funcName())) )); } dimensionDisplayValue = _formReferenceControl.filterValue(AbsoluteFieldBinding::construct(fieldStr(DimensionFinancialTag, Value), tableStr(DimensionFinancialTag))).value(); dimensionDisplayValue = strLRTrim(dimensionDisplayValue); <.. implement your logic with the display value ...>
No comments:
Post a Comment