FastReport for .net 学习笔记

C# 使用FastReport.NET打印报表 文章目录一、设计报告单1.给报告单添加数据源Data Source1.1 代码中注册数据源1.2 报告单中选择数据源2.设置数据区域的单元格自动高度打印报告单代码示例 FastReport.NET官方下载地址:https://www.fast-report.com/en/download/fast-report-net/ 要打印的报告单格式如下: 一、设计报告单 安装完FastReport.NET后,就可以设计报告单,要设计的报告单格式如下: 1.给报告单添加数据源Data Source 1.1 代码中注 阅读详情

给报表赋数据源的两种方式

(一) 通过程序给报表注册数据源。
     这种方式中,模板中不能有数据源,否则给报表注册数据源时会出错
     这种方式中,用户不方便建模板,且不容易更改模板
     这种方式中,程序可以很灵活的对数据源进行处理,然后再把处理过的数据源注册给报表

            //获取数据集
            string strConn = "data source=(Local);initial catalog=Hotel;user id=sa;pwd=;connect timeout=120";
            string strSql = "select a.Rno,cast(a.BuildID as varchar(2))+'-'+c.BuildName as BuildName,a.Floorid+'-'+ b.FloorName as FloorName,a.Rtp+'-'+ d.cnm as RtpNam,a.RRT"+
                " from rmst as a left join [floor] as b on a.floorid=b.floorid left join build as c on a.buildid=c.buildid left join stt as d on a.rtp=d.rtp";
            SqlDataAdapter sda = new SqlDataAdapter(strSql, strConn);
            DataSet ds = new DataSet();
            sda.Fill(ds, "RoomInfo");

            //加载报表
            Report report = new Report();
            report.Load(Application.StartupPath + "\\Report\\rptRoom.frx");

            //给报表注册数据
            report.RegisterData(ds.Tables["RoomInfo"], "RoomInfo");

            //绑定数据到数据区域
            DataBand band = report.FindObject("Data1") as DataBand;
            band.DataSource = report.GetDataSource("RoomInfo");

            this.previewControl1.BringToFront();

            report.Preview = this.previewControl1;
            if (report.Prepare())
                report.ShowPrepared();

FastReport传送连接串的三种方式

(二) 建模板时,建立好数据源(可通过SQL语句等),然后在程序中给模板传递参数
     这种方式中,用户建模板,修改模板简单。但因为数据源是定的,因此不是特别灵活。(比如在一个已查询出的记录集中,想手工再往里面添加点东西就办不到)
    
     给模板传递连接参数有以下三种方式

1.直接传送一个连接字符给报表的连接对象( 加载之后,运行之前)
  report1.Load(...);
  report1.Dictionary.Connections[0].ConnectionString = my_connection_string;
  report1.Show();

2.通过报表参数传递
  2.1 运行报表设计器
  2.2 在数据窗口中,创建一个新的报表参数 如 ConnStr
  2.3 在数据窗口中,选择连接对象,然后切换到属性窗口,设置 ConnectionStringExpression 属性中,选择刚才建设好的参数
  2.4 在程序中给参数赋值

            Report report = new Report();
            report.Preview = this.previewControl1;
            report.Load(Application.StartupPath + "\\Report\\rptRoom2.frx");
            report.SetParameterValue("ConnStr", textBox1.Text.Trim());        //通过参数给报表的连接串赋值
            this.previewControl1.BringToFront();
            if (report.Prepare())
            {
                report.ShowPrepared();
            }

3.利用EnvironmentSettings控件的DatabaseLogin事件(此事件每当报表连接数据库时都会发生)
  3.1 在窗体中拖入一个EnvironmnetSettings控件
  3.2 此事件是全局的,对所有模块内的报表都有效
  3.3 此控件的DatabaseLogin事件如下

        private void environmentSettings1_DatabaseLogin(object sender, DatabaseLoginEventArgs e)
        {
            e.ConnectionString = textBox1.Text.Trim();
        }

 

附:

(一)给报表传送查询语句 (加载后,运行前操作)

using FastReport.Data;

report1.Load("报表路径");
TableDataSource table = report1.GetDataSource("MyTable") as TableDataSource;    //MyTable 即模板中表的名字
table.SelectCommand = "new SQL text";                                           //如果报表中含有多张表时,可采用此方法,给多张表指定查询语句
report1.Show();

(二)查询并访问报表中的控件(报表对象引用)

            if (this.previewControl1.Report != null)
            {
                Report report = this.previewControl1.Report;
                TextObject txt = report.FindObject("TextTitle") as TextObject;
                if (txt != null)
                {
                    MessageBox.Show(txt.Text);
                    txt.Text = txt.Text + "写";
                    report.Show();
                }
            }

(三)从报表中获取数据(报表对象引用)

            if (this.previewControl1.Report != null)
            {
                Report report = this.previewControl1.Report;

                DataSourceBase ds = report.GetDataSource("Table");

                if (ds != null)
                {
                    MessageBox.Show(ds.RowCount.ToString());
                }
            }

(四)关于报表总页数显示

    一定要在报表--选项--双通道打上勾。否则显示的总页数为0


(脚本相关)

<基础>

1报表对象房问(可直接把对象拖到脚本区,系统会自动生成此对象的脚本)
   
1.0>返回数据表  DataSourceBase ds = Report.GetDataSource("Products"); (参数为表名)   
1.1>房问数据列  Report.GetColumnValue("Products.Name");   (参数为表名.列名)

2系统变量访问

2.0>DateTime date = (DateTime)Report.GetVariableValue("Date");(参数为数据窗口,系统变量下的各个变量)

3合计值的访问

3.0>float a= Report.GetTotalValue("Total")   //因为只有数值才能有合计,所以这里不用转换

4变量的访问  (变量是可以嵌套定义的)

4.0>int myParam = (int)Report.GetParameterValue("MyParameter");

4.1>int myParam =(int)Report.GetParameterValue("ParentParameter.ChildParameter"); (对嵌套变量的访问,采用父参数名.字参数名方式)

4.2>Report.SetParameterValue("MyParameter", 10);    (设置变量值)

<应用>

<1> 隔行变色效果 (用到数据栏的事件BeforePrint,获取系统变量方法GetVariableValue  系统变量Row#)
    private void Data1_BeforePrint(object sender, EventArgs e)
    {
      if (((Int32)Report.GetVariableValue("Row#")) % 2 == 0)
        Data1.FillColor = Color.Gainsboro;
    }

<2> 根据某列的内容,更改此列的颜色样式或者其他列的显示
    (Text9 为报表中的数据列控件.用到控件的BeforePrint事件,获取控件值的方法GetColumnValue(参数为表的列名))
    private void Text9_BeforePrint(object sender, EventArgs e)
    {
      if (((Decimal)Report.GetColumnValue("Table.RRT")) > 200)
      {
        Text9.TextColor = Color.Red;
        TextObject to=Report.FindObject("Text7") as TextObject;
        to.Text=Report.GetColumnValue("Table.RtpNam").ToString()+"(有点贵)";
      }
    }

<3>数据过滤

    private void Data1_BeforePrint(object sender, EventArgs e)
    {
      if (((Int32)Report.GetVariableValue("Row#")) % 2 == 0)
        Data1.FillColor = Color.Gainsboro;  
      if (((Decimal)Report.GetColumnValue("Table.RRT"))<=200)    //过滤
         Data1.Visible=false;
    }

Fastreport安装及简单使用 fastreportVCL与.NET安装 阅读详情

相关推荐

使用FastReport.net 报表在网页上实现打印功能

这些年的工作当中,最早是在8年前接触到FastReport这个报表工具,从名字上来看,直译过来就是快速报表,正所谓天下武功,唯快不破,FastReport报表早些年确实是制作报表的不二之选,8年前的工作中,涉入到了医疗行业,项目中要使用FastReport.net 打印基因检测报告,效果确实是满足了项目要求。 最新版FastReport.net支持.net core 鸡肋的FastRepo...

weixin_33725807的博客 3552

FastReport Table列中循环显示另一个DataTable数据源中的某个值

一、使用场景: fastreport的table1中循环显示数据源dataTable1,其中列col3(控件名称Cell3)需要循环显示DataTable2中的wtmc字段; 二、FastReport脚本 stringwtmc = "" ; private void Page2_StartPage(object sender, EventArgs e)...

3721

FastReportNET报表中文手册(20170908)

FastReportNET报表中文手册(20170908) 最新官方中文手册,适用于Web端的报表设计,打印,预览等功能,功能十分强大。

FastReport.Net教程大全

FastReport.Net适用于那些使用Microsoft Visual Studio 2005/2008/2010,Delphi Prizm开发工具的开发人员。本文将对FastReport.Net报表控件的使用方法作简要介绍。 如何在FastReport.Net中创建数据源和SQL查询 在FastReport中你可以非常轻松的创建数据源,由于FastReport自带的数据向导,只需要跟着对

IBigPig 6822

FastReport.NET 2021 版 全中文使用手册

最新版官方翻译手册。

FastReport.NET 用户手册2023(中文版)

2023最新版报表开发工具——fastreport中文开发手册大全 都是中文版本的手册,私我免费获取~

FastReport .NET 2025.1.1 Crack

FastReport .NET Library for generating reports and creating documents for .NET 8, Blazor, .NET Core, ASP.NET , MVC and WinForms. It can be used in Microsoft Visual Studio 2022 and JetBrains Rider environments.

控件与插件之大全 2687

FastReport.NET中文用户手册2019.pdf

fastreport.net新版中文教程,方便进行报表设计,对fastreport.net的功能进行全面的解释。

FastReport VCL与FastReport.NET到底选谁?

FastReport VCL与FastReport.NET同为老牌报表控件FastReport公司的主打产品,受到中国报表开发者广泛使用和赞誉,那么要怎么在FastReport.Net(以下简称FR.Net)和FastReport VCL(以下简称FR.VCL)中做出选择呢?本文将一一为您做出解答。 相信了解FastReport公司历史的人都知道: .net版本的FastReport报

小航爱分享 2157

FastReport.Net for .net 4.0 V2013.2.5 破解版

FastReport.Net是一款功能齐全的报表分析解决方案。使用它您可以简单实现连接任何数据库,在报表中添加会话表,管理会话表,查看结果、打印结果及导出结果到常用文档格式。 特点:版本为FastReport.Net V2013.2.5 For .Net4.0 已去除导出与打印5页限制,去除导出与打印所带的DEMOVERSION水印. 如果要集成到VS开发环镜,去官网下个DEMO先安装,然后再复盖破解版本 本软件自带多语言版本,所以无需汉化。

FastReport.Net V2013.2.5 For .Net4.0(绿色破解版)

FastReport.Net V2013.2.5 For .Net4.0 绿色版本,不需要安装 已去除导出与打印5页限制,去除导出与打印所带的DEMOVERSION水印.

FastReport Studio 和 FastReport.net 用法

我个人理解FastReport Studio 和 FastReport.net 区别在于:a、前者是独立的报表工具,可通过com接口基于.net的WinForm的程序开发:1、首先在Studio中设计模板2、在vs中引入com3、在vs里调用并整理数据源bindb、后者是基于.net web开发的控件使用和Delphi中的fr

会飞的鱼的专栏 7277

YOLOv5实战:无人机巡检图片差异对比与违建标记(附完整代码)

本文详细介绍了如何利用YOLOv5目标检测技术实现无人机巡检图片差异对比与违建标记。通过图像对齐、目标检测、差异分析和可视化标记四个步骤,构建高效的违建识别系统,显著提升城市管理效率。文章包含完整代码实现和性能优化技巧,为计算机视觉在无人机巡检中的应用提供实用指南。

weixin_42535720的博客 281

FastReport.Net的使用

。

2328

PP触发EWM产生PMR捡配

PP触发EWM产生PMR捡配 前言 PMR: Production Material Request 在流程订单/生产订单下达后,可以在EWM中产生PMR,在EWM中, PMR其实代表了ERP中的流程订单/生产订单。 You can use SAP EWM in conjunction with the following PP application components: • Production Orders • Process Orders • Repetitive Manufacturing •

ZevYang的博客 1918

手把手教你用RC桥式振荡器生成1Hz-1MHz正弦波(附完整电路图)

本文详细介绍了如何从零构建RC桥式振荡器,实现1Hz-1MHz正弦波的生成。通过核心元件选型、参数设计、电路搭建与优化等步骤,帮助读者掌握振荡器的工作原理和实战技巧。特别适合电子实验和信号处理领域的初学者和工程师,附完整电路图和常见问题解决方案。

weixin_30338481的博客 467

FastReport .NET & FastReport.Core Crack

  Key Features of FastReport .NET :  It functions along with the information obtained from the ADO.NET and is allowed to filter and sort the columns of data being researched, utilized along with their information rows. Everything can be accomplished with t

q2315702359的博客 1651

零基础也能懂的Arduino ESP32离线安装包图文教程

手把手教你完成Arduino ESP32离线安装包的配置,无需联网也能快速搭建开发环境,适合初学者和网络受限用户,轻松实现arduino esp32离线安装包部署。

weixin_36213081的博客 2672

FastReport .NET报表工具:5分钟创建专业报表的终极指南

FastReport是一个免费开源的.NET报表生成器,专为.NET 6/.NET Core/.NET Framework开发者设计,能够快速为你的应用程序添加专业级文档报表功能。无论你是开发Web应用、桌面程序还是移动应用,FastReport都能提供强大的报表生成能力,让数据可视化变得简单高效。 ## 🚀 快速入门:从零开始创建第一个报表 ### 一键安装FastReport 安装Fa

gitblog_00184的博客 792

1篇1章3节:R 语言的产生与发展轨迹(更新2024/08/14)

药物的研究阶段包括靶标确定、生物学模型建立、新化学实体的发现和优化新化学实体四个关键环节。每个环节都在药物研发过程中发挥着至关重要的作用。通过科学严谨的方法和技术手段,研究人员能够在药物研发过程中不断探索和优化,从而发现和开发出具有高效、安全性的候选药物,为疾病治疗提供更多的选择和希望。

MD Code 2664

YOLOv13改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进

1️⃣ 已更新种不同的改进方案,专栏内的每篇文章皆,均可顺利运行。2️⃣ 订阅专栏即可进群获取以及从的各种答疑内容。3️⃣ 全新的YOLOv13改进专栏,,只为更好的满足论文发表的要求。专栏内容,专栏实时评分,全网最高,质量保证。🎫。。

Limiiiing的博客 9152

[实践]FastReport.NET使用示例

废话不说直接正题! 1 下载FastReport.NET。网上搜索一下,下载资源一大把,这是收费的,所以我使用了demo版;   注意:FastReport.NET 和FastReport Studio不是同一个东西,别下错了;   FR.NET只支持VS2005/2008;   官网:http://ns.fast-report.com/en/,有说明文档使用手册下载,论坛也很不错,问题解

在键盘上飞舞的日子 1万+

基于深度学习的茶叶等级检测识别系统:YOLOv8 + UI界面 + 数据集完整实现

随着深度学习技术的不断进步,基于计算机视觉的茶叶等级检测系统可以大大提高检测效率,提供客观一致的评估标准。本系统将利用YOLOv8进行茶叶等级的检测与识别,通过图形用户界面(UI)实现与用户的交互,提供茶叶等级分类的实时反馈。本文将详细介绍如何使用YOLOv8结合UI界面,建立一个完整的茶叶等级检测与识别系统,包括数据集的准备、模型的训练、UI的设计及完整的代码实现。本系统的目标是通过深度学习技术,结合YOLOv8模型和图形用户界面(UI),实现对茶叶等级的自动化检测与识别。

YOLO 972

.net core使用fastreport

引入NuGet包:FastReport.OpenSource.Web、FastReport.Compat Startup.cs的Configure中加入: app.UseFastReport(); 新建一个页面,在页面中加入:@await ViewBag.WebReport.Render(); 创建控制器,引用命名空间:using FastReport.Web; 在方法中,加入: public IActionResult UserReport() { var rep

hwj_113946的博客 3487

5G无人机安全研究综述

国内多所高校提出混合信任模型,南京航空航天大学于2020年提出了起源信息感知的无人机网络信任模型[26],模型基于报文的完整性对报文创建和操作节点的行为评判并生成观测证据,收集证据进行信任评估,识别网络中的恶意节点并进行路由隔离,实现准确的对等信任评估。同时,5G技术的高速率、高可靠性、低时延等特点,能够为无人机提供实时高清图像回传,保证通信网络的稳定,拓展无人机飞控距离限制,丰富了5G无人机的应用场景。5G和无人机技术的融合,丰富了传统无人机的应用服务场景,然而5G无人机仍存在安全隐患。

weixin_70923796的博客 765

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

上一篇: 获得对报表文件里的对象(比如TextObject)的引用
下一篇: 转贴:C# 如何为winform打包
cll131421
博客等级 码龄19年 68粉丝 25原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值