docs: public boolean printData(PrintWriter out, int iPrintOptions)
      {
          boolean bFieldsFound = false;
          String strFieldName = this.getScreenField().getSFieldParam();
  
          String string = DBConstants.BLANK;
          int iIndex = 0;
          Convert converter = this.getScreenField().getConverter();
          if (m_vDisplays == null)
          {
              String strField = null;
              if (converter != null) if (converter.getField() != null)
                  strField = converter.getField().getString();
              this.scanTableItems();
              if (converter != null) if (converter.getField() != null)
                  converter.getField().setString(strField);
          }
          if (converter != null)
          {   // This is required for the display or popup fields because displayField() is never called to get the value.
              iIndex = converter.convertFieldToIndex();
              if (iIndex == -1)
              {
                  return super.printData(out, iPrintOptions);
              }
              try {
                  string = (String)m_vDisplays.get(iIndex);
              } catch (ArrayIndexOutOfBoundsException ex) {
                  string = DBConstants.BLANK;
              }
          }
  
          String strFieldData = string; // this.getScreenField().getSFieldValue(true, false);
          if (this.getScreenField().getConverter() != null)
                  strFieldData = Utility.encodeXML(strFieldData);
          out.println("    " + Utility.startTag(strFieldName) + strFieldData + Utility.endTag(strFieldName));
          return bFieldsFound;
      }