docs: public ScreenComponent setupTablePopup(ScreenLoc itsLocation, ComponentParent targetScreen, Convert converter, int iDisplayFieldDesc, Rec record, String iQueryKeySeq, String iDisplayFieldSeq, boolean bIncludeBlankOption, boolean bIncludeFormButton)
      {
          if ((!(this instanceof ReferenceField)) && (!(this instanceof CounterField)))
              Debug.doAssert(false);    // error, wrong field type
          ((Record)record).setKeyArea(iQueryKeySeq);
          ((Record)record).close();
          if (converter == null)
              converter = this;
          if (iDisplayFieldSeq == null)
              iDisplayFieldSeq = ((Record)record).getDefaultDisplayFieldName();
          FieldConverter convert = new QueryConverter((Converter)converter, (Record)record, iDisplayFieldSeq, bIncludeBlankOption);
          ScreenComponent screenField = createScreenComponent(ScreenModel.POPUP_BOX, itsLocation, targetScreen, convert, iDisplayFieldDesc, null);
          if (bIncludeFormButton)
              if (!(targetScreen instanceof GridScreenParent))
              {
                  Map<String,Object> properties = new HashMap<String,Object>();
                  properties.put(ScreenModel.RECORD, record);
                  properties.put(ScreenModel.COMMAND, ThinMenuConstants.FORM);
                  properties.put(ScreenModel.IMAGE, ThinMenuConstants.FORM);
                  screenField = createScreenComponent(ScreenModel.CANNED_BOX, targetScreen.getNextLocation(ScreenConstants.RIGHT_OF_LAST, ScreenConstants.DONT_SET_ANCHOR), targetScreen, converter, ScreenConstants.DONT_DISPLAY_FIELD_DESC, properties);
              }
          ((Record)record).selectScreenFields();    // Only select fields that you will display
          return screenField;
      }