code: public Record moveToCurrentRecord(Record recBase)
      {
          if (recBase == null)
              recBase = this.getBaseRecord(); // Actually, should always be the recBase.
          BaseField fldRecordType = recBase.getSharedRecordTypeKey();
          Object objKey = fldRecordType.getData();
          BaseTable tableCurrent = this.getTableAt(objKey);
          Record recCurrent = null;
          if (tableCurrent != null)
              recCurrent = tableCurrent.getRecord();
          if (recCurrent == null)
          {
              RecordOwner recordOwner = recBase.getRecordOwner();
              RecordOwner recordOwnerFake = this.getFakeRecordOwner(recordOwner);
              recCurrent = recBase.createSharedRecord(objKey, recordOwnerFake);
              if (recCurrent != null)
                  if (recCurrent.getRecordOwner() == recordOwnerFake)
              {   // Usually
                  recCurrent.setRecordOwner(recordOwner);    // No record owner
                  // Add this table (but do not use this.addTable because it closes the next table)
                  this.addTable(objKey, recCurrent.getTable());
                  recCurrent.setOpenMode(recBase.getOpenMode());  // Same mode.
                  recBase.matchListeners(recCurrent, true, true, true, true, true);      // Clone the listeners that are not there already.
              }
          }
          if (recCurrent != null)
              if (recCurrent != recBase)
          {
              this.copyRecordInfo(recCurrent, recBase, true, false);
          }
          if (recCurrent != null)
              this.setCurrentRecord(recCurrent);
          return recCurrent;
      }
docs: Figure what kind of record this record is and move it to the correct record.
  @record The record to move to current.