zoukankan      html  css  js  c++  java
  • Qt开发环境中使用报表控件FastReport遇到的一些问题(一)

    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找不到,暂时不清楚原因,稍后解决。

  • 相关阅读:
    CSU software 新手练习1 解题报告
    HDU 4067 Random Maze
    HDU 1853 Cyclic Tour
    Notepad++搭配MinGW编译运行C,C++程序
    ACM POJ3299-Humidex
    开始正常的做题了=。=
    写在杭电热身赛2之后
    大二了~
    Vim 学习笔记之cvim hot key
    The 10th Zhejiang Provincial Collegiate Programming Contest
  • 原文地址:https://www.cnblogs.com/andy65007/p/3776493.html
Copyright © 2011-2022 走看看