docs: public int doRecordChange(FieldInfo field, int iChangeType, boolean bDisplayOption)
      {
          AnnivMaster recAnnivMaster = (AnnivMaster)this.getOwner();
          if (iChangeType == DBConstants.AFTER_ADD_TYPE)
          {
              Object bookmark = recAnnivMaster.getLastModified(DBConstants.BOOKMARK_HANDLE);
              try {
                  recAnnivMaster.setHandle(bookmark, DBConstants.BOOKMARK_HANDLE);
                  
                  Calendar calStart = ((DateTimeField)this.getCalendarControl().getField(CalendarControl.START_ANNIV_DATE)).getCalendar();
                  Calendar calEnd = ((DateTimeField)this.getCalendarControl().getField(CalendarControl.END_ANNIV_DATE)).getCalendar();
          
                  recAnnivMaster.addAppointments(this.getAnniversary(), calStart, calEnd);
          
                  recAnnivMaster.addNew();
              } catch (DBException ex) {
                  ex.printStackTrace();
              }
          }
          if (iChangeType == DBConstants.AFTER_UPDATE_TYPE)
          {
              Calendar calStart = ((DateTimeField)this.getCalendarControl().getField(CalendarControl.START_ANNIV_DATE)).getCalendar();
              Calendar calEnd = ((DateTimeField)this.getCalendarControl().getField(CalendarControl.END_ANNIV_DATE)).getCalendar();
          
              recAnnivMaster.removeAppointments(this.getAnniversary());
              recAnnivMaster.addAppointments(this.getAnniversary(), calStart, calEnd);
          }
          if (iChangeType == DBConstants.AFTER_DELETE_TYPE)
          {
              recAnnivMaster.removeAppointments(this.getAnniversary());
          }
          return super.doRecordChange(field, iChangeType, bDisplayOption);
      }