docs: public int doRecordChange(FieldInfo field, int iChangeType, boolean bDisplayOption)
      { // Read a valid record
          if ((iChangeType == DBConstants.ADD_TYPE)
              || (iChangeType == DBConstants.UPDATE_TYPE))
          {
              BaseField fld = this.getOwner().getField(fieldName);
              boolean bValid = this.checkValidField(fld);
              if (!bValid)
              {
                  String strError = "can't equal";
                  if (m_bValidIfMatch)
                      strError = "must equal";
                  org.jbundle.model.Task task = null;
                  if (this.getOwner().getRecordOwner() != null)
                      task = this.getOwner().getRecordOwner().getTask();
                  if (task != null)
                      strError = ((BaseApplication)task.getApplication()).getResources(ResourceConstants.ERROR_RESOURCE, true).getString(strError);
                  strError = fld.getFieldDesc() + ' ' + strError + ' ' + m_strCompare;
                  if (task != null)
                      return this.getOwner().getRecordOwner().getTask().setLastError(strError);
                  return DBConstants.ERROR_RETURN;
              }
          }
          return super.doRecordChange(field, iChangeType, bDisplayOption);   // Initialize the record
      }