QT/C++标签文档报表工具

2024-08-28 11:48
文章标签 工具 c++ 文档 qt 标签 报表

本文主要是介绍QT/C++标签文档报表工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

QT/C++标签文档报表工具

  • 一、演示预览
  • 二、使用步骤
    • 1.环境配置
  • 二、核心代码
    • 1.报表程序
    • 2. 数据库程序
  • 三、代码链接


一、演示预览

请添加图片描述

二、使用步骤

1.环境配置

1、第一次在电脑上需要注册报表库,要不让软件运行会报错,这里已经写好了批处理直接运行就行。
在这里插入图片描述
2、批处理的文件主要是注册dll和安装sqlite驱动,具体如下
在这里插入图片描述
3、ReportUser模块第一次编译的时候会报错,不用去理他,编译第二次就可以
在这里插入图片描述
在这里插入图片描述

二、核心代码

1.报表程序

void ReportUser::Init()
{// 第一次打开先注册QString strPath = QCoreApplication::applicationDirPath() + "/FirstOpen.rpt";QDir dir;if (!dir.exists(strPath)){QString strBatDir = QCoreApplication::applicationDirPath() + "/Data";QString strBatFile = QCoreApplication::applicationDirPath() + "/Data/install.bat";QProcess p(NULL);p.setWorkingDirectory(strBatDir);p.start(strBatFile);p.waitForFinished();dir.mkpath(strPath);}// 加载数据库SqlUser::GetInstance()->InitDB();LoadSourcesData(g_qlite, g_tableName);// 加载模板QString strPathFr3 = QCoreApplication::applicationDirPath() + "/Data/data.fr3";LoadTemplateFile(strPathFr3);
}bool ReportUser::LoadSourcesData(const char* chDataSource, const char* chTableName)
{CoInitialize(NULL);bool bRet = true;try{m_pData->pReport = IfrxReportPtr(__uuidof(TfrxReport));m_pData->pDB = IfrxADODatabasePtr(__uuidof(TfrxADODatabase));m_pData->pDT = IfrxADOTablePtr(__uuidof(TfrxADOTable));m_pData->pQR = IfrxADOQueryPtr(__uuidof(TfrxADOQuery));// Set the database object propertiesm_pData->pDB->ConnectionString = chDataSource;m_pData->pDB->LoginPrompt = false;m_pData->pDB->Connected = true;// Set the table object propertiesconst char* chTableNameTemp = chTableName;m_pData->pDT->PutDatabase(m_pData->pDB);m_pData->pDT->Name = chTableNameTemp;m_pData->pDT->TableName = chTableNameTemp;// Set the query object propertiesm_pData->pQR->PutDatabase(m_pData->pDB);char buf[256];const char *chTemp = "select * from ";memset(buf, 0, sizeof(buf));strcpy(buf, chTemp);strcat(buf, chTableNameTemp);m_pData->pQR->Query = buf;// Link ADO table and ADO query to the Report objectm_pData->pReport->SelectDataset(true, IfrxDataSetPtr(m_pData->pDT));m_pData->pReport->SelectDataset(true, IfrxDataSetPtr(m_pData->pQR));}catch (_com_error e){bRet = false;CoUninitialize();return bRet;}CoUninitialize();return bRet;
}

2. 数据库程序

代码如下:

// 打开数据库
bool SqlUser::InitDB()
{if (QSqlDatabase::contains("qt_sql_default_connection")){m_dataBase = QSqlDatabase::database("qt_sql_default_connection");return true;}else{// 建立和SQlite数据库的连接m_dataBase = QSqlDatabase::addDatabase("QSQLITE");// 设置数据库文件的名字m_dataBase.setDatabaseName("ReportDatabase.db");}if (!m_dataBase.open()){m_bConnected = false;qDebug() << "Error: Failed to connect database." << m_dataBase.lastError();}elsem_bConnected = true;return m_bConnected;
}// 执行sql语句
bool SqlUser::Excute(QString sql)
{if (!m_bConnected) return false;QSqlQuery query;query.prepare(sql);bool success=query.exec(sql);if(!success){qDebug() << "Error:" << query.lastError();return false;}return true;}// 创建表
bool SqlUser::CreatTable()
{bool bRet = false;if (m_strTableNameList.size() <= 0)return bRet;QString strCreateTable = QString(u8"CREATE TABLE ReportData(SysIndex INTEGER PRIMARY KEY");for (int i = 0; i < m_strTableNameList.size(); i++){if (i < (m_strTableNameList.size() - 1))strCreateTable = strCreateTable + "," + m_strTableNameList[i] + " VARCHAR(256)";elsestrCreateTable = strCreateTable + "," + m_strTableNameList[i] + " VARCHAR(256)" + ")";}bRet = Excute(strCreateTable);return bRet;
}

三、代码链接

代码链接
https://download.csdn.net/download/u013083044/85120988

这篇关于QT/C++标签文档报表工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1114680

相关文章

C++作用域和标识符查找规则详解

《C++作用域和标识符查找规则详解》在C++中,作用域(Scope)和标识符查找(IdentifierLookup)是理解代码行为的重要概念,本文将详细介绍这些规则,并通过实例来说明它们的工作原理,需... 目录作用域标识符查找规则1. 普通查找(Ordinary Lookup)2. 限定查找(Qualif

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式

《C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式》Markdown凭借简洁的语法、优良的可读性,以及对版本控制系统的高度兼容性,逐渐成为最受欢迎的文档格式... 目录为什么要将文档转换为 Markdown 格式使用工具将 Word 文档转换为 Markdown(.

CnPlugin是PL/SQL Developer工具插件使用教程

《CnPlugin是PL/SQLDeveloper工具插件使用教程》:本文主要介绍CnPlugin是PL/SQLDeveloper工具插件使用教程,具有很好的参考价值,希望对大家有所帮助,如有错... 目录PL/SQL Developer工具插件使用安装拷贝文件配置总结PL/SQL Developer工具插

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

C/C++ chrono简单使用场景示例详解

《C/C++chrono简单使用场景示例详解》:本文主要介绍C/C++chrono简单使用场景示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录chrono使用场景举例1 输出格式化字符串chrono使用场景China编程举例1 输出格式化字符串示

C++/类与对象/默认成员函数@构造函数的用法

《C++/类与对象/默认成员函数@构造函数的用法》:本文主要介绍C++/类与对象/默认成员函数@构造函数的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录名词概念默认成员函数构造函数概念函数特征显示构造函数隐式构造函数总结名词概念默认构造函数:不用传参就可以

C++类和对象之默认成员函数的使用解读

《C++类和对象之默认成员函数的使用解读》:本文主要介绍C++类和对象之默认成员函数的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、默认成员函数有哪些二、各默认成员函数详解默认构造函数析构函数拷贝构造函数拷贝赋值运算符三、默认成员函数的注意事项总结一

VS配置好Qt环境之后但无法打开ui界面的问题解决

《VS配置好Qt环境之后但无法打开ui界面的问题解决》本文主要介绍了VS配置好Qt环境之后但无法打开ui界面的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目UKeLvb录找到Qt安装目录中designer.UKeLvBexe的路径找到vs中的解决方案资源