• 6460阅读
  • 9回复

Qt上怎么使用NCReport或者Fastreport控件???有哪位用过,求指教。 [复制链接]

上一主题 下一主题
离线liuligang88
 

只看楼主 倒序阅读 楼主  发表于: 2016-01-12
我已经下载了NCReport和Fastreport控件,但是不知道怎么和Qt结合这用,有哪位大神用过,求指教。
在此谢过。。。
离线ysu533

只看该作者 1楼 发表于: 2016-01-12
如果够用的话,这个个人认为更简单:QTRPT   http://sourceforge.net/projects/qtrpt/?source=directory
离线stlcours

只看该作者 2楼 发表于: 2016-01-12
如果不要求跨平台的话,我觉得封装成DLL,提前准备好.fr3文件,打印应该很简单。
离线liuligang88

只看该作者 3楼 发表于: 2016-01-12
回 ysu533 的帖子
ysu533:如果够用的话,这个个人认为更简单:QTRPT   http://sourceforge.net/projects/qtrpt/?source=directory (2016-01-12 16:45) 

恩,非常谢谢。有没有使用教程资料或者例子???我先用用看,英语水平太烂,看不太懂。
离线liuligang88

只看该作者 4楼 发表于: 2016-01-12
回 stlcours 的帖子
stlcours:如果不要求跨平台的话,我觉得封装成DLL,提前准备好.fr3文件,打印应该很简单。 (2016-01-12 17:02) 

恩,谢谢,但是我不知道怎么能和Qt结合起来,就好比Qt工程中的一些数据怎么弄到报表上?
如果可以,能不能说的详细一点。
离线ysu533

只看该作者 5楼 发表于: 2016-01-13
回 liuligang88 的帖子
liuligang88:恩,谢谢,但是我不知道怎么能和Qt结合起来,就好比Qt工程中的一些数据怎么弄到报表上?
如果可以,能不能说的详细一点。 (2016-01-12 19:37) 

这个很简单, 自带代码里面有一个demo工程,很多实例。

其实特别简单, 就2步就能实现

1.  加载报表, 就是那个生成的xml文件。
     report = new QtRPT(this);
     report->loadReport(fileName)

2. 相应设置值的信号
    QObject::connect(report, SIGNAL(setValue(const int, const QString, QVariant&, const int)),
                     this, SLOT(setValue(const int, const QString, QVariant&, const int)));
    
void ExampleDlg4::setValue(const int recNo, const QString paramName, QVariant &paramValue, const int reportPage) {
    Q_UNUSED(reportPage);
    if (paramName == "NN")
        paramValue = recNo+1;
    if (paramName == "Goods") {
        if (ui->tableWidget->item(recNo,0) == 0) return;
        paramValue = ui->tableWidget->item(recNo,0)->text();
    }
    if (paramName == "Quantity") {
        if (ui->tableWidget->item(recNo,1) == 0) return;
        paramValue = ui->tableWidget->item(recNo,1)->text();
    }
    if (paramName == "Price") {
        if (ui->tableWidget->item(recNo,2) == 0) return;
        paramValue = ui->tableWidget->item(recNo,2)->text();
    }
    if (paramName == "Sum") {
        if (ui->tableWidget->item(recNo,3) == 0) return;
        paramValue = ui->tableWidget->item(recNo,3)->text();
    }
}

根据paramName 来给相应的paramValue 附上相应的值就行了。


赋值后 report->printExec(); 就完成了。
离线liuligang88

只看该作者 6楼 发表于: 2016-01-13
哦,真的非常谢谢你。
那个头文件该怎么添加呢?头文件该添加什么?
我看到文档上有一句you must use QtRptProject.pro file,难道工程名必须命名为QtRptProject.pro 吗?
还有
CONFIG(debug, debug|release) {
DEST_DIRECTORY = $$PWD/bin/debug
}
CONFIG(release, debug|release) {
DEST_DIRECTORY = $$PWD/bin/release
}
我下载的的怎么没有bin文件呢?
我是一头雾水,能再给说说吗?谢谢
离线liuligang88

只看该作者 7楼 发表于: 2016-01-13
哦,真的非常谢谢你。
那个头文件该怎么添加呢?头文件该添加什么?
我看到文档上有一句you must use QtRptProject.pro file,难道工程名必须命名为QtRptProject.pro 吗?
还有
CONFIG(debug, debug|release) {
DEST_DIRECTORY = $$PWD/bin/debug
}
CONFIG(release, debug|release) {
DEST_DIRECTORY = $$PWD/bin/release
}
我下载的的怎么没有bin文件呢?
我是一头雾水,能再给说说吗?谢谢
离线liuligang88

只看该作者 8楼 发表于: 2016-01-13
回 ysu533 的帖子
ysu533:这个很简单, 自带代码里面有一个demo工程,很多实例。
其实特别简单, 就2步就能实现
....... (2016-01-13 08:27) 

哦,真的非常谢谢你。
那个头文件该怎么添加呢?头文件该添加什么?
我看到文档上有一句you must use QtRptProject.pro file,难道工程名必须命名为QtRptProject.pro 吗?
还有
CONFIG(debug, debug|release) {
DEST_DIRECTORY = $$PWD/bin/debug
}
CONFIG(release, debug|release) {
DEST_DIRECTORY = $$PWD/bin/release
}
我下载的的怎么没有bin文件呢?
我是一头雾水,能再给说说吗?谢谢
离线ysu533

只看该作者 9楼 发表于: 2016-01-15
回 liuligang88 的帖子
liuligang88:哦,真的非常谢谢你。
那个头文件该怎么添加呢?头文件该添加什么?
我看到文档上有一句you must use QtRptProject.pro file,难道工程名必须命名为QtRptProject.pro 吗?
还有
....... (2016-01-13 09:42) 

这个工程很简单啊, 没道理搞不定啊。 直接用 qt creator 打开pro文件,编译就行了。 没有任何特殊之处。

对了如果是vc编译器,可能里面那几个c文件中的inline 有点问题,
#define inline  __inline
即可解决。

如果实在搞不定,加我qq吧(35031694)
快速回复
限100 字节
 
上一个 下一个