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; } }
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); }
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(); }