code: public ScreenParent makeScreen(ScreenLoc itsLocation, ComponentParent parentScreen, int iDocMode, Map<String,Object> properties)
      {
          ScreenParent screen = null;
          if ((iDocMode & ScreenConstants.MAINT_MODE) == ScreenConstants.MAINT_MODE)
          {   // This is a little weird... can't directly change this table, must edit AnnivMaster
              Record recAnnivMaster = ((ReferenceField)this.getField(Anniversary.ANNIV_MASTER_ID)).getReferenceRecord(this.getRecordOwner());
              recAnnivMaster.setOpenMode(recAnnivMaster.getOpenMode() & ~DBConstants.OPEN_READ_ONLY);
              if ((this.getEditMode() == DBConstants.EDIT_CURRENT)
                  || (this.getEditMode() == DBConstants.EDIT_IN_PROGRESS))
                      recAnnivMaster = ((ReferenceField)this.getField(Anniversary.ANNIV_MASTER_ID)).getReference();
              // Disconnect recAnnivMaster and free this
              ((ReferenceField)this.getField(Anniversary.ANNIV_MASTER_ID)).setReferenceRecord(null);
              this.free();
              return recAnnivMaster.makeScreen(itsLocation, parentScreen, iDocMode, properties);
          }
          else
              screen = super.makeScreen(itsLocation, parentScreen, iDocMode, properties);
          return screen;
      }
docs: MakeScreen Method.