基于fastreport监测数据报表设计

基于fastreport监测数据报表设计
基于fastreport监测数据报表设计

基于fastreport监测数据报表设计

丁占春,马保卫

河海大学测量系,南京(210098)

E-mail:dingzc@https://www.360docs.net/doc/ec4556071.html,

摘要:本文在分析监测数据报表常用形式的基础上,介绍了如何利用fastreport进行报表设计的一般步骤和方法。

关键词:监测数据,报表设计,fastreport

1.引言

各种监测工作中,监测数据整理、上报是一项重要而繁杂的工作,报表是最常用的一种表现形式。目前报表制作设计的工具和方法很多,生产中最常用的是基于Office办公软件尤其是Excel,这是一种处理灵活、功能强大的解决方案。但EXCEL为了突出灵活性,放宽了安全性与封装性,使得源代码暴露无遗,EXCEL的拖拽操作使得误操作概率提高,另外一些比较复杂的处理算法仅使用EXCEL现有函数还很难解决,需要借助VBA扩展功能或OLE技术。除了EXCEL就是某些测绘软件自身带的报表功能,针对特定方向制作的报表样式,这种报表属于固定的模板,人为干预有限,在保证了安全性与封装性的同时,削弱了灵活性,难以普遍适应各生产单位对数据报表的特殊要求。综合上述情况,对于从事监测数据处理人员,学习和掌握一种易学好用的报表制作工具变得非常必要。本文介绍如何利用fastreport进行监测数据常用的报表设计。

2. 常见报表形式

一个监测工程,因工程特点要设置至少一种监测项目,如沉降量监测、变形量监测、应力应变监测、倾斜监测等等,因项目的不同,监测方法与取得的监测数据也各不相同,但综合分析可以发现,各种不同的监测数据在构成上大体一致,一般由四部分构成:位置、时间、测值、属性,这使得在各种不同监测数据在整理的时候可以按着基本统一的思路来对待,进行报表设计也趋于统一,只要对局部调整即可实现全局的适用性,这为报表的设计减少很多工作量。

正因为各种监测数据在构成上基本一致,可以统一地进行报表形式的规划,一般采用表格与图形的表现形式,包括以下几种。

(1)监测数据“流水帐”式报表。这种报表主要按着监测点位数据采集的先后顺序,完整反映所有数据的全部信息,不对时域、值域限制,属于监测数据的原始表现,主要用于数据的检查与备份。

(2)日、周、月、年表格报表。这种报表是按着监测点对监测数据分时段列表,反映各时域内监测信息。这类报表使用频繁,在时间特征上表现整齐,方便对数据的按期归档,属于在原始数据的基础上分组表现。

(3)同一监测点在不同时间段的数据对比表格。这种报表是按监测点对监测数据在不同时段值的对比列表,与前述2不同,这种表一般设计成交叉式,对比效果直观明了。

(4)同一时间段的不同监测点数据对比表格。这种报表是按时间段对不同监测点的监测数据进行对比列表,与前述3类似,这种表也常设计成交叉式,可以清楚表现差异。

(5)监测数据“从属式”报表。这种报表是按某一项列表,同时对该项进行详细描述。

主要用于对监测数据的主次式表达。

(6)测值过程曲线图。这种图形描述监测值随时间过程的变化曲线,经常使用,能很

好地反映测点上监测项目的变化趋势。

(7)测值分布图。这种图形描述监测值在空间或时间上的分布态势,常用于统计分析。

(8)测值相关图。这种图形描述不同监测项目的监测值相关性,常用于监测量相关性

分析。

(9)基本统计参数。这类值主要伴随前述报表产生,如最大值、最小值、平均值、总

和等,这类值对于整体认识监测数据的特征非常有意义。

3. 报表设计方法

3.1 FastReport报表特点

FastReport是以Delphi为基础并面向Delphi用户的高弹性报表设计器,但并不意味着用户

要有足够的Delphi知识才可以使用FastReport报表,只要掌握几个简单的Delphi语句就可以让FastReport报表近乎独立的设计与使用。用于报表的数据可以从任何类型的数据源获取,包

含字符列表,BDE数据库,ADO数据源,InterBase(使用IBO),Pascal数组和记录,以及一

些不常用的数据源。FastReport开发速度快,灵活性、封装性好,支持预览窗口,具有高品

质的外观,可以设计出非常专业的用户界面[1]。

构建报表包括四部分内容:数据源、参数设置、界面设计、脚本代码。如图1所示。

图1 fastreport报表构成

3.2报表的设计过程

(1)准备数据源。数据存放在数据库中最安全可靠,操作最高效。鉴于前述监测数据

的构成特点,设计合理的数据库表结构,建议以监测项目为表单元。以沉降监测为例,创建

沉降监测表:

表1 沉降监测数据库表设计

沉降点观测日期高程值属性

Real Memo String DateTime

(2)连接数据源。在调用报表的窗体上放置一个TfrReport控件,双击可以打开报表设

计器;设计器的第一个界面是个空白的报表页,为了引入数据库数据,添加一个Form窗体,此处选择BDE数据库,固在上面放置一个Database与若干Table、Query控件。将Database

控件与数据源连接,将Table、Query与Database连接。对Table可以选表操作,对Query

可以查询操作,查询语句可以完成各种复杂的数据查询,得到一组数据集。

(3)界面设计。界面设计要结合期待的报表形式特点进行合理的布局,对于前述的几种报表形式都有相应的报表样式规范。比如流水帐式报表宜选择列表式报表,日、周、月报表宜选择分组式报表,监测数据对比式报表宜选择交叉式报表,图形式报表需要借助Chart 控件来实现。所有这些的实现取决于在页面上放置Band对象的种类和位置。FastReport报表的基本元素是包含多行文本的矩形,为Text对象,可以容纳文本、变量、数据字段,或它们的任意组合。界面的美观性,取决于页面上所有对象的合理分布及属性选择。

(4)参数设计。用户可以在报表运行前输入参数来完成复杂的报表要求,比如可以输入显示监测数据的时间范围,报表对象的属性值等,FastReport通过对话框来实现,这些参数在报表运行时得到利用。

(5)脚本代码。脚本代码提高了报表在运行时的灵活性,可以完成各种计算及属性的修改。为了控制报表对象的预定位置,如让Detail Footer显示在最底端,在它的OnBeforePrint 属性中加入“CurY := PageHeight – Height”。

(6)报表显示。非常简单,在放置TfrReport控件的窗体中引发显示事件即可:frmRep.frReport1.LoadFromFile('Myreport.frf');

frmRep.frReport1.ShowReport;

4. 设计举例

(1)周期式报表

对于这类按年、月、日周期性的报表最佳选择是分组式报表。数据源选择多测点、多监测周期的沉降数据,通过在Page1的窗体上放置Table控件与数据表连接。页面设计如图2所示,在Page2页上放置两个Group header来进行分组控制,第一个分组条件设置为按点分组,第二个分组条件设置成按年分组,另放置一个Master data控件用于记录集显示。这样即得到各测点年度的测值列表,如图3所示。

图2 分组式报表设计

图3 分组式报表预览

(2)图形式报表

过程线可以增强可视化效果,主要是在界面设计阶段借助Chart控件来完成。首先用Query控件实现查询SQL:=‘select * from table where DT>:dt1 and DT<:dt2’,其中dt1与dt2为待定参数通过对话框窗体的dateedit进行传递。对Chart的进行系列与取值设置,这里分别设置为Master data里的memo1与memo2,分别为时间与水平位移X值。

图4 查询参数设置图5 Chart控件参数设置

图6 图形式报表预览

5. 结论

监测数据多种多样,利用功能强大的fastreport报表可以快速设计出美观实用的报表,对于监测数据的整编与初步分析有重要帮助。如果要制作更复杂的报表,需要对fastreport 的内部函数及脚本语言深入学习。随着fastreport版本的更新,其功能会更强大,使用也更简单。

参考文献

[1]张青松.《fastreport开发指南》[EB/OL],https://www.360docs.net/doc/ec4556071.html,,2001.12

Report Design for Monitor Data with FastReport

Ding Zhanchun, Ma Baowei

Civil Engineering College, Hohai University, Nanjing,China (210098)

Abstract

This article analyses monitor data report form first, then introduces the general steps and method how to design report with FastReport tool.

Keywords: monitor data,report design, Fastreport

作者简介:丁占春(1980~),男,河海大学硕士研究生,主要从事精密工程测量与变形监测的研究。

FastReport 4程序员手册

FastReport 程序员手册 一、使用TfrxReport 组件工作 1、加载并存储报表 默认情况下,报表窗体同项目窗体构存储在同一个DFM文件中。多数情况下,无须再操作,因而你就不必采用特殊方法加载报表。如果你决定在文件中存储报表窗体或者是数据库的Blob字段(他提供了非常大的弹性,你能够在非编译程序中修改),你必须使用“TfrxReport”提供的加载和存储方法。 function LoadFromFile(const FileName: String; ExceptionIfNotFound: Boolean = False): Boolean; 从一个给定名字文件中加载报表。如果第二个参数等于“True”并且文件没找到,那么他会触发一个异常。如果文件加载成功,他返回“True”。 procedure LoadFromStream(Stream: TStream); 从流中加载报表。 procedure SaveToFile(const FileName: String); 用特殊名称文件存储报表。 procedure SaveToStream(Stream: TStream); 把报表存在流中。 例如: Pascal: frxReport1.LoadFromFile('c:\1.fr3'); frxReport1.SaveToFile('c:\2.fr3'); C++: frxReport1->LoadFromFile("c:\\1.fr3"); frxReport1->SaveToFile("c:\\2.fr3"); 2.设计报表 通过“TfrxReport.DesignReport”方法调用报表设计器。你必须在你的项目中包含报表设计器(必要条件是:要么使用“TfrxDesigner”组件,要么增加“frxDesgn”单元到uses列表)

FastReport_的sql参数以及BeforePrint事件

https://www.360docs.net/doc/ec4556071.html,传递Sql参数以及BeforePrint事件的使用新建数据源 输入自定义表名 点击下一步Next 输入查询sql语句 @HRID类似于数据库中变量

一定要增加一个参数比如命名为HRID 在Expression中使用[列名]来代替这个变量

[HRID]为表查询结果的列名中的一个, 点击Next 点击完成即可。 在BeforePrint事件中输入你需要填写的代码: 如图片Picture1的BeforePrint事件填写图片代码(图片的路径保存的数据表中): 在Code区域中输入以下代码: using System; using System.Collections; using System.Collections.Generic; using https://www.360docs.net/doc/ec4556071.html,ponentModel; using System.Windows.Forms; using System.Drawing; using System.Data; using FastReport; using FastReport.Data; using FastReport.Dialog; using FastReport.Barcode;

using FastReport.Table; using FastReport.Utils; namespace FastReport { public class ReportScript { private void Text21_BeforePrint(object sender, EventArgs e) { String s1=GetCompletedPath("tbLeave.CreateSign"); if(s1.Length>0) { Picture1.ImageLocation=s1; } else { Picture1.Visible=false; } String s2=GetCompletedPath("tbLeave.ManagerSign"); if(s2.Length>0) { Picture2.ImageLocation=s2; } else { Picture2.Visible=false; } String s3=GetCompletedPath("tbLeave.DLeaderSign"); if(s3.Length>0) { Picture3.ImageLocation=s3; } else { Picture3.Visible=false; } String s4=GetCompletedPath("tbLeave.HRSign"); if(s4.Length>0) { Picture4.ImageLocation=s4; }

fastreport中文版教程之报表设计器环境

fastreport中文版教程之报表设计器环境 报表组件在开发环境中,可以通过鼠标双击TfrxReport组件,打开报表设计器环境。设计器窗口提供给用户全部有关报表设计的工具,并同时提供预览功能。报表设计器界面新颖。包含几个工具栏,并且工具栏可以停靠镶嵌在任何你想停靠的地方,并随设计器其他配置属性保存在一个.Ini文件中,当再次打开时,恢复设计器的配置属性。 为了提供给用户运行期设计报表的功能,应该再添加“TfrxDesigner”或“frxDesgn”单元到Uses列表中。这样用户就可以在运行期修改报表格式,又可以修改已经生成的报表内容信息。 注:根据报表的需要,你应该还需要添加其他的一些组件到表单上。其他组件说明不在此介绍。 2

图中标号说明: 1——报表设计区域 2——菜单栏 3——工具栏 4——报表对象工具栏 5——报表分页标签 6——报表树窗口 7——对象属性窗口 8——数据树窗口。可以从此窗口拖曳到报表窗口 9——尺标。10——状态条134567 8910

1.1、控制键 控制键描述 Ctrl+O“文件|打开…”菜单命令 Ctrl+S“文件|保存”菜单命令 Ctrl+P“文件|预览”菜单命令 Ctrl+Z“编辑|撤销”菜单命令 Ctrl+C“编辑|复制”菜单命令 Ctrl+V“编辑|粘贴”菜单命令 Ctrl+X“编辑|剪切”菜单命令 Ctrl+A“编辑|全选”菜单命令 Arrow,Tab对象切换 Del删除被选择的对象 Enter打开对象编辑器 Shift+arrows改变对象的大小 Ctrl+arrows移动对象位置 Alt+arrows移动对象到附近对象的位置 1.2、鼠标操作 操作描述 左键选择组件对象;添加新的组件对象;移动组件对象;改变组件的大小;

FastReport配置

一、环境 1、Delphi 2006 (Version10.0.2151.25345) 2、FastReport4.5 full source,下载地址(https://www.360docs.net/doc/ec4556071.html,) 这个版本支持Delphi 4~7, 2005, C++Builder 4~6, BDS2006, RAD Studio 2007 3、目录结构D:\EFine\控件\FastReport4.5,解压后目录结构如下: 4、FastReport4.5包括

二、重新编译FastReport4.5 1、运行D:\EFine\控件\FastReport4.5\recompile.exe,出现编译前的警告窗口: 您需要确认的是: 1) 您有写系统目录Windows\System32的权限; 2) 您未运行Delphi或者C++Builder; 3) 您未运行使用到FastReport或者是Fastscript runtime包的程序; 2、点击[Continue],出现编译选择选项窗口: 1) Select the compiler:选择 BDS 2006(Delphi, C++), Turbo Delphi/C++ Prof.

2) Select the FastReport version:Enterprise 3) Select the TeeChart version:TeeChartStd 4)What you want to do:Recompile all packages,并选中With debug info 3、点击[Comiple],程序提示重新编译后的文件在D:\EFine\控件\FastReport4.\LibD10 此时FastReport4.5的目录结构为 其中Debug info

fastreport中手册(翻译整理)

第一章通用说明 (一)安装成VS工具箱 (二)故障排除 (三)部署 (四)编译源代码 第二章winform窗体中的使用Visual Studio中报告组件的使用 使用代码生成报表 存储和装载一个报告 注册数据 传递一个值到报表参数 运行报告 设计报告 导出报告 配置https://www.360docs.net/doc/ec4556071.html,环境 取代了“开放”和“保存”对话框 更换标准进度窗口 通过自己的连接字符串 通过自定义的SQL 引用报告对象 使用代码创建一个报告 使用自己的预览窗口24 过滤表中数据向导 第三章 https://www.360docs.net/doc/ec4556071.html,的使用 使用WebReport组件 存储和装载一个报告 注册数据

传递一个值到报告参数 工作在“中等信任”模式 第一章通用说明 1.0 一般信息 安装VS工具 https://www.360docs.net/doc/ec4556071.html, 网络安装程序自动添加FastReport组件进入 Visual Studio的工具箱。 如果你有禁用这个特性在安装,你可以手动添加组件。 要做到这一点: 在工具箱中删除“FastReport·NET”选项卡,如果它是在那里; ·创建一个新的标签(要做到这一点,右键单击工具箱并选择“添加选项卡”项目),或选择一个现有的标签你想添加FastReport组件; 右键点击一个标签,·选择“选择项目…”: ·在对话框中,按“浏览…”按钮,选择FastReport.dll,FastReport.Web.dll 文件(它们位于“C:\ Program files \ FastReports https://www.360docs.net/doc/ec4556071.html,”文件夹); ·关闭对话框与OK按钮。 在此之后,您将看到https://www.360docs.net/doc/ec4556071.html,组件在一个选择的选项卡:

fastreport .net初级教程之报表向导

https://www.360docs.net/doc/ec4556071.html,初级教程之报表向导 FastReport有几个报表向导简化报表的生成过程。选择“文件|新建”菜单,界面如下: 13.1、新报表向导 有四个创建新报表的向导。 ——标准报表向导 ——标准报表 ——点矩阵报表向导 ——点矩阵报表 标准报表和点矩阵报表向导可以创建空白的标准报表或点矩阵报表。报表包含有一个空白页。 标准报表向导和点矩阵报表向导允许生成报表中选择数据字段,创建组。我

们通过标准报表向导创建一个报表。 点击“文件|新建”菜单,选择标准报表向导,弹出向导窗口: 可以看到,这个窗口有多个页标签。第一个页中选择数据源;可以选择任何可用的数据源,也可以创建一个新的表——tabel或query。点击new table或new query按钮,弹出数据源向导窗口。在此我们选择customers数据源,点击“下一步>>”按钮。 下一页选择可以显示的字段。

左边列表中显示可以使用的字段,右边列表中显示的是已经选择的字段。通过“加入>>”“全部加入>>”“<移除”“<<全部移除”按钮选择或移除可以显示的字段。通过按钮,调整选取的字段的顺序。 下一个页创建一个或多个组。这个示例中添加一个Group Header,Group Footer两个组。

这个页我们点击“下一步>>”按钮,跳过此页。下一页设置页面属性。 选择显示方式,在右边可以查看显示样式。 最后一页设置显示模式。 点击“完成”按钮,创建如下报表:

13.2、数据连接向导 这个向导在当前报表中添加一个新的数据库连接。这个向导将添加一个TfrxAdoDatabase组件到报表中。

FastReport--打印报表操作手册

安易信息系统 FastReport报表打印格式操作手册 目录 FastReport对象 (2) “Text”对象 (3) “Band”对象 (6) “Image”对象 (9) “SubReport”对象 (10) “Line”对象 (10) “CheckBox”对象 (10) “RichText”对象 (10) “OLE”对象 (11) “Chart”对象 (12) “Shape”对象 (14) “Barcode”对象 (14) “RichText 2.0”对象 (15) 设计器 (16) 使用控制键 (17) 使用鼠标 (17) 报表选项 (17) 页面选项 (18) 设计器选项 (20) 对象观察器 (21) “插入数据字段”窗口 (22) 数据字典 (22) 表达式编辑器 (27) 工具栏 (29)

“标准”工具栏 (29) “格式”工具栏 (30) “边框”工具栏 (31) “对齐”工具栏 (32) 对象的属性和方法 (33) 解释器的使用 (38) 创建ANYIHIS的FastReport报表 (39) FastReport对象

这个对象无疑是FastReport中最强大、最灵活的对象。主要是,它提供一个包含多行文本的矩形框。你可以设置边框的类型、颜色和宽度;以及字体属性、文本对齐方式和字 体方向(垂直或水平)。要设置对象的属性,使用“文本”和“边框”工具栏: text对象的内容主要由备注类型的对象组成,可以包含:文本,变量,数据字段,或这些的任意组合。字体格式将应用于text对象所包含的所有文本。 使用text对象的一些示例:(*) 宽度,cm:[Length]——使用变量([Length])显示固定文本(宽度,CM)。 宽度,cm:[Table1.”Length_cm”]——使用数据字段([Table1.”Length_cm”])显示固定

fastreport使用入门教程之创建报表

fastreport使用入门教程之创建报表 创建报表 我们做一个在运行其使用这些组件建立一个简单报表的示范。在delphi环境中创建一个新的工程,并加入以下组件:TfrxADOComponents,Tbutton,TfrxReport,TfrxDesigner,TfrxDialogControls,TADOConnection。 设置属性: ADOConnection1: LoginPrompt=False frxADOComponents1: DefaultDatabase=ADOConnection1 双击设计按钮,定义一个事件函数: procedure TForm1.Button1Click(Sender:TObject); begin frxReport1.DesignReport; end; 运行delphi,点击设计按钮,进入报表设计器。 简单的列表式报表 在设计器环境中点击新报表,并且换到Data页,放置一个ADOTable组件

到页面上。 注意database属性已经连结到了数据库。并选择数据表名称:TableName='Customer' 到报表设计页,连接Master band数据源,并在数据树中将数据源字段托到band上合适的位置,调整大小。界面如下: 设计完毕,点击预览按钮,浏览结果。

同为比较常用的报表工具,FineReport对的创建报表步骤与FastReport有所不同,具体如下: 1.新建报表模板 点击快速工具栏上按键,创建一张空白模板。 2.新建数据集 数据集是FineReport专有的存储通过数据连接从数据库中取出来的数据,数据集是一个二维数据表,可直接在数据集中看到数据表中的字段和数据。 报表左侧下方有模板数据集窗口,列出了该模板可用的所有模板数据集,点击按钮,增加模板数据集。 新建数据集ds1,定义SQL语句为:SELECT*FROM[销量]where地区='${地区}',这样一个带参数的SQL语句,这里的地区是参数名字。

fastreport .net教程之参数查询报表

https://www.360docs.net/doc/ec4556071.html,教程之参数查询报表 参数查询报表 我们创建一个比较复杂一点报表,在报表输出之前,在对话框中输入参数查询。在上面的报表中在点击新报表,重新创建一个空白报表。 切换到data页,放置ADO Query组件到面板上,双击组件单出编辑器,输入查询语句: select*from Customer where CustNo>:p1 加入一个对话框窗体,组织组件如下: 设置组件属性: Label1: Caption='选择CustNo大于' Edit1: Text='2000' Button1: Caption='确定' ModalResult=mrOk Button2: Caption='取消' ModalResult=mrCancel 打开Query的参数params属性编辑器对话框,设置参数:

回到报表设计器页面,组织报表结构如下: 进行预览,输入参数,查看显示结果。 同为比较常用的报表工具,FineReport对报表中参数的解决方案思路有相同,但具体的实现方式存在差异,主要有三种实现方式,大概如下: 参数控件绑定数据 1.描述

FineReport为了让用户快速的实现参数查询数据功能,提供了专门的参数界面,用来放置与查询相关的控件,如下图: 2.示例 根据下图我们制作一个简单的查询界面,从而了解参数查询界面的具体制作方法。 2.1打开报表 打开报表:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Primary\Para meter\Parameter.cpt,这张模板是模板参数章节的示例模板,该模板中添加了参数界面,以此模板为例来讲述参数界面的一些使用方法。 2.2参数布局

fast report教程

fast report 的使用说明 1. TfrxDBDataset TfrxUserDataset 数据存取元件。 FastReport 使用这些元件读取及参考数据库的字段,这两个元件都源于“TfrxDataSet” 并继承其大部分的功能。 TfrxUserDataSet 元件允许构建未连接到数据库的报表,而由其它来源接收数(据如:数列、文件等)。在此同时,程序员仅需提供浏览此数据集的功能,资料接收并非由此元件执行,而是用其它的方法(例如,经由“TfrxReport.OnGetValue”事件)。 TfrxUserDataSet 元件有下列的属性: (1) property RecNo: Integer readonly;目前记录编号,首笔的记录编号是“0” (2) property Enabled: Boolean default True;定义此元件是否可在designer 里面使用。 (3) property RangeBegin: TfrxRangeBegin default rbFirst;数据导航(navigation)的起点。 下列的值可以使用: rbFirst –从数据的第一笔记录开始。rbCurrent –从当前的记录开始 (4) property RangeEnd: TfrxRangeEnd default reLast;数据导航(navigation)的起点。 下列的值可以使用: reLast –直到数据结束。ReCurrent –直到目前的记录。reCount –依“RangeEndCount” 属性而定。 (5) property RangeEndCount: Integer;数据集中的数据个数,此功能只在“RangeEnd”属性等于reCount 有效。 (6) property UserName: String;符号名称。在报表设计环境(Designer)下,将被显示于DataSet 的下方。 (7) property OnCheckEOF: TfrxCheckEOFEvent; TfrxCheckEOFEvent = procedure(Sender: TObject; var Eof: Boolean)of object; 此事件在数据集的尾端时,Eof 参数将返回True。

fastreport c#初级教程之报表设计器环境

fastreport c#初级教程之报表设计器环境 报表组件在开发环境中,可以通过鼠标双击TfrxReport组件,打开报表设计器环境。设计器窗口提供给用户全部有关报表设计的工具,并同时提供预览功能。报表设计器界面新颖。包含几个工具栏,并且工具栏可以停靠镶嵌在任何你想停靠的地方,并随设计器其他配置属性保存在一个.Ini文件中,当再次打开时,恢复设计器的配置属性。 为了提供给用户运行期设计报表的功能,应该再添加“TfrxDesigner”或“frxDesgn”单元到Uses列表中。这样用户就可以在运行期修改报表格式,又可以修改已经生成的报表内容信息。 注:根据报表的需要,你应该还需要添加其他的一些组件到表单上。其他组件说明不在此介绍。 2

图中标号说明: 1——报表设计区域 2——菜单栏 3——工具栏 4——报表对象工具栏 5——报表分页标签 6——报表树窗口 7——对象属性窗口 8——数据树窗口。可以从此窗口拖曳到报表窗口 9——尺标。10——状态条134567 8910

1.1、控制键 控制键描述 Ctrl+O“文件|打开…”菜单命令 Ctrl+S“文件|保存”菜单命令 Ctrl+P“文件|预览”菜单命令 Ctrl+Z“编辑|撤销”菜单命令 Ctrl+C“编辑|复制”菜单命令 Ctrl+V“编辑|粘贴”菜单命令 Ctrl+X“编辑|剪切”菜单命令 Ctrl+A“编辑|全选”菜单命令 Arrow,Tab对象切换 Del删除被选择的对象 Enter打开对象编辑器 Shift+arrows改变对象的大小 Ctrl+arrows移动对象位置 Alt+arrows移动对象到附近对象的位置 1.2、鼠标操作 操作描述 左键选择组件对象;添加新的组件对象;移动组件对象;改变组件的大小;

fastreport .net入门教程之交叉报表

https://www.360docs.net/doc/ec4556071.html,入门教程之交叉报表 这种报表类型是表格结构,意思是它包含着一系列的行和列。同时它不可预知,表格有多少个行和列。这就是为什么报表不但纵向增加,而且横向增加。以下显示这种类型的报表的例子: 表格的数据如下: 这个例子中,表格有两个行和四个列。A和b行的标题,1,2,3,4是列的标题。A1,a2..a4,b1..b4是表格中的数据。我们创建一个数据集,有三个字段,包含如下内容: a1a1 a2a2 a3a3 a4a4 b1b1 b2b2 b3b3 b4b4 第一个字段为行序号,第二个字段为列序号,第三个字段为表格数据。当输出报表时,FastReport在内存创建一个表格,并填入数据。

标题如果有两层,显示数据如下: 报表需要如下数据: a101a10.1 a102a10.2 a201a20.1 a202a20.2 b101b10.1 b102b10.2 b201b20.1 b202b20.2 内存中创建的表格数据如下: 1、创建交叉报表 现在我们从理论转到实践。我们创建一个简单的报表,数据包含四年来的雇员的薪水。这样,我们需要一个“CrossTest”的数据表,数据包含如下内容:

Name Year Salary Ann19993300 Ben20022000 …. 在delphi中创建一个新的工程,添加“TTable”,“TfrxDBData”和“TfrxReport”组件。并设值其属性: Table1: DatabaseName='c:\Program Files\FastReport4\Demos\Main' TableName='crosstest.db' frxDBDataSet1: DataSet=Table1 UserName='SimpleCross' 为了完成交叉报表,我们需要使用组件“TfrxCrossObject”,此组件在FastReport组件面板上。将他添加到delphi的表单中,不需要设置任何属性;同时,包含全部可用函数的“frxCross”单元被添加到uses列表中。 进入报表设计器界面,首先连接数据源,再在报表中添加“Db Cross tab”组件。

淘宝客服每日工作计划表

淘宝客服每日工作计划表打开旺旺回复买家的留言及给买家回复评价,同时要学会利用回评对我们的商品做宣传。 每天熟悉新上架的产品质地和款式价格及颜色等相关信息。 主动更新所工作店铺的橱窗推荐,一定要把所有橱窗位推荐满,一般推荐时间分为上午和下午或晚上(上午更新时间9:00—11:00 下午13:00-17:00 晚上19:00—20:30),在推荐时一定要选快下架的产品推,推荐产品时要注意选择款式突出,物廉价美、量多的。 以前我们弄淘宝的时候都是选择上架7天,然后7天后自动下架,我们再手动上架。还有上架14天的选项,但一般都是选7天。现在淘宝会自动上架已到期的宝贝,给你截个图,一般都选7天。 从你发布宝贝开始计算下架时间,比如你周一 10点发布了一件宝贝,选择了7天,那下架时间就是下周一的10点。 (咱们天猫商城店铺目前不需要陈涛负责这个,如果是C店就需要了 ) 主动查看前一天买家已付未还未发货的定单,查清未发货原由,及时跟进帮买家发货事宜。 每天工作中遇到的疑难问题需及时上报主管解决。 遇到买家交易成功可主动推荐活动和主打,新上的产品,搭配促销。 买家付款后提醒对方:我们会及时帮您发货,您收到货后若有问题,请您及时联系我们,我们会及时帮您解决问题,若没有问题请您及时确认订单和给我们好评喔!

在销售过程中遇到有单品或者页面描述有问题可及时反映给主管找相关人员处理。 回访近期收到货的客户是否对我们的一切都满意(每日访问之前收到货的买家,旺旺在线的客户) 每天所工作店铺的退款统计并制成报表形式,需注明退款原由。由当天晚班人员负责统计。 做好每天与买家沟通交流中所遇到的客户中意包包尺寸颜色大小等信息,整理成档,以便有其他买家询问让给意见时,客服人员可以 专业快速给买家提供正确的意见。 每天各买家成功付款后提醒对方我们会及时帮他发货,您收到货后若有问题,请您及时联系我们,我们会及时帮您解决问题,若没有问题请您及时确认订单和给我们好评喔! 每天至少花一个半小时的时间去淘宝社区看看,学习与交流卖家心得,用心回复淘友的帖子,学习人家精华帖是怎么样写出来的,参考参考,社区内有什么活动一定要要马上报名参加,人气始终是网络店铺火暴的主要推手。每天去淘宝社区发帖子或者用主旺旺跟帖,帖子的内容可以介绍店铺活动,新款上架及对于新款的介绍和用衣服搭配方案(一天能回20个贴)。 每天能坚持写一篇原创帖。不要多,但一定要精。因为精华帖带来的流量是数以万计的,一但帖子加精,那么店铺不愁没流量,有了流量就会有成交量。 网络客服人员要学会广撒网。客户不是等上门的,要主动去寻找,且要有针对性的去找,多去一些购物群等宣传自己的店铺。淘宝打听、各大搜索引擎网站也是一个必去的地方,哪里有很多人在求购

Fastreport报表合并单元格技巧

Fastreport报表合并单元格技巧 在做企业的ERP,SCM,CRM等等的软件中, 经常要做的就是报表, 如财务报表, 生产车间报表。很多时候企业可能对报表格式提出特别的要求,但作为软件开发公司,能设计开发出符合客户要求的报表就显得十分迫切。以下我对报表的合并技巧作一个总结,希望对后面要做类似报表的同事有些帮助。 合并报表1:江苏美的春花电器股价有限公司-委外加工材料月结表 在没有合并之前显示如下: 在对供应商编码和材料编码进行合并后显示如下:

对于合并功能,其实fastreport是有的,但这个功能做得远远不够,不能按客户的要求进行合并,要完成上述功能,我是通过下面的方法做出来的。 这种要求的合并要结合Delphi与Fastreport来协作完成。首先然前台Delphi相应方法中编写有关的算法,然后在Fastreport中根据这种算法作相应的显示。 操作方法如下: 1.选中Fastreport的主数据项,双击OnBeforePrint方法,在begin end 之间编写代码:

1.MainData.Height:为每行数据显示的高度, 2.[CLTAutoreporthead_AutoreportlineOfAutoreporthead."Flag"]:表示要合并的行数(Delphi 算法), 3.memo7.visible:是否显示单元格, [CLTAutoreporthead_AutoreportlineOfAutoreporthead."Search_Flag"]=2:(Delphi算法), 只要在Delphi中把要合并的行数与列用字段Flag(控制行数),Search_Flag(控制是否可见,2为可见)算出来,再在FastReport中显示出来,那么合并功能就算搞好。 以下是在Delphi中的合并算法代码: function TAutoReportProcessMonthForm.GetFastRptObj: TBizObject; var BizHead,BizLine:TBizObject; i,j,k,n,m,p:Integer; Head:TAutoreporthead; Line:TAutoreportline; slItemVendor,slVendors:TStringList; strItemVendor,strItemVendor2,strVendor:String; VendorsCount:array of Integer; begin MyCheck; Head:=TAutoreporthead.Create(false,true); https://www.360docs.net/doc/ec4556071.html,erName:=https://www.360docs.net/doc/ec4556071.html,erName; for i:=1 to dgView.RowCount-1 do if dgView.RowProps[i].Checked and (not dgView.IsRowEmpty(i))then begin Line:=TAutoreportline.Create; self.SetDgDataToBizObject(i,dgView,TBizObject(line)); head.AutoreportlineOfAutoreporthead.Add(line); end; //合并报表算法开始added by wbc, 2009-04-23 slItemVendor:=TStringList.Create; slVendors:=TStringList.Create; for i:=0 to head.AutoreportlineOfAutoreporthead.Count-1 do begin strItemVendor:=TAutoreportline(head.AutoreportlineOfAutoreporthead.Items[i]).Item_Code+TAut oreportline(head.AutoreportlineOfAutoreporthead.Items[i]).Vendor_Code; if Pos(strItemVendor,slItemVendor.Text)=0 then slItemVendor.Add(strItemVendor);

fastreport .net初级教程之报表预览、打印、导出

https://www.360docs.net/doc/ec4556071.html,初级教程之报表预览、打印、导出 创建的报表可以预览,打印和导出到报表可以支持的格式。这些在报表预览界面都可以实现。 图中数字说明: 1:报表页 2:工具栏 3:状态栏 4:概要区 工具栏按钮说明: 图标名称说明

打印报表输出当前预栏报表到打印机 打开报表从文件中(*.fr3)打开预览报表 保存报表将当前预览的报表保存到文件中。 文字查询在报表预览中查询匹配文字 放大放大显示预览 缩小缩小显示预览 全屏全屏显示预览 概述 页面设置 编辑 导出弹出下拉条选择可以支持的导出格式 1、控制键 快捷键描述 Ctrl+S保存到文件中“*.fr3” Ctrl+P打印报表 Ctrl+F文字查找 F3继续查找 Arrows移动报表 PageUp, PageDown 向上/向下滚动 Ctrl+PageUp, PageDown 上一页/下一页滚动 Home移到报表开始 End移到报表结尾

2、鼠标控制 Action说明 Left button鼠标状态为“小手”可以移动页面,在工具栏点击放缩按钮。Right button弹出上下文右键菜单 Double-click在全屏模式下双击还原到普通模式。 Mouse scroll滚动报表页面。 3、报表的打印 点击工具栏打印机图标按钮,弹出打印机选项窗体。 设置相关选项,点击确定按钮,输出到打印机。 4、报表中的文字搜索 FastReport可以在预览窗口进行文字的搜索。在工具览点击查询按钮,弹 出查找设置对话框:

点击确定按钮,开始查找,找到相匹配的字符串进行高亮显示。再按F3可以从当前位置向下继续查找上面设置的文字。 5、报表的导出 FastReport可以将生成的报表到出导不同格式的文件中,可用于将来的修改。如果要支持这些导出能力,需要将FastReport4exports组件面板上的组件放置到delphi的窗体上。 FastReport可以支持13格式的导出,他们是:PDF文件、HTML文件、RTF 文件、excel table(OLE)、XML格式、BMP图形、JPEG图形、TIFF图形、CSV 文件,GIF文件、文本文件、开放文本文件、开放表单文件。

套打常用操作汇总-FASTREPORT

经理人ERP打印套版-FASTREPORT讲解 查询数据:选择多张单据进 行连打; 是否选择打印机: 是:打印时会弹出选择打印 机的窗口; 否:打印时会存储为XPS 格式的文档。 XPS 是一种版面配置固定 的电子文件格式,可以 保存文件格式,而且具 有档案共享的功能。在 在线检视或打印 XPS 档案时,可以确保其格 式与您希望的一样,而 且其它使用者无法轻 易变更档案中的数据。FASTREPORT部分属性说明: PrintOnPreviousPage:本页可否打印在上页 的剩余空间。 应用举例:多张连打时,如果上页还有空间, 如何将下页接着打印? 设置PrintOnPreviousPage为True.

经理人ERP 打印套版-FASTREPORT 讲解 AllowSplit:页面内容是否可跨页打印。 ReprintOnNewPage:在每页重复打印。 应用举例:表头内容要在每页都显示(包括 LOGO )? 设置:ReprintOnNewPage 为 True. RowCount :控制总共打印几行; RowCount=0是打印全部; Start New Page:打印前先跳页;每页打印一 行; Stretch:表身自动伸缩根据表身内容; 应用举例:单据中有多行数据,但预览时每 页只看到一行,且只有一页有显示?或者打印内容行与行之间有间隔? 设置RowCount=0,Start New Page 为 False ;Stretched 为True.

AutoWidth:自动调整文本的宽度; Datafield:数据库的字段名称; DataSet:连接至数据库; DisplayFormat: 数据显示格式 应用举例:在打印的金额或数量的小数位数? %2.2f :显示两位小数; %2.3f :显示三位小数位。 FlowTo:对象内容无法容纳时显示至其它对象;选择显 示至的对象。 HideZeros:数字前面的0是否显示。 应用举例:当栏位的值为零时显示为空? 设置HideZeros 为True Rotation:旋转文本。 StretchMode:对象伸缩的行为; WordWrap:文本是否自动换行; 应用举例:表身栏位数据很长时,如何自动调整行高, 自动换行? 1)选择数据单元进行群组; 2)StretchMode 为smMaxHtight ;WordWrap 为True. SuppressRepeated:重复的值不打印,显示为空。 Underlines:文本对象下划线; URL:统一资源定位,可输入网址,预览时点击即可打开网页。 每页合计:将定义好的合计函数放到‘栏尾’中即可。 全表合计:将定义好的合计函数放到‘报表合计’中即可。

fastreport 初级教程之嵌套报表

fastreport初级教程之嵌套报表 嵌套报表 有时一些复杂的报表结构中,需要报表的特殊位置显示特殊的数据。通过FastReport的Band可以创建这些报表。创建子报表可以使用“子报表组件”。 插入这种组件后,就会在设计器中添加一个新的页面,它连接着这个子报表组件。镶嵌式报表就像一系列的多页报表系统。唯一不同的就是嵌套报表显示在基础报表中特殊的位置,而不是在他的后面。当输出报表时,当FastReport系统遇到“SubReport”组件,FastReport引擎,输出关联的设计页,然后输出报表的其他部分。 还可以在子报表窗面上添加子报表,增加嵌套层数。 注意:可以增加嵌套报表,但最多有6层数据。 5.2、设计子报表 你可以在同一Band上放置两个或更多的“SubReport”组件。 这样允许报表设计中,输出数据可以有不同的长度,不同的宽度,不同的高度。

如你所见,报表在输出全部子报表后,生成报表结构。子报表也可以使用各种对齐方法属性。 5.3、子报表中的限制 既然子表是主报表的一部分,他又不能在包含以下Band:“ReportTitle/ReportFooter”、“PageTitle/PageFooter/PageBackground,”和“ColumnTitle/ColumnFooter.”。把这些Band是可以放在主表单上,但是报表系统是不能对其进行处理。同理,嵌套表的选项设置一样不被理会,因为报表输出的时候,主要用到的是主表单的选项。 不能把组件放在“subreport”组件的下面。 当显示子报表的数据时,报表系统将用子报表的内容覆盖“subReport”组件下面的位置。打印可能会出现以下情况:

FastReport绑定数据并进行打印 (1)

使用FastReport进行打印C#代码//准备工作: 打开设计器创建一个空的报表LiShiChuFang.frx DataSet FDataSet = new DataSet();//fastreport中的数据源必须为DataSet if (mDtLishiChufang == null||mDtLishiChufang.Rows.Count == 0 ) { MsgHelper.MessageBoxWarning("当前无需要打印的信息"); return; } //为DataSet添加表并对表命名以方便区分在fastreport中的数据源绑定 DataTable table = new DataTable(); table.TableName = "ChuFang"; FDataSet.Tables.Add(table); //为table创建新列 table.Columns.Add("Datetime", typeof(string)); table.Columns.Add("YaoPinName", typeof(string)); table.Columns.Add("ShuLiang", typeof(string)); table.Columns.Add("ZongDanwei", typeof(string)); table.Columns.Add("YongLiang", typeof(string)); table.Columns.Add("DanDanwei", typeof(string)); table.Columns.Add("PinCi", typeof(string)); table.Columns.Add("YongFa", typeof(string)); table.Columns.Add("ChiXuTianShu", typeof(string)); table.Columns.Add("KaiDanRen", typeof(string)); double totleMoney = 0; //对table添加数据 for (int i = 0; i < mDtLishiChufang.Rows.Count; i++) { table.Rows.Add(mDtLishiChufang.Rows[i]["kaidantime"].ToString(), mDtLishiChufang.Rows[i]["药品名称"].ToString(), mDtLishiChufang.Rows[i]["数量"].ToString(), mDtLishiChufang.Rows[i]["单位"].ToString(), mDtLishiChufang.Rows[i]["单量"].ToString(), mDtLishiChufang.Rows[i]["单量单位"].ToString(), mDtLishiChufang.Rows[i]["频次"].ToString(), mDtLishiChufang.Rows[i]["用法"].ToString(), mDtLishiChufang.Rows[i]["持续天数"].ToString(), mDtLishiChufang.Rows[i]["CaoZuoRenName"].ToString()); if (mDtLishiChufang.Rows[i]["总价"] != null && mDtLishiChufang.Rows[i]["总价"].ToString().Length > 0) { totleMoney += Convert.ToDouble(mDtLishiChufang.Rows[i]["总价"]); } else { continue; } } //实例化FastReport并load需要的模板 FastReport.Report report1 = new FastReport.Report(); report1.Load(Application.StartupPath + "\\LiShiChuFang.frx"); report1.RegisterData(FDataSet);

fastreport中文版教程之创建报表

fastreport中文版教程之创建报表 创建报表 我们做一个在运行其使用这些组件建立一个简单报表的示范。在delphi环境中创建一个新的工程,并加入以下组件:TfrxADOComponents,Tbutton,TfrxReport,TfrxDesigner,TfrxDialogControls,TADOConnection。 设置属性: ADOConnection1: LoginPrompt=False frxADOComponents1: DefaultDatabase=ADOConnection1 双击设计按钮,定义一个事件函数: procedure TForm1.Button1Click(Sender:TObject); begin frxReport1.DesignReport; end; 运行delphi,点击设计按钮,进入报表设计器。 简单的列表式报表 在设计器环境中点击新报表,并且换到Data页,放置一个ADOTable组件

到页面上。 注意database属性已经连结到了数据库。并选择数据表名称:TableName='Customer' 到报表设计页,连接Master band数据源,并在数据树中将数据源字段托到band上合适的位置,调整大小。界面如下: 设计完毕,点击预览按钮,浏览结果。

同为比较常用的报表工具,FineReport对的创建报表步骤与FastReport有所不同,具体如下: 1.新建报表模板 点击快速工具栏上按键,创建一张空白模板。 2.新建数据集 数据集是FineReport专有的存储通过数据连接从数据库中取出来的数据,数据集是一个二维数据表,可直接在数据集中看到数据表中的字段和数据。 报表左侧下方有模板数据集窗口,列出了该模板可用的所有模板数据集,点击按钮,增加模板数据集。 新建数据集ds1,定义SQL语句为:SELECT*FROM[销量]where地区='${地区}',这样一个带参数的SQL语句,这里的地区是参数名字。

相关文档
最新文档