QT报表开发(limereport + QAbstractTableModel)

一、简介

limereport是俄罗斯人QT开发的报表设计器,功能很强大,简单容易上手。网上有编译和读取数据库的教程,在此我不累述,本文主要介绍通过Qt的tablemode加载数据。

二、主要代码

1)重新了QAbstractTableModel通过,数据封装在结构体里。

    AlarmQueryModel *m_pModelAlarmQuery = new AlarmQueryModel();
    QList 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了

QT报表开发(limereport + QAbstractTableModel)_第1张图片

3)设计报表

选择数据块,并向DataBand中放入model参数,

 QT报表开发(limereport + QAbstractTableModel)_第2张图片QT报表开发(limereport + QAbstractTableModel)_第3张图片

 预览后发现只有一条数据

QT报表开发(limereport + QAbstractTableModel)_第4张图片

 选中DataBand,修改数据源,再预览即可展示你写入model的数据了

QT报表开发(limereport + QAbstractTableModel)_第5张图片

 QT报表开发(limereport + QAbstractTableModel)_第6张图片

 代码如下https://download.csdn.net/download/qq_22000089/87006486

 

你可能感兴趣的:(数据库,qt)