标签:c style class blog code java
FastReport是一款优秀的报表控件,由俄罗斯开发,国内有代理商。Qt环境下可实现报表功能的还有一款叫NCReport,也是收费控件,比较来比较去还是觉得前者功能强点。
网上讲解此控件在Qt中使用的文章比较少,故在此做下记录:
概述:
1. FastReport版本有VCL, .NET, COM/ActiveX,
Mono等等,其中Qt下使用只能使用COM/ActiveX版本。
2.
网上破解版有3.2,4.5和最新的4.9(2014年),3.2这个版本貌似功能不全,Qt下老报错;4.9版本可以正常使用。
3.
安装FastReport
Studio后就可以在Qt中使用QAxObject对象访问此COM对象了。如果部署机器没有FastReport,需要照
FastReport文档中Deploy一节部署,包括拷贝需要dll和语言文件,regsvr32注册,修改注册表中语言配置等步骤。
4.
根据FastReport官方文档显示,国内授权的经销商有3家,其中一家的官网还打不开,如果购买主要可以考虑重庆慧聪空间网,
根据授权类别,价格从几千到数万不等。
5.
官方文档没有指出初始化控件需要提供的参数。根据Qt文档中指出,使用Guid{4764040e-4222-4dec-9f2e-82d46e212b3a}初始
化COM最快,其次是使用COM名称FastReport.TfrxReport。
功能说明:
1. 报表中主要使用两类对象,一个是band,一个是text
object。band作用即把打印内容按逻辑分类;text用于显示文字。
2.
使用中括号[]括起来的标示变量,工具栏中有个fx图样按钮可以打开变量编辑框。
3.
COM对象的接口,方法,属性等信息可以使用Qt自带的dumpdoc工具生成。
4. hello world代码举例:
1 QAxObject object("{4764040e-4222-4dec-9f2e-82d46e212b3a}", this); 2 3 object.dynamicCall("LoadReportFromFile(QString)", "test.fr3"); 4 QVariantList params ; 5 params<<"my_var"<<"123"; 6 object.dynamicCall("SetVariable(QString, QString)", params); 7 object.dynamicCall("ShowReport()");
备注:上面代码中my_var是报表设计器中指定的报表变量,此示例代码先初始化FastReport COM控件对象,然后加载使用报表设计
器设计的一个报表test.fr3,
然后使用Qt代码从Qt给报表传输值,最后显示报表内容。经测试,给变量my_var赋值123报表可正常
显示,如果换成纯英文字母就报错了,提示Expression找不到,暂时不清楚原因,稍后解决。
Qt开发环境中使用报表控件FastReport遇到的一些问题,布布扣,bubuko.com
Qt开发环境中使用报表控件FastReport遇到的一些问题
标签:c style class blog code java
原文地址:http://www.cnblogs.com/andy65007/p/3776493.html