code: public void setTemporaryKeyField()
      {
          FieldDataScratchHandler fieldDataScratchHandler = (FieldDataScratchHandler)m_field.getListener(FieldDataScratchHandler.class);
          Record record = this.getOwner();
          KeyArea keyArea = record.getKeyArea(0);
          if (keyArea.getKeyFields(false, true) == 1)
          {
              if (m_fakeKeyField == null)
              {
                  m_fakeKeyField = new KeyField(keyArea, m_field, DBConstants.ASCENDING);
                  m_fakeKeyField.setIsTemporary(true);
              }
              else
                  keyArea.addKeyField(m_fakeKeyField);
          }
          BaseField paramField = m_fakeKeyField.getField(DBConstants.TEMP_KEY_AREA);
          paramField.setData(fieldDataScratchHandler.getOriginalData());
          Utility.getLogger().info("Set temp key field: " + paramField.toString());
      }
docs: Set up/do the remote criteria.
  @param strbFilter The SQL query string to add to.
  @param bIncludeFileName Include the file name with this query?
  @param vParamList The param list to add the raw data to (for prepared statements).
  @return True if you should not skip this record (does a check on the local data).