找回密码
 立即注册

QQ登录

只需一步,快速开始

jessie

银牌会员

29

主题

85

帖子

2482

积分

银牌会员

积分
2482

活字格认证

jessie
银牌会员   /  发表于:2011-10-19 11:58  /   查看:7060  /  回复:6
active report的接口可否实现自动生成一个报表的功能?就是本来我这个reportForm里面没有这个标签或者textbox,程序里动态加载实现呢?

6 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-10-19 12:16:00
沙发
可在报表的ReportStart事件中来进行动态添加控件:
  1.         private void rptTest_ReportStart(object sender, EventArgs e)
  2.         {
  3.             DataDynamics.ActiveReports.TextBox tb = new DataDynamics.ActiveReports.TextBox();
  4.             tb.Location = new PointF(1, 0);
  5.             tb.Text = "test";
  6.             this.pageHeader.Controls.Add(tb);
  7.         }
复制代码
回复 使用道具 举报
jessie
银牌会员   /  发表于:2011-10-19 12:29:00
板凳
我安装完ap之后看自带的sample样例,其中有一个样例是使用xml文件重新定义报表的风格的,但是好像xml里面定义的项目必须是ap报表原来就已经存在的,只是改变了各个控件的显示风格。ap有没有提供类似的接口从外部装载一个xml文件,自动生成一个报表。
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-10-19 14:01:00
地板
可以将设计好的报表保存为rpx格式,然后在代码中加载白报表:
  1. private void LoadRPX()
  2. {
  3. DataDynamics.ActiveReports.ActiveReport rpt = new DataDynamics.ActiveReports.ActiveReport();
  4. rpt.LoadLayout(@"C:\NewRPX.rpx");
  5. viewer1.Document = rpt.Document;
  6. rpt.Run();
  7. }
复制代码
该方法的前提是有现成的rpx文件,而不是由任意的xml文件来生成
回复 使用道具 举报
jessie
银牌会员   /  发表于:2011-10-19 19:12:00
5#
执行 this.pageHeader.Controls.Add(tb);
的时候报错,说report start之后增加删除控件不可。
回复 使用道具 举报
jessie
银牌会员   /  发表于:2011-10-19 19:23:00
6#
不好意思我方错地方了,我方到page_start里面了,现在有一个新问题,的代码如下

    Private Sub _rptPage_ReportStart(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.ReportStart
                   Dim tb As New DataDynamics.ActiveReports.TextBox()
            Dim pf As New System.Drawing.PointF(1, 1)
            tb.Location = pf

            tb.Text = "text1"

            Me.PageHeader.Controls.Add(tb)

        Next
    End Sub
-------------------------------------------------------------------------------------------



        Dim rpt As New rptPage()
        rpt.SetData(rptData)
        rpt.Run()

        Dim tifExporter As New DataDynamics.ActiveReports.Export.Tiff.TiffExport
        tifExporter.Export(rpt.Document, "d:\page.tiff")

------------------------------------------------------

这样打印出来的 tiff 文件是空白,看不出添加的控件。
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-10-20 09:39:00
7#
你可以在应用程序中查看动态添加的控件是否能够显示,然后再进行导出操作,这样便于定位问题。

我通过以上方式动态添加控件,然后在程序中可以显示,而且可以导出tiff之后也是同样的显示。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部