ParameterList printSinglecopyDocument::getParams(XSqlQuery *docq)
{
  ParameterList params;
  if (! reportKey().isEmpty() && docq)
  {
    QVariant docid = docq->record().contains("docid") ? docq->value("docid")
                                                      : docq->value(reportKey());

    params.append(reportKey(), docid);
    params.append("docid",     docid);
  }

  return params;
}
ParameterList printSinglecopyDocument::getParamsDocList()
{
  ParameterList params;

  if (_data->_docid > 0)
  {
    params.append(reportKey(), _data->_docid);
    params.append("docid",     _data->_docid);
  }

  return params;
}
enum SetResponse printSinglecopyDocument::set(const ParameterList &pParams)
{
  XDialog::set(pParams);
  _data->_captive = true;

  QVariant param;
  bool     valid;

  if (! reportKey().isEmpty())
  {
    param = pParams.value(reportKey(), &valid);
    if (valid)
      setId(param.toInt());
  }

  param = pParams.value("docid", &valid);
  if (valid)
    setId(param.toInt());

  if (pParams.inList("print"))
  {
    sPrint();
    return NoError_Print;
  }

  if (pParams.inList("persistentPrint"))
  {
    _data->_alert = FALSE;

    if (isSetup())
    {
      sPrint();
      return NoError_Print;
    }
    else
      return Error_NoSetup;
  }

  return NoError;
}
enum SetResponse printMulticopyDocument::set(const ParameterList &pParams)
{
  XDialog::set(pParams);
  _data->_captive = true;

  QVariant param;
  bool     valid;

  param = pParams.value(reportKey(), &valid);
  if (valid)
    setId(param.toInt());

  param = pParams.value("docid", &valid);
  if (valid)
    setId(param.toInt());

  if (pParams.inList("print"))
  {
    sPrint();
    return NoError_Print;
  }

  if (pParams.inList("persistentPrint"))
  {
    _data->_alert = false;

    if (_data->_mpIsInitialized)
    {
      sPrint();
      return NoError_Print;
    }
    else
      return Error_NoSetup;
  }

  return NoError;
}