コード例 #1
0
void financialLayout::sFillList()
{
  XSqlQuery financialFillList;
  int pId = -1, pType = -1;

  XTreeWidgetItem * item = (XTreeWidgetItem*)(_layout->currentItem());
  if(0 != item)
  {
    pId = item->id();
    pType = item->altId();
  }

  _layout->clear();
  _lastStack.clear();
  _last = 0;
  if (_adHoc->isChecked())
  {
    insertFlGroupAdHoc(-1, "", 0, pId, pType);
  }
  else
  {
    insertFlGroup(-1, "", 0, pId, pType);
   }
  _layout->expandAll();

  item = (XTreeWidgetItem*)(_layout->currentItem());
  if(0 != item)
    _layout->scrollToItem(item);

  financialFillList.prepare ("SELECT flcol_id, flcol_name, flcol_descrip "
             " FROM flcol "
             " WHERE flcol_flhead_id=:flhead_id "
             " ORDER BY flcol_name, flcol_descrip; ");
  financialFillList.bindValue(":flhead_id", _flheadid);
  financialFillList.exec();
  _layouts->populate(financialFillList);
  if (financialFillList.lastError().type() != QSqlError::NoError)
  {
    systemError(this, financialFillList.lastError().databaseText(), __FILE__, __LINE__);
    return;
  }
}
コード例 #2
0
void financialLayout::sFillList()
{
  int pId = -1, pType = -1;

  XTreeWidgetItem * item = (XTreeWidgetItem*)(_layout->currentItem());
  if(0 != item)
  {
    pId = item->id();
    pType = item->altId();
  }

  _layout->clear();
  _lastStack.clear();
  _last = 0;
  if (_adHoc->isChecked())
  {
    insertFlGroupAdHoc(-1, "", 0, pId, pType);
  }
  else
  {
    insertFlGroup(-1, "", 0, pId, pType);
   }
  _layout->expandAll();

  item = (XTreeWidgetItem*)(_layout->currentItem());
  if(0 != item)
    _layout->scrollToItem(item);

// fill Column layouts
  _layouts->clear();
  q.prepare ("SELECT flcol_id, flcol_name, flcol_descrip "
             " FROM flcol "
             " WHERE flcol_flhead_id=:flhead_id "
             " ORDER BY flcol_name, flcol_descrip; ");
  q.bindValue(":flhead_id", _flheadid);
  q.exec();
  if (q.first())
    _layouts->populate(q);
}
コード例 #3
0
void financialLayout::insertFlGroupAdHoc(int pFlgrpid, QString pFlgrpname, XTreeWidgetItem *pParent, int pId, int pType)
{
  XTreeWidgetItem *root = 0;
  XSqlQuery thisLevel;

  if (pFlgrpid != -1)
  {
    thisLevel.prepare("SELECT CASE WHEN(flgrp_summarize OR flgrp_subtotal) THEN formatBoolYN(flgrp_showstart)"
                      "            ELSE ''"
                      "       END AS showbeg,"
                      "       CASE WHEN(flgrp_summarize OR flgrp_subtotal) THEN formatBoolYN(flgrp_showend)"
                      "            ELSE ''"
                      "       END AS showend,"
                      "       CASE WHEN(flgrp_summarize OR flgrp_subtotal) THEN formatBoolYN(flgrp_showdelta)"
                      "            ELSE ''"
                      "       END AS showdbcr,"
                      "       CASE WHEN(flgrp_summarize OR flgrp_subtotal) THEN formatBoolYN(flgrp_showbudget)"
                      "            ELSE ''"
                      "       END AS showbudget,"
                      "       CASE WHEN(flgrp_summarize OR flgrp_subtotal) THEN formatBoolYN(flgrp_showdiff)"
                      "            ELSE ''"
                      "       END AS showdiff,"
                      "       CASE WHEN(flgrp_summarize OR flgrp_subtotal) THEN formatBoolYN(flgrp_showcustom)"
                      "            ELSE ''"
                      "       END AS showcustom,"
                      "       CASE WHEN(flgrp_summarize) THEN 'Summarized'"
                      "            WHEN(flgrp_subtotal) THEN 'Subtotal'"
                      "            ELSE ''"
                      "       END AS summary,"
                      "       flgrp_subtract as subtract "
                      "  FROM flgrp"
                      " WHERE ((flgrp_id=:flgrp_id)"
                      "   AND  (flgrp_flhead_id=:flhead_id) ); ");
    thisLevel.bindValue(":flgrp_id", pFlgrpid);
    thisLevel.bindValue(":flhead_id", _flheadid);
    thisLevel.exec();
    thisLevel.first();
    if (pParent)
      _last = root = new XTreeWidgetItem(pParent, _last, pFlgrpid, cFlGroup, pFlgrpname,
                               thisLevel.value("showbeg").toString(),
                               thisLevel.value("showend").toString(),
                               thisLevel.value("showdbcr").toString(),
                               thisLevel.value("showbudget").toString(),
                               thisLevel.value("showdiff").toString(),
                               thisLevel.value("showcustom").toString(),
                               thisLevel.value("summary").toString(),
                               ( thisLevel.value("subtract").toBool() ? tr("-") : tr("+") ) );
    else
      _last = root = new XTreeWidgetItem(_layout, _last, pFlgrpid, cFlGroup, pFlgrpname,
                               thisLevel.value("showbeg").toString(),
                               thisLevel.value("showend").toString(),
                               thisLevel.value("showdbcr").toString(),
                               thisLevel.value("showbudget").toString(),
                               thisLevel.value("showdiff").toString(),
                               thisLevel.value("showcustom").toString(),
                               thisLevel.value("summary").toString(),
                               ( thisLevel.value("subtract").toBool() ? tr("-") : tr("+") ) );

    if ( (pFlgrpid == pId) && (pType == cFlGroup) )
    {
      _layout->setCurrentItem(root);
      _layout->scrollToItem(root);
    }

    _lastStack.push(_last);
    _last = 0;
  }

  thisLevel.prepare( "SELECT flgrp_id AS id, :group AS type, flgrp_order AS orderby,"
                     "       flgrp_name AS name,"
                     "       '' AS showbeg,"
                     "       '' AS showend,"
                     "       '' AS showdbcr,"
                     "       '' AS showbudget,"
                     "       '' AS showdiff,"
                     "       '' AS showcustom,"
                     "       flgrp_subtract AS subtract "
                     "FROM flgrp "
                     "WHERE ( (flgrp_flgrp_id=:flgrp_id)"
                     " AND (flgrp_flhead_id=:flhead_id) ) "

                     "UNION SELECT flitem_id AS id, :item AS type, flitem_order AS orderby,"
                     "             formatflitemdescrip(flitem_id) AS name,"
                     "             formatBoolYN(flitem_showstart) AS showbeg,"
                     "             formatBoolYN(flitem_showend) AS showend,"
                     "             formatBoolYN(flitem_showdelta) AS showdbcr,"
                     "             formatBoolYN(flitem_showbudget) AS showbudget,"
                     "             formatBoolYN(flitem_showdiff) AS showdiff,"
                     "             CASE WHEN(NOT flitem_showcustom) THEN formatBoolYN(flitem_showcustom)"
                     "                  WHEN(flitem_custom_source='S') THEN text('BB')"
                     "                  WHEN(flitem_custom_source='E') THEN text('EB')"
                     "                  WHEN(flitem_custom_source='D') THEN text('DB')"
                     "                  WHEN(flitem_custom_source='C') THEN text('CR')"
                     "                  WHEN(flitem_custom_source='B') THEN text('BU')"
                     "                  WHEN(flitem_custom_source='F') THEN text('DI')"
                     "                  ELSE flitem_custom_source"
                     "             END AS showcustom,"
                     "             flitem_subtract AS subtract "
                     "FROM flitem "
                     "WHERE (flitem_flgrp_id=:flgrp_id) "

                     "UNION SELECT flspec_id AS id, :spec AS type, flspec_order AS orderby,"
                     "             flspec_name AS name,"
                     "             formatBoolYN(flspec_showstart) AS showbeg,"
                     "             formatBoolYN(flspec_showend) AS showend,"
                     "             formatBoolYN(flspec_showdelta) AS showdbcr,"
                     "             formatBoolYN(flspec_showbudget) AS showbudget,"
                     "             formatBoolYN(flspec_showdiff) AS showdiff,"
                     "             CASE WHEN(NOT flspec_showcustom) THEN formatBoolYN(flspec_showcustom)"
                     "                  WHEN(flspec_custom_source='S') THEN text('BB')"
                     "                  WHEN(flspec_custom_source='E') THEN text('EB')"
                     "                  WHEN(flspec_custom_source='D') THEN text('DB')"
                     "                  WHEN(flspec_custom_source='C') THEN text('CR')"
                     "                  WHEN(flspec_custom_source='B') THEN text('BU')"
                     "                  WHEN(flspec_custom_source='F') THEN text('DI')"
                     "                  ELSE flspec_custom_source"
                     "             END AS showcustom,"
                     "             flspec_subtract AS subtract "
                     "FROM flspec "
                     "WHERE (flspec_flgrp_id=:flgrp_id) "

                     "ORDER BY orderby;" );
  thisLevel.bindValue(":group", cFlGroup);
  thisLevel.bindValue(":item", cFlItem);
  thisLevel.bindValue(":spec", cFlSpec);
  thisLevel.bindValue(":flgrp_id", pFlgrpid);
  thisLevel.bindValue(":flhead_id", _flheadid);
  thisLevel.exec();
  while (thisLevel.next())
  {
    if (thisLevel.value("type").toInt() == cFlGroup)
      insertFlGroupAdHoc(thisLevel.value("id").toInt(), thisLevel.value("name").toString(), root, pId, pType);
    else if (pFlgrpid != -1)
    {
      _last = new XTreeWidgetItem( root, _last,
                                thisLevel.value("id").toInt(), thisLevel.value("type").toInt(),
                                thisLevel.value("name"), thisLevel.value("showbeg"),
                                thisLevel.value("showend"), thisLevel.value("showdbcr"),
                                thisLevel.value("showbudget"), thisLevel.value("showdiff"),
                                thisLevel.value("showcustom"), "",
                                ( thisLevel.value("subtract").toBool() ? tr("-") : tr("+") ) );

      if ( (thisLevel.value("id").toInt() == pId) && (thisLevel.value("type").toInt() == pType) )
      {
        _layout->setCurrentItem(_last);
        _layout->scrollToItem(root);
      }
    }
  }

  _last = _lastStack.pop();
}