⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lxaccountstmtprint.cc

📁 LxBank是一个基于Qt/X的家庭储蓄应用程序
💻 CC
📖 第 1 页 / 共 2 页
字号:
  bbox = painter->boundingRect ( leftMargin, topEdge, pageWidth, headTextFieldHeight,				 Qt::AlignLeft | Qt::AlignTop, labelInstitute);  lw1 = bbox.width();  instituteWidth = instituteWidth < lw1 ? lw1 : instituteWidth;  bbox = painter->boundingRect ( leftMargin, topEdge, pageWidth, headTextFieldHeight,				 Qt::AlignLeft | Qt::AlignTop, labelAccount);  lw1 = bbox.width();  accountWidth = accountWidth < lw1 ? lw1 : accountWidth;  bbox = painter->boundingRect ( leftMargin, topEdge, pageWidth, headTextFieldHeight,				 Qt::AlignLeft | Qt::AlignTop, labelCode);  lw1 = bbox.width();  codeWidth = codeWidth < lw1 ? lw1 : codeWidth;  bbox = painter->boundingRect ( leftMargin, topEdge, pageWidth, headTextFieldHeight,				 Qt::AlignLeft | Qt::AlignTop, labelBuchungstext);  lw1 = bbox.width();  textWidth = textWidth < lw1 ? lw1 : textWidth;  bbox = painter->boundingRect ( leftMargin, topEdge, pageWidth, headTextFieldHeight,				 Qt::AlignLeft | Qt::AlignTop, labelUmsatz);  lw1 = bbox.width();  turnoverWidth = dateWidth < lw1 ? lw1 : turnoverWidth;  bbox = painter->boundingRect ( leftMargin, topEdge, pageWidth, headTextFieldHeight,				 Qt::AlignLeft | Qt::AlignTop, labelSaldo);  lw1 = bbox.width();  balanceWidth = balanceWidth < lw1 ? lw1 : balanceWidth;  int sWidth  = dateWidth + valutaWidth + instituteWidth +    accountWidth + codeWidth + textWidth + turnoverWidth + balanceWidth;  double sfac = (double)(pageWidth - 2*edgeMargin) / (double)sWidth;  dateWidth      = (int)ceil((double)dateWidth * sfac);  valutaWidth    = (int)ceil((double)valutaWidth * sfac);  instituteWidth = (int)ceil((double)instituteWidth * sfac);  accountWidth   = (int)ceil((double)accountWidth * sfac);  codeWidth      = (int)ceil((double)codeWidth * sfac);  textWidth      = (int)ceil((double)textWidth * sfac);  turnoverWidth  = (int)ceil((double)turnoverWidth * sfac);  balanceWidth   = (int)ceil((double)balanceWidth * sfac);  sWidth  = dateWidth + valutaWidth +  instituteWidth +    accountWidth + codeWidth + textWidth + turnoverWidth + balanceWidth;  if ( sWidth > (pageWidth - 2*edgeMargin) ){    textWidth -= sWidth - (pageWidth - 2*edgeMargin);  }}void LxAccountStmtPrint::printHeader ( ){  painter->setFont( largeFont );  painter->drawText ( headTxtRecLeftOts, Qt::AlignLeft | Qt::AlignTop, labelBank );  painter->drawText ( headTxtRecLeftOts, Qt::AlignLeft | Qt::AlignBottom, labelInhaber );  painter->drawText ( headTxtRecLeftIns, Qt::AlignLeft | Qt::AlignTop, bank );  painter->drawText ( headTxtRecLeftIns, Qt::AlignLeft | Qt::AlignBottom, inhaber );  painter->drawText ( headTxtRecRightIns, Qt::AlignLeft | Qt::AlignTop, labelBlz );  painter->drawText ( headTxtRecRightIns, Qt::AlignLeft | Qt::AlignBottom, labelKtonumber );  painter->drawText ( headTxtRecRightOts, Qt::AlignLeft | Qt::AlignTop, blz );  painter->drawText ( headTxtRecRightOts, Qt::AlignLeft | Qt::AlignBottom, ktonumber );  painter->setFont( hugeFont );  painter->drawText ( headTxtRecCenter, Qt::AlignCenter, ktoname );  painter->drawLine (leftMargin, topMargin, leftMargin + pageWidth, topMargin );  painter->drawLine (leftMargin, topMargin + headTextFieldHeight + 2*ruleHeight, 	       leftMargin + pageWidth, topMargin + headTextFieldHeight + 2*ruleHeight);  int x = leftMargin + edgeMargin;  int y = topMargin + headTextFieldHeight + 2*ruleHeight;  int ny = y + textSpacing;  painter->setFont( normalFont );  txtRec.setTop( y );  txtRec.setBottom( ny );  // column 1, datum  txtRec.setLeft( x );  x += dateWidth;  txtRec.setRight( x );  painter->drawText ( txtRec, Qt::AlignLeft | Qt::AlignVCenter, labelDatum );        // column 2, valuta  txtRec.setLeft( x );  x += valutaWidth;  txtRec.setRight( x );  painter->drawText ( txtRec, Qt::AlignLeft | Qt::AlignVCenter, labelValuta );        // column 3, institute  txtRec.setLeft( x );  x += instituteWidth;  txtRec.setRight( x );  painter->drawText ( txtRec, Qt::AlignLeft | Qt::AlignVCenter, labelInstitute );        // column 4, account  txtRec.setLeft( x );  x += accountWidth;  txtRec.setRight( x );  painter->drawText ( txtRec, Qt::AlignLeft | Qt::AlignVCenter, labelAccount );        // column 5, code  txtRec.setLeft( x );  x += codeWidth;  txtRec.setRight( x );  painter->drawText ( txtRec, Qt::AlignLeft | Qt::AlignVCenter, labelCode );        // column 6, buchungstext  txtRec.setLeft( x );  x += textWidth;  txtRec.setRight( x );  painter->drawText ( txtRec, Qt::AlignLeft | Qt::AlignVCenter, labelBuchungstext );  // column 7, umsatz  txtRec.setLeft( x );  x += turnoverWidth;  txtRec.setRight( x );  painter->drawText ( txtRec, Qt::AlignRight | Qt::AlignVCenter, labelUmsatz );        // column 8, saldo  txtRec.setLeft( x );  x += balanceWidth;  txtRec.setRight( x );  painter->drawText ( txtRec, Qt::AlignRight | Qt::AlignVCenter, labelSaldo );  painter->drawLine (leftMargin, ny, leftMargin + pageWidth, ny);}void LxAccountStmtPrint::printStmts (AccListVItemList *lvItems ){  if ( lvItems->isEmpty () )	// nothing to print    return;  printHeader ();  LxAccountListViewItem *item;  int x, y, ny, leftEdge = leftMargin + edgeMargin;  painter->setFont( normalFont );  for (item = lvItems->first(), x = leftEdge, y = topMargin + headHeight + ruleHeight, ny = y + textSpacing;       item != 0; item = lvItems->next(), x = leftEdge, y += 2*ruleHeight, ny = y + textSpacing ){    QStringList &btxt = item->getBText();    if ( (btxt.count() > 1 ? (ny + textSpacing) : ny) > bottomEdge ){      printer->newPage ();      printHeader ();      painter->setFont( normalFont );      y = topMargin + headHeight + ruleHeight;      ny = y + textSpacing;    }    // paint background pattern rectangle    bgRec.setTop( y );    bgRec.setBottom( ny );    painter->setPen( Qt::NoPen );    painter->fillRect ( bgRec, brush );    painter->setPen( penColor );    txtRec.setTop( y );    txtRec.setBottom( ny );    // column 1, datum    txtRec.setLeft( x );    x += dateWidth;    txtRec.setRight( x );    painter->drawText ( txtRec, Qt::AlignLeft | Qt::AlignVCenter, item->text(0) );          // column 2, valuta    txtRec.setLeft( x );    x += valutaWidth;    txtRec.setRight( x );    painter->drawText ( txtRec, Qt::AlignLeft | Qt::AlignVCenter, item->text(1) );          // column 3, institute    txtRec.setLeft( x );    x += instituteWidth;    txtRec.setRight( x );    painter->drawText ( txtRec, Qt::AlignLeft | Qt::AlignVCenter, item->text(2) );          // column 4, account    txtRec.setLeft( x );    x += accountWidth;    txtRec.setRight( x );    painter->drawText ( txtRec, Qt::AlignLeft | Qt::AlignVCenter, item->text(3) );          // column 5, code    txtRec.setLeft( x );    x += codeWidth;    txtRec.setRight( x );    painter->drawText ( txtRec, Qt::AlignLeft | Qt::AlignVCenter, item->text(4) );          // column 6, buchungstext    txtRec.setLeft( x );    x += textWidth;    txtRec.setRight( x );    it = btxt.begin();    painter->drawText ( txtRec, Qt::AlignLeft | Qt::AlignVCenter, *it );    bTxtRec = txtRec;    // column 7, umsatz    txtRec.setLeft( x );    x += turnoverWidth;    txtRec.setRight( x );    painter->drawText ( txtRec, Qt::AlignRight | Qt::AlignVCenter, item->text(6) );          // column 8, saldo    txtRec.setLeft( x );    x += balanceWidth;    txtRec.setRight( x );    painter->drawText ( txtRec, Qt::AlignRight | Qt::AlignVCenter, item->text(7) );          // rest column 6, buchungstext    for( ++it, y += textSpacing, ny = y + textSpacing;	 it != btxt.end(); ++it, y += textSpacing, ny = y + textSpacing ){      if ( ny > bottomEdge ){	printer->newPage ();	printHeader ();	painter->setFont( normalFont );	y = topMargin + headHeight + ruleHeight;	ny = y + textSpacing;      }      bTxtRec.setTop( y );      bTxtRec.setBottom( ny );      painter->drawText ( bTxtRec, Qt::AlignLeft | Qt::AlignVCenter, *it );    }  }}void  LxAccountStmtPrint::print ( AccListVItemList *lst){  CHECK_PTR( printer );  if ( printer->setup( lView ) ) {    if ( !painter->begin( printer ) )      return;    setup ();    printStmts ( lst );    painter->end( );  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -