FastReport的再次使用

FastReport.Net是一款功能齐全的报表分析解决方案。

前两年工作的时候就是使用FastReport进行报表设计,只是当时使用的时候都是调用别人写好的帮助类,直接调用即可。当时让人觉得不明觉厉。呵呵..不过现在再次需要使用到FastReport进行报表的设计打印,以及与rdlc报表进行对比的。所以再次仅记一次初步的使用。

一、报表的的设计过程

设计模板----加载数据---调用模板生成报表或者打印。基本上大多数的报表都是如是设计的。模板与数据分离,在调用时再将数据绑定到模板上。

二、FastReport的初步使用

使用FastReport设计器承载模板设计和预览

  /// <summary>
       /// 用fastreport设计器承载模板
       /// </summary>
       /// <param name="sender"></param>
       /// <param name="e"></param>
        private void Scan(object sender, EventArgs e)
        {
            DataSet ds = GetDataSource();

            report.Clear();  ///清空报表,不然在窗体第二调用时会带不出报表信息
            if (!File.Exists(frxFile))
            {
                MessageBox.Show("找不到模板:OrderPrint.frx,请先设计模板");
                report.RegisterData(ds);                                        //注册数据
                report.SetParameterValue("TType", "类型");                      //传递参数
                for(int i=0;i<ds.Tables.Count;i++)
                {
                    report.GetDataSource(ds.Tables[i].TableName).Enabled = true;    //手动设为true,不然在设计器中看不到数据对象
                }
                report.Design();           //设计
                return;
            }

            report.Load(frxFile);
            report.SetParameterValue("TType", "类型");
            report.RegisterData(ds);
            report.Prepare();
            report.ShowPrepared();                  //预览显示
        }

当然有时设计FastReport模板不是简单的设计显示,还需要对其后端进行处理

例如数据区的table显示,则需要报表模板后端进行处理:

 private void Table3_ManualBuild(object sender, EventArgs e)
    {
      DataSourceBase data1 = Report.GetDataSource("Detail"); // 获取DataSet中表名为Detail的数据源

      data1.Init(); // 初始化
      Table3.PrintRow(0); // 控件Table1打印第0行

      Table3.PrintColumns(); // 每打印一行,都要调用 PrintColumn或PrintColumns

      while(data1.HasMoreRows) // 打印重复循环的行

      {

        Table3.PrintRow(0);

        Table3.PrintColumns();

        data1.Next(); // 读取下一行

      }

    }

  

使用FastReport提供的控件进行操作:

在【工具箱】---【添加选项卡】---【选择项】--【选择FastReport.dll】。将FastReport控件显示到工具箱中,如下图所示:

可以通过FastReport提供的控件进行报表的操作。

例如使用PreviewControl进行报表的展示与打印:

 private void Print(object sender, EventArgs e)
        {
            DataSet ds = GetDataSource();
            string tType = "类型";
            report.Clear();  ///
            report.Preview = this.PreviewDetail;
            if (!File.Exists(frxFile))
            {
                MessageBox.Show("找不到模板:OrderPrint.frx,请先设计模板");
                report.RegisterData(ds);
                report.SetParameterValue("OrderType", orderType);
                for (int i = 0; i < ds.Tables.Count; i++)
                {
                    report.GetDataSource(ds.Tables[i].TableName).Enabled = true;
                }
                report.Design();
                return;
            }

            report.Load(frxFile);
            report.SetParameterValue("OrderType", orderType);
            report.RegisterData(ds);
            report.Prepare();
            report.ShowPrepared();
            PreviewDetail.Print();    //打印
        }

显示效果就像rdlc的ReportViewer承载显示rdlc报表一样(就不上图了)。

最后

虽然现在只是非常浅简的使用,个人觉得FastReport.net在设计方面还是由于rdlc的,模板设计相对简单,在程序调用方面也比较优秀。但是FastReport.net是收费的。

时间: 2024-10-11 02:15:58

FastReport的再次使用的相关文章

FastReport报表设计

目录 5.1 前言 5.2 基本概念及操作 5.3 报表设计与范例 5.4 常用功能及函数 5.5 报表设计常用技巧 5.1 前言 汽车业务管理系统(VBMS)使用FastReport3.0报表系统设计报表.    本文主要描述使用FastReport设计报表的基本概念.使用方法.设计技巧和范例,不是FastReport的用户手册因此并不针对每个细节进行阐述.立足于建立设计报表的概念和实用技巧范例的讲解,面对的是具有一定计算机操作水平的用户.在VBMS中使用FastReport设计报表应该掌握以

FastReport.net 常用方法

之前说起过FastReport.NET这款报表工具的使用,但当时主要是从程序的角度,示例了在B/S架构下的相关使用,但报表终归还是要划到设计的范畴里来,毕竟能够将报表的内容展示在客户的眼前,这才是报表的根本目的,而诸如打印.转换格式个人觉得应该算是锦上添花的功能吧. 而随着报表设计的复杂,问题自然也就增多了,没办法,硬着头皮上官网下点文档吧. 这里将遇到的一些小问题汇总如下,自己做个记录,需要的朋友也可以省点“阅读理解”的时间哈... 一.页面设置 情景:FastReport设计器页面默认设置为

FastReport报表设计(仔细看)

FastReport报表设计 2011-06-16 16:56:19|  分类: 系统开发|举报|字号 订阅 下载LOFTER我的照片书  | 目录 5.1 前言 5.2 基本概念及操作 5.3 报表设计与范例 5.4 常用功能及函数 5.5 报表设计常用技巧 5.1 前言 汽车业务管理系统(VBMS)使用FastReport3.0报表系统设计报表.    本文主要描述使用FastReport设计报表的基本概念.使用方法.设计技巧和范例,不是FastReport的用户手册因此并不针对每个细节进行

一周死磕fastreport ----ASP.NET (一)

https://blog.csdn.net/wuyuander/article/details/52692435 原文链接,点击跳转 首先是安装好FastReport .net: 然后在vs2012中,项目中引用 FastReport.dll.FastReport.Bars.dll.FastReport.Web.dll: 接下来就是如何把空间放置到vs2012的工具箱中: 然后选择.net framework组件,将astReport.dll.FastReport.Bars.dll.FastRe

如何在FastReport VCL 6中使用Guides引导线

[下载FastReport VCL最新版本] 每个报表设计人员都会遇到需要在同一级别安排控件或一次拉伸一组元素的情况.有必要每个成员彼此调整.这需要时间,有时甚至是很花精力.在之前的FR VCL版本中,我们提供了一个网格来帮助定位对象,以及有助于将对象与其他对象平行展开的线条. 在Fast Report VCL 6中,还有另一个用于定位对象的工具--Guide line.它允许您在网格中添加任意的垂直和水平线,这有助于平行对齐对象.但它们的主要特征是对象被附加到行的边界.通过移动附加的线条,您可

【FastReport教程】在报表的预览模式下复制或删除页面

下载FastReport.Net最新版本 在FastReport 2018.4中,出现了一个非常有趣的功能 - 在预览模式下复制和删除报表页面.也就是说,您可以选择特定的报表页面并根据需要多次克隆,或删除所选页面.在这种情况下,对模板本身没有影响.即使你只有一页,要使一切恢复到原始状态 - 只需再次构建报表. 例如,如果要打印报表以及多个实例中所需的任何特定页面.相反,不想打印的某些页面,在打印设置中,您可以选择所需的页码.但你必须记住这些数字.这不是很方便.使用新功能,您可以添加所需的页面.

如何在FastReport.Net中使用SQL函数

下载FastReport.Net最新版本 要在MS SQL中获取数据,可以使用sql查询,存储过程和存储函数,之前我们已经讨论了如何使用动态查询和存储过程作为报表数据源,在本文中,我们将创建一个表和标量函数,并在报表中使用它们,表函数返回表,标量函数返回单个值.首先,在MS SQL中创建一个表函数: USE [testdb] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ===============================

如何提问问题?--《提问的智慧》再次推荐

下午在某群中有位网友A问: "大神们,问你们个问题,我在虚拟机里装了个服务器,怎么去配IP啊" 下面网友BC唏嘘了几下,网友B表示震惊,网友C表示"Google一大把"的. 但也有好心网友E回复说"控制台进去配",继而网友A就问"能远程?",网友E说"控制台",并截图(以VMware为例)示意. 网友C表示"这种问题也要人远程?未免太懒了点吧  自己搜索答案  又不是什么高深的问题  "

在Hadoop集群实施成功后再次格式化名称节点,datanode无法加入集群的处理办法

格式化namenode后,通过jps可发现datanode没有启动成功,查看datanode上的日志/home/wukong/usr/hadoop-1.2.1/logs/hadoop-wukong-datanode-bd12.log,可以发现是namespaceid不对. 解决办法: 1.查看namenode上hadoop.tmp.dir参数路径 /usr/hadoop-tmp/dfs/name/current/VERSION中的namespaceid: 2.在其他数据节点上修改上dfs.dat