一、简介
limereport是俄罗斯人QT开发的报表设计器,功能很强大,简单容易上手。网上有编译和读取数据库的教程,在此我不累述,本文主要介绍通过Qt的tablemode加载数据。
二、主要代码
1)重新了QAbstractTableModel通过,数据封装在结构体里。
AlarmQueryModel *m_pModelAlarmQuery = new AlarmQueryModel();
QList<Stu_Alarm_Info> listInfo;
Stu_Alarm_Info STUINFO;
STUINFO.iTotalPage = 1;
STUINFO.strAlarmid = "strAlarmid ";
STUINFO.strEcscode = "strEcscode ";
STUINFO.strDevid = "strDevid ";
STUINFO.strAlarmCode = "strAlarmCode ";
STUINFO.strAlarmtype = "strAlarmtype ";
STUINFO.strAlarmgrade = "strAlarmgrade ";
STUINFO.strAlarmDate = "strAlarmDate ";
STUINFO.strAlarmDesc = "strAlarmDesc ";
listInfo.insert(0 ,STUINFO );
listInfo.insert(1 ,STUINFO1 );
listInfo.insert(2 ,STUINFO );
listInfo.insert(3 ,STUINFO );
m_pModelAlarmQuery->setModelData(listInfo);
2)向LimeReport添加tablemodel
report = new LimeReport::ReportEngine(this); //to create reportengine
report->dataManager()->addModel("周报",m_pModelAlarmQuery,false);
report->dataManager()->addModel( "月报",m_pModelAlarmQuery,false);
report->dataManager()->addModel("年报",m_pModelAlarmQuery,false);
report->dataManager()->addModel("m_pModelAlarmQuery",m_pModelAlarmQuery,false); //to add datasource to report engine
report->loadFromFile("D:\\1.lrxml"); //to load report template file
报表设计其中就会显示添加的model了
3)设计报表
选择数据块,并向DataBand中放入model参数,
预览后发现只有一条数据
选中DataBand,修改数据源,再预览即可展示你写入model的数据了
代码如下https://download.youkuaiyun.com/download/qq_22000089/87006486