docs: public void init(Record record, ScreenLocation itsLocation, BasePanel parentScreen, Converter fieldConverter, int iDisplayFieldDesc, Map<String,Object> properties)
      {
          oldProperties = null;
          String databaseName = parentScreen.getProperty("main" + BaseDatabase.DBSHARED_PARAM_SUFFIX);
          if ((databaseName == null) || (!databaseName.equalsIgnoreCase(Utility.addToPath("main", Utility.getSystemSuffix(parentScreen.getProperty(DBConstants.SYSTEM_NAME), parentScreen.getProperty(DBConstants.DEFAULT_SYSTEM_NAME)), BaseDatabase.DB_NAME_SEPARATOR))))
          {
              Task task = parentScreen.getTask();
              oldProperties = Utility.copyAppProperties(null, task.getProperties());
              Map<String,Object> prop = Utility.copyAppProperties(null, task.getApplication().getProperties());
              prop = Utility.copyAppProperties(prop, task.getProperties());
              BaseDatabase.addDBProperties(prop, parentScreen, null);
              prop.put("main" + BaseDatabase.DBSHARED_PARAM_SUFFIX, Utility.addToPath("main", Utility.getSystemSuffix(parentScreen.getProperty(DBConstants.SYSTEM_NAME), parentScreen.getProperty(DBConstants.DEFAULT_SYSTEM_NAME)), BaseDatabase.DB_NAME_SEPARATOR));
              prop.put(DBConstants.MODE, BaseDatabase.RUN_MODE);
              prop.put(SQLParams.AUTO_COMMIT_PARAM, DBConstants.FALSE);
              if (record != null)
                  if (record.getTable().getDatabase().getDatabaseOwner() != null)
              {
                  record.free();
                  record = null;
              }
              parentScreen.setProperties(prop);
          }
          super.init(record, itsLocation, parentScreen, fieldConverter, iDisplayFieldDesc, properties);
          this.getTask().setProperties(oldProperties);
      }