code: public void doNewRecord(boolean bDisplayOption)
      {
          super.doNewRecord(bDisplayOption);
          if (m_bMoveOnNew)
          {
          	boolean bOldModified = false;
              if (m_fldDest != null)
              	bOldModified = m_fldDest.isModified();
              int iMoveType = DBConstants.INIT_MOVE;  // Typically, Don't trigger a record change.
              if (m_bMoveOnValid)
                  if (m_fldDest != null)
                      if (m_fldDest instanceof ReferenceField)
                          if (((ReferenceField)m_fldDest).getReferenceRecord() != null)
                          	if (((ReferenceField)m_fldDest).getReferenceRecord().getCounterField() == m_fldSource)
                          		if ((m_fldDest.getRecord().getEditMode() == DBConstants.EDIT_IN_PROGRESS) || (m_fldDest.getRecord().getEditMode() == DBConstants.EDIT_CURRENT))
                          			iMoveType = DBConstants.SCREEN_MOVE;   // Special case - clearing a secondary field = YES - modified
              this.moveTheData(bDisplayOption, iMoveType);
              if (iMoveType == DBConstants.INIT_MOVE)
                  if (m_fldDest != null)
                      if (bOldModified == false)
                          m_fldDest.setModified(false);
          }
      }
docs: Called when a new blank record is required for the table/query.
  @param bDisplayOption If true, display any changes.