code: public void init(Record record, ScreenLocation itsLocation, BasePanel parentScreen, Converter fieldConverter, int iDisplayFieldDesc, Map<String, Object> properties)
      {
          this.setAppending(false);    // By default
  
          super.init(record, itsLocation, parentScreen, fieldConverter, iDisplayFieldDesc, properties);
          
          int iErrorCode = this.checkSecurity();
          if ((iErrorCode != DBConstants.NORMAL_RETURN) && (iErrorCode != Constants.READ_ACCESS))
              return;
  
  // Put the grid table in front of this record, so grid operations will work.
          Record gridRecord = this.getMainRecord();
  // Even though grid table caches for me, I use the cache to take advantage of multiple reads.
          if (gridRecord != null)
              gridRecord.setOpenMode(gridRecord.getOpenMode() | DBConstants.OPEN_CACHE_RECORDS);    // Cache recently used records.
  
          BaseTable gridTable = gridRecord.getTable();
          if (!(gridTable instanceof GridTable))
              gridTable = new GridTable(null, gridRecord);
          gridRecord.close();
  
          this.resizeToContent(this.getTitle());
      }
docs: Initialize.
  @param record The main record for this screen.
  @param itsLocation The location of this component within the parent.
  @param parentScreen The parent screen.
  @param fieldConverter The field this screen field is linked to.
  @param iDisplayFieldDesc Do I display the field desc?