数据连接初始化代码:
bool CDatabase::createConnection()
{
db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=db\\stsx_contract.mdb");
if (!db.isValid() || !db.isOpen())
{
if (db.open())
return true;
else
{
QMessageBox::critical(0, "Cannot open database",
"Unable to establish a database connection.\n"
"This example needs SQLODBC support. Please read "
"the Qt SQL driver documentation for information how "
"to build it.\n\n"
"Click Cancel to exit.", QMessageBox::Cancel);
return false;
}
}
return false;
}
这个是在程序初始化的时候就调用了。
打印程序的片段:
QPrinter printer;;
printer.setPageSize(QPrinter::A4);
printer.setFullPage(true);
QPrintDialog printDialog(&printer, this);
QTextDocument *textDocument = new QTextDocument();
textDocument->setHtml(reporter.createReport(id, name, linkman, unit, unitlinkman, city, date, cost, remark));
if (printDialog.exec() == QDialog::Accepted)
{
textDocument->print(&printer);
}
reporter.createReport(id, name, linkman, unit, unitlinkman, city, date, cost, remark) 这个会调用另外一个类, 从数据库中提取要打印的数据,组合成Html格式。
提取数据组合成Html字串的函数之一
QString Reporter::createDeviceReport(QString contractid)
{
QString report;
report += "<table border='1' width='100%' id='table2'>"
"<tr>"
"<td colspan='6' align='center'><b>"+QApplication::tr("device details")+"</b></td>"
"</tr>"
"<tr>"
"<td width='15%' align='center'><b>"+QApplication::tr("device mode")+"</b></td>"
"<td width='15%' align='center'><b>"+QApplication::tr("device name")+"</b></td>"
"<td width='5%' align='center'><b>"+QApplication::tr("device amount")+"</b></td>"
"<td width='5%' align='center'><b>"+QApplication::tr("device price")+"</b></td>"
"<td width='6%' align='center'><b>"+QApplication::tr("device cost")+"</b></td>"
"<td width='54%' align='center'><b>"+QApplication::tr("device remark")+"</b></td>"
"</tr>";
QSqlQuery query("SELECT * FROM t_device WHERE contractid = '"+contractid+"'");
while (query.next())
{
report +="<tr>"
"<td width='15%' align='center' nowrap>"+query.value(2).toString()+"</td>"
"<td width='15%' align='center' nowrap>"+query.value(3).toString()+"</td>"
"<td width='5%' align='center'>"+query.value(4).toString()+"</td>"
"<td width='5%' align='center'>"+query.value(5).toString()+"</td>"
"<td width='6%' align='center'></td>"
"<td width='54%'>"+query.value(6).toString()+"</td>"
"</tr>";
}
report += "</table>";
return report;
}
请帮看看, 谢谢!