docs: public void restoreMainRecord(Record recAlt, Record recMain, boolean altMatchesToNull)
      {
          if (m_buffer != null)
              m_buffer.resetPosition();
          boolean bFieldsInSync = true;
          for (int iIndex = 0; iIndex < recAlt.getFieldCount(); iIndex++)
          {
              BaseField fieldAlt = recAlt.getField(iIndex);
              BaseField fieldMain = null;
              if (bFieldsInSync)
                  fieldMain = recMain.getField(iIndex);
              if ((fieldMain == null) || (!fieldMain.getFieldName().equals(fieldAlt.getFieldName())))
              {
                  fieldMain = recMain.getField(fieldAlt.getFieldName());
                  bFieldsInSync = false;
              }
              fieldAlt.moveFieldToThis((BaseField)fieldMain);   // All values belong in the alt record.
              if (fieldMain != null) if (fieldAlt != null)
                  if (this.isLanguageOverride(fieldMain))
              { // Move this field, but don't call doRecordChange (READ_MOVE)
                  if (m_buffer != null)
                      m_buffer.getNextField(fieldMain, DBConstants.DONT_DISPLAY, DBConstants.READ_MOVE);      // Get the original value back
                  fieldMain.setModified(false);       // No change from original
              //x    if (fieldMain.isNull())         // If the value was null, set it to new (Why not?)
              //x        fieldMain.moveFieldToThis((BaseField)fieldAlt);
              }
              if (altMatchesToNull)
              	if (fieldMain.equals(fieldAlt))
              	    if ((fieldAlt.isNullable()) && (fieldAlt != recAlt.getCounterField()))
                  		fieldAlt.setData(null);
          }
      }