找回密码
 立即注册

QQ登录

只需一步,快速开始

win01

中级会员

5

主题

13

帖子

868

积分

中级会员

积分
868

活字格认证

win01
中级会员   /  发表于:2013-10-14 17:37  /   查看:6884  /  回复:9
ActiveReports COM使用中的几个问题,求助一下:

1.ActiveReports COM 可否获取Spread8.0 COM中的数据?

2.ActiveReports COM 可否实现如下的报表格式:


  如图中,红圈1和红圈2分别是从数据库中两个不同表读取的数据,如何实现?

3.ActiveReports COM 可否动态设置指定控件的数据,如通过点击界面上按键来设置报表界面中的控件值,就像下面这样的?

ActiveReports.Field1.Text = "123"

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

9 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-10-14 17:58:00
沙发
1、ActiveReports 不能直接将 Spread 作为数据源,需要将 Spread 数据转换为 ActiveReports Com 支持的数据源
2、通常该需求是在数据查询时通过表连接来实现的,比如 SELECT T1.*, T2.* FROM Table1 T1 INNER JOIN Table2 T2 ON T1.Col1 = T2.Col2,然后将查询的 DataTable 作为AR数据源
3、无法在运行时点击每个单元格进行赋值,这是Spread的功能
回复 使用道具 举报
win01
中级会员   /  发表于:2013-10-14 19:15:00
板凳
回复 2楼dof的帖子

dof:你好!
   那字段显示可以通过查询语句的结果来设置字段的字段颜色,如PASS时,显示绿色,FAIL时,显示红色?
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-10-15 09:13:00
地板
这个是可以实现的,你可以在放置该TextBox区域的Detail事件中根据值来动态设置其字体颜色,比如PageHeader的Format

  1. Private Sub PageHeader_Format()

  2. End Sub
复制代码
回复 使用道具 举报
win01
中级会员   /  发表于:2013-10-15 10:29:00
5#
回复 4楼dof的帖子

dof:你好!
    再问一下,就是我想实现这样一个功能,就是通过不同的SQL查询条件来生成报告,如:我做好了一个rptRDF.RPX模板文件,当用户设置好查询条件时,点击查询按钮,根据查询条件中生成的查询语句来改变模板中的数据源直接生成报告。
    现在有几疑问请教一下:

    1.当查询条件变化时,使用同一个模板的情况下,如何直接通过窗体中的按钮生成的条件语句来直接通过模板生成PDF报告。

    2.当查询条件变化时,选择数据源不同时,如何先加载模板文件,再通过条件语句来生成报告。

    3.模板文件中可否加入条件判断,如通过字段值来设置字体颜色。(是模板文件中噢,不是在程序代码中,例如上面问到的)。

    4.过条件语句来生成报告时,可否在后台直接生成报告文件,不用在界面中显示viewer打印阅览窗口。

希望能给一个事例最好!这个功能对于我们来说很重要!谢谢!
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-10-15 11:22:00
6#
你可能还没有试用AR COM产品,我建议你先下载试用,因为你提到的部分功能有现成的示例
同时,你是用VB6进行开发吗,如果是 .NET 平台开发,我将以你使用 AR for .NET 7 ,你提供到的这些功能在AR7中都能实现

1.当查询条件变化时,使用同一个模板的情况下,如何直接通过窗体中的按钮生成的条件语句来直接通过模板生成PDF报告。
数据源设置参考第二个问题的回答,导出PDF方法可以参考AR COM帮助文档中 PDF Export Filter章节

2.当查询条件变化时,选择数据源不同时,如何先加载模板文件,再通过条件语句来生成报告。
可以参考 AR COM 安装之后自带的示例工程,C:\Program Files (x86)\Data Dynamics\ActiveReports Pro\Samples\Visual Basic Samples\SecureMDB,该工程演示了如何动态绑定数据源

3.模板文件中可否加入条件判断,如通过字段值来设置字体颜色。(是模板文件中噢,不是在程序代码中,例如上面问到的)。
在AR COM中只能编码实现,在AR for .NET 7中可以在模板中设置

4.过条件语句来生成报告时,可否在后台直接生成报告文件,不用在界面中显示viewer打印阅览窗口。
“直接生成报告文件”是指直接导出报表吗,AR COM提供了PDF、Excel、txt等格式文件的导出
回复 使用道具 举报
win01
中级会员   /  发表于:2013-10-15 11:45:00
7#
回复 6楼dof的帖子

dof:你好!
    非常感谢你的真诚回复,有可能我的描述不是很清楚。
自带的示例我都已经看过,包括下面这个“C:\Program Files (x86)\Data Dynamics\ActiveReports Pro\Samples\Visual Basic Samples\SecureMDB "但是还是达到我要找的功能。
上面这个事例在生成报告的同时,是先弹出打印界面,而我要实现的是在From1界面中,用户通过选择查询条件,点击“开始查询”按钮,通过查询结果生成多条查询语句循环的通过AR COM改变数据源在后台通过调用模板文件直接生成PDF报告(这个过程是不用显示给用户界面的)。

  1. Dim rptTemp As ActiveReport
  2. Dim oPDF As ActiveReportsPDFExport.ARExportPDF
  3. Set rptTemp = New ActiveReport
  4. Set oPDF = New ActiveReportsPDFExport.ARExportPDF

  5. rptTemp.LoadLayout "C:\Report1.rpx"
  6. rptTemp.Run

  7. Dim oPDF As ActiveReportsPDFExport.ARExportPDF
  8. Set oPDF = New ActiveReportsPDFExport.ARExportPDF

  9. oPDF.FileName = "c:\sales.pdf"
  10. oPDF.Export rptTemp.Pages
复制代码


上面的代码就是我想要的一个思路,功能也可以实现,但是C:\Report1.rpx模板文件有一个name为DataControl1的数据源(如下图所示),
我想在rptTemp.LoadLayout "C:\Report1.rpx"后,重新设置一个SELECT语句,如 SELECT *  FROM Uy_Sell where id=1,然后再rptTemp.Run生成
"c:\sales.pdf",现在就是不知道DataControl1的数据源如何修改,还有就是如何知道报告是否导出成功和完成?



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-10-15 15:41:00
8#
1、在这个示例中,你基本上只需要将 DataControl1.RecordSource 改写到 ActiveReport_ReportStart 中,并根据用户选择的查询条件动态生成查询语句的 Where 子句,现在的做法是在报表设计阶段设置 DataControl1 的RecordSource属性
2、没有方法来监控报表导出的进度,只有执行到 Export 下一行代码时,报表导出就结束了,也就是说Export是同步执行的
回复 使用道具 举报
win01
中级会员   /  发表于:2013-10-15 16:02:00
9#
回复 8楼dof的帖子

dof :你好!
    你还是没有明白我的意思,我是在下面的代码中,如何修改数据源。

Dim rptTemp As ActiveReport
Dim oPDF As ActiveReportsPDFExport.ARExportPDF
Set rptTemp = New ActiveReport
Set oPDF = New ActiveReportsPDFExport.ARExportPDF

rptTemp.LoadLayout "C:\Report1.rpx"

在这里的时候,如何修改rptTemp的查询语句?也就是如何设置DataControl1.Source,代码如何写?然后再生成报表,ActiveReport是通过DIM定义的。


rptTemp.Run


oPDF.FileName = "c:\sales.pdf"
oPDF.Export rptTemp.Pages
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-10-15 16:45:00
10#
在设计报表时就添加好DataControl控件,然后在运行报表时访问该控件并设置相关属性,在加载 rptTemp.LoadLayout "C:\Report1.rpx" 之后可以访问 rptTemp.DataControl1.RecordSource 以及其它属性。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部