一个Active+Report+开发示例

合集下载

C#报表控件-ActiveReports常见错误汇总及解决方法

C#报表控件-ActiveReports常见错误汇总及解决方法

C#报表控件-ActiveReports常见错误汇总及解决⽅法本贴旨在构建⼀个错误速查⼿册(上百条吧),如果遇到同样的错误问题,⼤家就不⽤毫⽆头绪了,可以对照帖⼦的错误描述和解决⽅法,先⾃我排检。

(本贴会及时更新,更欢迎⼤家补充~提供有效的错误描述和解决⽅法,会奖励⾼额⾦币啦~~)1. FlashViewer 错误代码#2032原因1:项⽬中未加载Grapecity.ActiveReports.Flash.v10.Resources.swf 和Grapecity.ActiveReports.Flash.v9.swf ⽂件解决⽅法:在路径下 C:\Program Files (x86)\GrapeCity\ActiveReports10\Deployment\Flash,找到这两个⽂件,添加到⽹页的同⼀⽬录下。

原因2:部署时,报这个错误是因为引⽤GrapeCity.ActiveReports相关的dll⽂件的版本号不对或与WebConfig⽂件的不⼀致。

解决⽅法:将现有项⽬中所有的GrapeCity相关的dll⽂件移除,在VS中,从路径下C:\Program Files (x86)\Common Files\GrapeCity\ActiveReports 10 将DLL⽂件添加到项⽬中(如果不知道添加那⼏个,可对照着WebConfig⽂件添加)2. RDL报表预览时报⽆限空⽩页错误原因:报表设计⽅式问题解决⽅法:修改报表设计。

3. LoadStreamIoError.原因:数据部分出了问题4. 数据呈现没有问题,导出数据Word,图⽚,PDF没有问题,只有导出Excel报404错误原因:项⽬中缺少DocumentFormat.OpenXml dll⽂件解决⽅法:需要⼿动引⽤到项⽬中,在AR的安装⽬录:C:\Program Files (x86)\Common Files\GrapeCity\ActiveReports 105. 程序部署后报报License错误,“License for the PageReport cannot be found.”原因:License.licx⽂件缺少PageReport的声明项。

SAP报表开发指南

SAP报表开发指南

SAP报表开发指南目录1选择屏幕 (3)1.1屏幕输入命令 (3)1.2创建元素块 (12)1.3事件及其事件关键字 (15)1.4分页 (19)1.5通过窗口滚动窗口 (19)1.6按页滚动 (20)1.7列表中的颜色 (20)1.8交互式报表 (24)1.9次列表的页眉 (26)1.10列表中的消息 (26)1.11从程序中触发事件 (28)1.12从列表中读取行 (29)1.13在光标位置处读列表 (30)1.14传递列表属性 (30)1.15将光标设置到显示列表行的特定字段 (31)1.16将光标设置到输出窗口中列表的特定行 (31)2报表取数 (31)3数据整理 (32)4WRITE输出 (32)5报表编制的实例 (32)6扩展 (32)6.1屏幕控制 (32)6.2设置下拉框 (33)6.3自制Search Help (34)1 选择屏幕屏幕输入命令在ABAP/4中要自屏幕输入变量数据的内容,使用的命令是 PARAMETERS 及SELECTION-OPTIONSPARAMETER:输入一个变量或字段内容SELECTION-OPTIONS:使用条件筛选画面来输入数据1.1.1 PARAMETERS 语句基本格式可以按照用DATA语句声明字段的方式用PARAMETERS语句声明字段。

用PARAMETERS 语句声明的字段称为参数。

通常,输入字段的所有参数都将出现在选择屏幕上。

系统处理输入屏幕时,报表用户在这些输入字段中键入的值将被分配给相应的参数。

它为基本的输入命令,类似如BASIC的INPUT命令,但无法使用F格式(浮点数)。

1、要声明参数及其数据类型语法:PARAMETERS <p>[(<length>)] <type> [<decimals>].该语句创建参数<p>。

附加项<length>、<type>和 <decimals> 与 DATA 语句相同。

DELPHI报表的动态生成

DELPHI报表的动态生成

DELPHI报表的动态生成(Create Delphi Dynamic Report)摘要:本文主要介绍如何在DELPHI开发环境下动态生成报表,给出公用模块,并结合具体示例分析了实现的主要技术问题,给出解决这些问题的技术细节。

关键词:DELPHI报表、动态创建一、引言报表是数据库应用程序的重要部分,可是报表的生成也是数据库开发中最麻烦的一项工作。

报表格式复杂多样,一直是使程序员头疼的事。

DELPHI 在其3.0以后版本中加入了QUICKREPORT,使这种情形有所改变。

它的全部可视化编程以及设计和运行过程中都可以进行预览等特性给程序开发带来了很大的方便。

我们可以通过在应用程序设计阶段往窗体中添加报表控件,再与数据库表组件Ttable,查询组件Tquery等数据访问组件相关联,从而实现报表的预览与报表的输出。

但在许多应用程序中,程序员往往期望从静态或者动态生成的数据库表中动态提取所需数据,进而生成报表输出。

本文介绍的就是如何动态选择所需数据,动态生成报表的公用模块。

这种动态方式生成的报表更加灵活,也更加容易做到报表的格式统一。

动态报表主要是在程序运行阶段利用Creat方法动态创建控件,设置其Parent属性来设置其容器控件。

然后,在程序中根据所选择的数据库表中的数据字段的长度和数目,通过修改控件的大小和位置属性,来控制控件的大小和外观,如果该控件有事件,可直接把函数或过程名赋给它的相应事件名。

二、动态报表的实现下面结合一个具体实例来说明如何其实现的方法和技术。

1、基本思路数据来源,我们以DELPHI自带的DBDEMOS中的employee.db表为例,它共有6个字段。

在F_main主窗体中(如图一),可以自由选择所需要打印的字段。

它的主要控件及属性设置如下:①.Table1:Databasename设置为DEDEMOS,Tablename设置为employee.db②.Listbox1:显示所连数据库表中的全部字段③.Listbox2:用于选择所需报表输出的字段④.AddBitBtn:用于把所选择的字段名添加到Listbox2中⑤.DeleteBitBtn:用于把Listbox2中的字段名去掉⑥.PreviewBitBtn:用于报表的预览⑦.PrintBitBtn:用于报表的输出⑧.CloseBitBtn:用于关闭应用程序在F_report窗体中,放置了以下主要控件,并设置属性,以减少程序的篇幅:①.Table1:Databasename设置为DEDEMOS,Tablename设置为employee.db②.QuickRep1:papesize属性为A4,dataset属性为Table1,bands 属性中的hascolumnheader、hasdetail、hastitle设置为True显示数据库表中的全部字段在F_report的Oncreate事件中加入了如下代码:Table1.Open;if Table1.Active thenTable1.GetFieldNames(Listbox1.Items);// 获得数据库表中的全部字段名DeleteBitBtn.Enabled:=False; //在Listbox2中无字段时,DeleteBitBtn变灰2、从Listbox1中选择字段添加到Listbox2中为AddBitBtn的Onclick事件加入如下代码:if listbox1.Items.Count=0 then exit; //如Listbox1中无可供选择的字段,则执行空操作if listbox1.Selected[listbox1.ItemIndex] then //在Listbox1中选择字段beginListbox2.Items.Add(Listbox1.Items[Listbox1.ItemIndex]);//往Listbox2中增加选中的字段Listbox1.Items.Delete(Listbox1.ItemIndex);//从Listbox1中删除此字段if Listbox2.Items.Count>=1 then //在Listbox2中有字段才允许执行删DeleteBitBtn.Enabled:=True;end;3、从Listbox2中删除不需要的字段为DeleteBitBtn的Oncreate事件添加如下代码:if Listbox2.Items.Count=0 then exit; // 如果Listbox2中无字段,则执行空操作if listbox2.Selected[Listbox2.ItemIndex] then //在Listbox2中选择字段beginListbox1.Items.Add(Listbox2.items[Listbox2.itemindex]); //添加到Listbox1中Listbox2.Items.Delete(Listbox2.itemindex); //从Listbox2中删除此字段end;if Listbox2.Items.Count=0 then //如果Listbox2中无字段,则DeleteBitBtn变灰DeleteBitBtn.Enabled:=False;4、在报表中动态添加一列的步骤:①.TitleBand1中打印的是报表的名称,这里假设为:动态报表生成示例。

.net winform fastreport 例子

.net winform fastreport 例子

.net winform fastreport 例子FastReport是一个用于.NET WinForms应用程序的报表生成器。

以下是一个简单的FastReport示例,它创建一个包含两个文本框和一条汇总行的报表。

首先,您需要在项目中安装FastReport。

可以通过NuGet包管理器来安装FastReport。

在Visual Studio中,右键单击项目并选择“管理NuGet程序包”,然后在搜索框中输入“FastReport”并安装。

下面是使用FastReport生成简单报表的代码示例:在Visual Studio中创建一个新的WinForms应用程序项目。

在窗体上放置一个FastReport.Report控件。

打开代码文件(例如Form1.cs),并添加以下代码:csharp复制代码using System;using System.Windows.Forms;using FastReport;namespace FastReportExample{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){// 创建报表对象Report report = new Report();report.Load("report1.frx"); // 加载报表模板文件(例如report1.frx)// 设置报表数据源report.RegisterData(new DataTable("Products"), "Products");// 准备报表数据源report.Prepare();// 显示报表预览窗口reportViewer1.ShowReport(report);}}}创建一个报表模板文件(例如report1.frx),并添加以下内容:xml复制代码<FastReport xmlns="网址/schema/fr4winforms" xmlns:xsi="网址g/2001/XMLSchema-instance"><Subreports></Subreports><Detail><TextObject><Value>Product Name: [Products.ProductName]</Value></TextObject><TextObject><Value>Quantity: [Products.Quantity]</Value></TextObject></Detail><Summary><Total><TextObject><Value>Total</Value></TextObject><SumFunction>[Products.Quantity]</SumFunction></Total></Summary></FastReport>运行应用程序,您将看到一个包含产品名称和数量的报表,以及一个汇总行显示总数量。

前端财务报表案例

前端财务报表案例

前端财务报表案例在前端开发中,创建一个财务报表通常涉及到使用各种技术和工具。

下面是一个简单的例子,说明如何使用前端技术来创建一个基本的财务报表。

项目概述我们将创建一个简单的资产负债表,其中包括资产、负债和所有者权益等几个主要类别。

报表将使用HTML、CSS和JavaScript来构建,并使用一个简单的数据结构来存储财务数据。

步骤1. 设置项目首先,你需要一个项目文件夹和基础的HTML文件。

你可以使用任何你喜欢的文本编辑器或IDE来创建这些文件。

2. 创建数据结构在JavaScript中,你可以创建一个对象来存储财务数据。

例如:```javascriptlet financialData = {assets: 100000,liabilities: 50000,ownerEquity: 50000};```3. 创建HTML结构在HTML中,你可以创建一个表格来显示这些数据。

> <tr><td>资产</td><td id="assets">100,000</td></tr><tr><td>负债</td><td id="liabilities">50,000</td></tr><tr><td>所有者权益</td><td id="ownerEquity">50,000</td></tr><tr><td>总计</td><td id="total">150,000</td> <!-- 这是资产和负债的和 --></tr></table>```4. 添加CSS样式 (可选)为了使报表看起来更美观,你可以添加一些CSS样式。

ireport 5.1.0 教程之ireport快速入门文档

ireport 5.1.0 教程之ireport快速入门文档

ireport5.1.0教程之ireport快速入门文档必要条件:iReport需要Sun Java2SDK1.4以上版本;为了能编译jasper文件就必须安装完整的java2(JDK),不光是(JRE)这个运行环境。

如果你还想编译iReport 源代码,你还要安装Jakarta Ant version1.6以上版本。

硬件方面,类似于java的环境,iReport也占很多的RAM,所以它也需要只少256Mb的内存和至少20Mb的磁盘空间。

下载:你可以到SourceForge网站上的企业主页上下载最新发布的iReport,可能有几种不同的分类:iReport-x.x.x.zip这是官方的zip格式的二进制文件。

iReport-x.x.x.tgz这是官方的tar gz格式的二进制文件。

iReport-x-x-x-src.zip这是官方的包含源代码的zip格式的二进制文件。

x.x.x表明了iReport的版本号。

每一种都包含必须使用的第三方的库和程序及附加文件,例如模板和一些html格式的基础教程。

如果你想要更多最新版本的源程序,你可以直接地连接CVS库。

但必须要有一个CVS客户端(像CVS,JCVS或者WinCVS)。

如果你有CVS那就执行如下的命令行:cvs-d:pserver:anonymous@:/cvsroot/ireportlogin(目前好象无法连接)and then all on the same line…cvs-z3-d:pserver:anonymous@:/cvsroot/ireportco iReport2这样CVS客户端就可以将iReport的所有文件下载到本地,包括所有的文档,库和所有有用的编译iReport的文件。

就使用其他CVS的用户来说,SourceForge网站也自制了详细的解释用来检出工程。

编译iReport:这些源中包含一个build.xml文件,它是被Jakarta Ant用来编译和启动iReport和或用来创建不同类型的工程。

Report_Builder教案

Report_Builder教案

Report教案第一章 创建一个简单的报表Oracle Report3.0是Develop/2000R2.0 的第二个产品,用于报表的开发与设计,是Oracle数据库的报表开发工具,可开发基于数据库的多种报表。

在Developer/2000v1.3版中,Report的版本是Oracle Reports2.5.Developer/2000R2.0与Developer/2000v1.3相比,2.0版在报表工具上有较大的改变,增加了一些新的报表格式,扩充了报表的设计功能。

1.1 ReportBuilder基础Builder功能1.1.1 Report使用Oracle reports3.0可以设计出多种不同类型的报表。

在Reports3.0中报表的默认格式有:列表式报表、标格式报表、邮件标签、左边分组、上边分组、矩阵及分组矩阵报表。

Reports3.0中可以实现的功能如下:·设计各种风格的报表。

·数据模型与布局设计界面。

·增加公式列、进行行数据的统计与计算。

·增加汇总列、进行分组统计及报表级汇总。

·生成HTML页面,可以在浏览器中浏览。

·增加预览与报表运行界面,可以在预览状态下设计报表界面。

·多媒体功能,可以调用图像、声音、视频文件。

·OLE功能。

·与Oracle Forms5.0集成,动态参数传递。

1.1.2默认报表格式在Oracle Reports3.0中,系统提供的默认报表格式如图1-1图1-1 报表默认格式所示。

各种报表具有如下不同的风格:1.列表式报表列表示报表是普通的报表形式,也是最常用的一种报表。

这种报表的特点是各列的列名显示在域的上面。

列的数据从上向下打印输出。

如图1-2所示。

图1-2 列表式报表风格2.表格式报表表格式报表的显示方式是每页显示一个记录,打印完一条记录即换页。

如图1-3所示。

图1-3 表格式报表风格3.邮电标签报表这种报表主要用于打印信封封面。

怎么集成使用锐浪报表,是否有示例可参考

怎么集成使用锐浪报表,是否有示例可参考

怎么集成使用锐浪报表,是否有示例可参考
版本:GeneXus16U1
环境:.Net/Java
运行:Web
描述:在开发中需要使用锐浪(RelyLong)报表工具,GeneXus有集成好的吗
锐浪报表有几种集成方式,active插件的方式(对浏览器有要求,谷歌禁用这个插件了,所以不能用),客户端应用的(需要安装exe打印软件的,必须是windows 系统),H5方式的(服务端的,集成比较复杂)
三种方式各有优缺点
active方式:优点,可以捕捉到打印发送成功事件(另外两种不行),缺点就是很多浏览器禁用了active插件
客户端应用方式:优点:集成简单,和浏览器无关,就是调用一个exe软件,缺点:只有window是系统可以安装exe软件
h5方式:优点:兼容性强,不限浏览器,不限系统,手机也查看因为是H5页面显示的,缺点:集成较为复杂,需要发布一个服务器站点用于生成打印内容
具体可查看官网说明:/gridreport/sel-web.htm
做过一个以客户端方式集成的,这里说明一下。

由于本论坛附件大小有限制,无法上传超过2M的附件。

请加我们的QQ群377428929,工作人员将通过群发送给您
1. 安装客户端程序
2.导入xpz
3.根据开发环境在TestPrint页面代码中启用相应代码
4.编译,将RelyLong文件夹copy到相应目录.net: web目录下
java: static目录下
5. 运行。

iReport 报表制作实例解析

iReport 报表制作实例解析

开发使用步骤(iReport 4.1.1)◆iReport 4.1.1的安装、配置和介绍(这里不再提,直接进入报表开发)。

◆创建报表(这个项目中的报表为例)iReport基本报表(例:预交费用和押金报表)1.打开iReport文件—--新建---选择BlankA4-----Open this template2.为这个报表起名,和保存位置3.下一步,完成(新建报表完成)4.开始设计(iReport各个部分的功能不介绍)。

点击如图标志,打开report query 界面设计自己的sql语句(刚开始不要考虑sql中得参数写一条死的语句),设计好后会出现如下图,右侧的参数先不用管,点击OK按钮保存4.回到主界面,可以在左侧Fields节点中看到sql中查询出来的所有字段6.表单的设计。

根据需求设计报表,组件面板中各种不同的控件可以根据自己的需要选择,拖动左侧的Fields中的字段放到需要的位置,如图1.合计。

在左侧Variables右击添加字段,在属性中设置其属性,Variable Class 建议使用java.math.BigDecimal(可以保留小数),Calculation中是几不同的函数,根据需要这里选择sum,在Variable Expression 中选择需要求和的字段,设计好好,把Variables中的SUM字段拖到表单中需要的位置就可以啦。

2.预览,参数的设计。

点击Preview预览效果,如果没有问题,设计参数,也就是调整sql语句。

参数:在主界面的Parameters中添加需要的参数,并在属性中配置。

然后保存9.调整sql语句。

重新打开iReport Query 界面,这时候你可以在右侧看到自己设计的参数,拖动参数替换sql语句中之前写死的参数即可,这样,当调用这个报表的时候,以同样的参数名称的参数传给报表即可(前台如何调用报表以及如何传参在后面写到)。

点击保存后,查看预览这时候就会提示你输入参数,报表设计完成。

Active Report

Active Report

1Active report1.1Active Report 相关浏览器的设置IE 浏览器• 工具> Internet 选项, 安全选项卡. • 选择自定义级别•找到下载, 禁用: 文件下载的自动提示. 确认,FireFox• 下载并安装 unMHT 插件•清除所有的历史记录: 工具 > 清空最近历史记录 • 转到 工具 > 选项 > 常规 tab. Uncheck "下载文件时显示下载窗口", 选择确定 • 转到 工具 > 选项 > 应用程序. 选择 MHTML Document 内容类型. 将动作改为 "总是询问", 确定。

•Turn off pop-ups : 工具> 选项 > 内容 tab: 不选 阻止弹出窗口1.2 活动控件说明活动报表控件。

“工具箱”选项卡 上提供了这些控件。

很多控件提供了两个不同的版本,一个静态版本和一个数据驱动版本。

当您希望手动定义控件可包含的值时,请使用控件的静态版本。

当您希望控件可包含的值来自某个数据项时,请使用控件的数据驱动版本。

变量文本项目使用变量文本项目在报表中插入活动报表变量。

当选择另一个控件中的项目时,变量文本项目在显示变量值方面非常有用。

例如,您可以将变量文本项目用作链接至下拉列表控件的某个列表的标题。

从下拉列表中选择某个项目时,该项目会显示为此列表的标题。

卡片组和数据卡片组根据在另一个控件中选定的内容,分别使用卡片组和数据卡片组来显示不同的对象和不同的数据。

例如,在单选按钮组控件中单击某个单选按钮会显示一个列表对象,而单击不同的单选按钮会显示一个图表对象。

卡 片组由卡片组成。

在静态卡片组中,您定义卡片组中的卡片数量,并在每个卡片中插入您所需的对象。

从而创建可包含不同对象的卡片,例如在一个卡片中包含饼形图,在另一个卡片中B u s i n e s s A n a l y t i c sE l l y包含交叉表。

ActiveReport

ActiveReport

使用ActiveReport for .net 进行报表开发(一)--开始ActiveReport 是.net下的一个出色的报表开发程序,虽然和水晶报表相比,名气不那么大,甚至有很多人不知道它的存在,但是并不妨碍它在.net报表开发中的出色表现,本文将一步一步地介绍如何使用它和VS2005开发.net报表。

1. 安装:你可以从Data Dynamics的网站上下载最新的ActiveReport for .net 2 ,你可以免费使用,但是在生成的报表最下边有水印,不过不影响报表的整体美观。

下载后直接安装就可以了。

安装完后会看到开始-程序菜单里的DataDynamics的目录,里面包括了,帮助,例子程序等。

2. 第一个Winform报表程序。

在安装完成后,启动VS2005,会看到启动界面上有ActiveReport的图标,进入后新建一个工程,并且给工程添加新文件,在文件类型中就可以看到ActiveReport文件的图标。

给报表文件命名为ActiveReport1,确定后会看到项目中有一个ActiveReport1.rpx文件,这个就是报表文件了。

打开文件,就是报表的设计界面,在这里可以看到三部分,PageHeader(表头),Detail(明细),PageFooter(表尾)。

打开工具箱,给Detail部分随便添加一个Label。

下面就要显示这个报表了,在Form上添加一个V iewer控件,如果工具箱里没有,可以通过配置工具箱来找到它。

Viewer添加完后,在Form中写代码:ActiveReports1 rpt = new ActiveReports1();rpt.Run();this.viewer1.Document = rpt.Document;然后F5运行,就可以看到在Viewer控件中显示报表了。

要注意的是,项目名称不要命名为ActiveReport,否则会提示找不到ActiveReport.rpx文件。

reportbuilder 表达式 例子

reportbuilder 表达式 例子

reportbuilder 表达式例子(最新版)目录1.报告构建器(reportbuilder)概述2.表达式在报告构建器中的应用3.报告构建器中的例子解析正文一、报告构建器(reportbuilder)概述报告构建器(reportbuilder)是一种用于生成报告的工具,它可以帮助用户创建各种类型的报告,如数据报告、图表报告等。

报告构建器具有灵活性高、操作简便等特点,能够满足不同用户的需求。

在报告构建器中,表达式是一个非常重要的功能,它可以帮助用户实现复杂的业务逻辑和数据处理。

二、表达式在报告构建器中的应用在报告构建器中,表达式主要用于实现以下功能:1.计算字段:可以使用表达式对数据进行计算,例如求和、求平均值等。

2.条件筛选:可以使用表达式对数据进行筛选,例如根据某个字段的值是否大于某个值来决定是否显示该行数据。

3.数据分组:可以使用表达式对数据进行分组,例如按照某个字段的值进行分组。

4.数据排序:可以使用表达式对数据进行排序,例如按照某个字段的值进行升序或降序排序。

三、报告构建器中的例子解析假设我们需要构建一个销售报告,其中包括以下信息:产品名称、销售数量、销售金额。

我们可以使用报告构建器中的表达式功能来实现这个报告。

1.计算字段:我们可以使用表达式计算每个产品的销售总金额,即销售数量乘以销售单价。

2.条件筛选:我们可以使用表达式筛选出销售金额大于 1000 的产品,并在报告中显示这些产品的相关信息。

3.数据分组:我们可以使用表达式将数据按照产品名称进行分组,然后在每个分组内显示该产品的销售数量和销售金额。

4.数据排序:我们可以使用表达式将数据按照销售金额进行升序排序,以使得报告中的数据更加直观。

xdocreport 代码使用

xdocreport 代码使用

xdocreport 代码使用使用xdocreport代码编写文章xdocreport是一个开源的Java库,用于生成和处理各种文档格式,如.docx、.odt和.pdf等。

它提供了丰富的API和工具,使得在Java应用程序中生成和编辑文档变得非常简单和灵活。

本文将介绍如何使用xdocreport代码来生成和编辑文档。

一、安装和配置xdocreport我们需要在项目中添加xdocreport的依赖。

可以通过在pom.xml 文件中添加以下代码来实现:```<dependencies><dependency><groupId>fr.opensagres.xdocreport</groupId><artifactId>fr.opensagres.xdocreport.document</artifactId><version>1.0.5</version></dependency></dependencies>```然后,我们需要配置xdocreport的模板引擎。

可以通过以下代码实现:```IXDocReport report = XDocReportRegistry.getRegistry().loadReport(new FileInputStream(new File("template.docx")), TemplateEngineKind.Velocity);```这里的"template.docx"是我们要使用的模板文件,可以根据自己的需求进行修改。

同时,我们还需要选择合适的模板引擎,这里选择了Velocity。

二、生成文档接下来,我们可以使用xdocreport生成文档。

首先,我们需要准备一些数据,以便填充到模板中。

可以通过以下代码实现:```IContext context = report.createContext();context.put("name", "John Doe");context.put("age", 25);```这里的"name"和"age"是在模板中定义的变量,在生成文档时会被替换为实际的值。

用DelphiFastReport解决ERP系统开发中单据打印的实例探索.doc

用DelphiFastReport解决ERP系统开发中单据打印的实例探索.doc

用Delphi+FastReport解决ERP系统开发中单据打印的实例探索5700字摘要:本文用Delphi+Fastreport为例介绍了用数据库后台存储单据文件前台进行调用很好的解决了后台存储与用户本地自定义设置之间的矛盾,还介绍了通过编写通用式主从结构的单据打印程序快速解决各种单据的打印输出以及用cross-tab技术解决交叉表样式报表的输出。

这些方法的实现很好的解决了ERP系统中单据输出和报表打印问题,同时较方便的实现了用户对单据和报表样式自定义的需求。

zuoe(‘xt_bill_attach’)).LoadFromStream(SetStream); try Post; MessageDlg(‘报表文件上传成功!’, mtInformation, [mbOk], 0); Requery; GotoBookmark(OldBookMark); except MessageDlg(‘报表文件上传过程中遇到了错误,上传失败!’, mtError, [mbOk], 0); end; end; 2、通用的主从式单据打印解决方案:在ERP系统应用中,单据种类复杂,有采购计划、采购订单、采购收货通知单、销售订单、销售出库通知单、库存调拨单、库存领用单等等,但仔细分析后我们发现其结构均为主从式的数据模型,为了找到通用的解决方案,我们在Delphi项目的DM模块下,增加ADOQueryParent作为主表的数据源,增加ADOQueryChild作为子表的数据源,增加frDBDataSetOrder作为FastReport数据源,增加frReportOrder作为FastReport作为报表控件,前端通过后台数据库的视图实现用户对数据源的控制,减少了对前台应用程序的维护频度,实现了报表文件、访问方式和数据源三者既相互独立,又兼顾统一。

2.1调用报表的过程描述如下:procedure PrintCheck(ReportName, --报表名称MasterViee, --主项数据视图名称MasterKeyFieldName, --主项数据关键字段名称DetailViee, --明细项数据视图名称DetailKeyFieldName, --明细数据关联字段名称SortByField --数据源排序字段名称: string; KeyFieldV alue: variant); 2.2过程代码如下:procedure PrintCheck(ReportName, MasterViee, MasterKeyFieldName, DetailViee, DetailKeyFieldName, SortByField: string; KeyFieldV alue: variant); Begin // 指定主项数据源‘ + MasterViee + ‘ e + ‘=:’ + MasterKeyFieldName); Parameters.Items[0].V alue := KeyFieldValue; Open; end; // 指定明细项数据源‘ + DetailViee + ‘ DetailKeyFieldName + ‘=:’ + DetailKeyFieldName); SQL.Add(‘ order by ‘ + SortByField); Parameters.Items[0].V alue := KeyFieldV alue; Open; end; // 装载相应单据 e from xt_bill eters.Items[0].V alue := ReportName; Open; if (DM.frDBDataSetOrder.DataSet DM.ADOQueryChild)then DM.frDBDataSetOrder.DataSet := DM.ADOQueryChild; BlobField(FieldByName(‘xt_bill_attach’)); // 从相应字段进行装载Title := FieldByName(‘xt_bill_name’).V alue; Sho示方式外经常会遇到交叉表式的数据输出要求,依靠传统的报表设计工具和方式显得特别麻烦,FastReport提供了一个Cross-tab的对象可以解决这个问题,但笔者经过多次反复测试后发现只有数据源提供正确且设置合理才会得到我们想要的输出格式。

ActiveReport使用心得

ActiveReport使用心得

Active Report使用心得(一):配置iis及web.config文件(轉)要想在网站中使用Active Report,必须先对iis进行一些配置,同时要在web.config文件中添加一些配置.前提条件,确认您的开发机器已经安装了.Net Framework,并已经下载安装了Acti ve Report.先来说说iis中的配置:(说明:为了简便,我自己没有再截图,使用的图是Active Rep ort帮助文档中的截图).1.在"控制面板"中双击"管理工具",双击"Internet信息服务",在你要配置的网站上单击右键,在属性窗口中点"配置".如下图2.在应用程序映射中,找到aspx项,点"编辑",拷贝"可执行文件"的路径,然后点"取消".如果你的机器没有安装,是看不到项的.3.添加.rpx文件映射,在"应用程序配置"对话框中点"添加",在可执行文件路径中粘贴上一步复制的可执行文件路径,扩展名中添入".rpx".如下图:4.添加.ActiveReport文件映射,在"应用程序配置"对话框中点"添加",在可执行文件路径中粘贴第2步中复制的可执行文件路径,扩展名添入".ActiveReport".如下图:(这里要确保不勾选"检查文件是否存在"的复选框)5.添加.ArCacheItem映射,在"应用程序配置对话框中点"添加",在可执行文件路径中粘贴第2步中复制的可执行文件路径,扩展名添入".ArCacheItem".如下图:(这里要确保不勾选"检查文件是否存在"的复选框,否则控件上的工具栏按钮的图片会不显示,我就经历过这个事件)以上步骤结束后,iis的配置工作就结束了,别忘了重新启动iis服务哦(可在命令行下敲入iisreset命令来实现).下面是web.config文件的配置:1.在web.config文件的appSettings中设置授权信息,如果这里的"姓名","公司名","序列号","生成的hash code"不正确的话,会在你项目中的每一页最下方显示版权信息.<appSettings><add key="DataDynamicsARLic" value="Name,Company,SERIALNUMBER,Gener ated Hash Code" /></appSettings>2.在web.config文件的httpHandlers配置节下添如对应的Handler配置信息<add verb="*" path="*.rpx" type="DataDynamics.ActiveReports.Web.Handlers. RpxHandler, ActiveReports.Web, Version=5.2.0.0397, Culture=neutral, PublicKey Token=cc4967777c49a3ff"/><add verb="*" path="*.ActiveReport" type="DataDynamics.ActiveReports.Web. piledReportHandler, ActiveReports.Web, Version=5.2.0.0397, Cultu re=neutral, PublicKeyToken=cc4967777c49a3ff"/><add verb="*" path="*.ArCacheItem" type="DataDynamics.ActiveReports.Web. Handlers.WebCacheAccessHandler, ActiveReports.Web, Version=5.2.0.0397, Cult ure=neutral, PublicKeyToken=cc4967777c49a3ff"/>这里要注意的是Version是与你下载的Active Report的版本有关的,我下载的是"ActiveR eports for .NET 3.0 Build 5.2.0.0397 (SP2)"这个版本.经过以上配置,我们就做好了利用Active Report在网站中进行报表开发的准备工作了ActiveReport 使用心得(二):建立报表文件及中文显示的问题(轉)搭建好了ActiveReport开发环境,接下来就开始在我们的项目中加入ActiveRe port报表了.由于我们做的是网站项目,所以我们一般的做法是新建一个类库项目,在该项目中建立报表,然后在我们的网站项目中添加该类库项目的引用.安装完ActiveReport后,会在我们的Visual Studio项目模板中多出两项,我们一般用的是ActiveReport File.在类库中添加新类,在类型中选择如下图的Active Report 3.0 File,即可建立报表文件.ActiveReport的设计界面的区域如下图所示.简单说一下几个区域的作用:ReportHeader区域为报表的头区域,一般用来显示报表的一些头部信息,只在报表的第一页显示一次,如果想在报表的每一页都显示这些信息,请把这些信息放到pageHeder区域中.对应的reportFooter区域,一般用来显示报表的表尾信息,在整个报表中只显示一次,如果想在报表的每一页底部都显示这些信息,请把其放在pageFooter 区域中.groupHeader区域和groupFooter区域,则用来放置一些有关报表的说明信息,Det ail区域放置的一般是数据源中取出的数据的显示.在我们安装完ActiveReport后,打开报表设计界面时,会发现工具箱中多了个ActiveReport 的选项卡,里面包含了一些我们做报表会经常用到的控件.如下图现在我们就可以试着向报表设计界面中拖动一些控件,来设计我们的报表界面了.这个地方就可以发挥你的艺术才能了(我比较缺少艺术细胞)在报表设计时,我们不可避免的要在报表中放一些Label啊,TextBox啊的,在里面我们可能要设一些汉字,由于ActiveReport不是国人开发的软件,所以想添加中文并且让其在我们的Web项目中能正确显示的话,就需要一些技巧了(我在这块走了好几天的弯路啊,在此把我的心得写下来,让朋友们少走一点弯路).首先要做的是把整个报表的默认语言设为"简体中文",方法在在报表的属性窗口中,把Lan guage属性设为"中文(简体)".如图:其次是设置报表中字体的样式,在我们打开ActiveReport文件的设计界面时,visual stuid o的菜单栏多了"report"这一项,我们点击"report"菜单下的"settings"菜单项,会弹出报表设置对话框,我们切换到"style"选项卡,进行样式的设置:我们需要做的是先修改Normal样式,"Font Name",我们选择"宋体"(也就是我图中显示的这个"SimSun").Script确认为"CHINESE_GB2312",我们也可以新建自己的样式.这些样式到底有什么用呢?当我们向报表中添加Label或TextBox控件的时候,这些控件都有一个C lassName属性,该属性就是用来格式化这些控件中的文本的.该属性不能为空,默认为Norm al,也就是应用我们上图设置的Normal样式.如果报表的Language属性我们没设置的话,这里的"Font Name"默认为"Arial",这样我们要在报表中显示的汉字就不能正确显示,或者导出为PDF或Excel时汉字不能显示.我们放在表头部分的Label一般使用"Heading1"-"H eading3"中的某一个即可,如对其默认样式不满意,可以修改其样式,也可以自己新建样式.不过建议字体都选宋体,否则可能会出现在网页中pageHeader部分的汉字显示不出来,或者导出为Excel或PDF文件时pageHeader部分的汉字显示不出来的问题.好了,建立报表文件和中文显示的问题就先说这些吧.下一次,我要说说数据的绑定问题ActiveReport使用心得(三):数据绑定(轉)我觉得ActiveReport最吸引我的地方就是可以通过代码进行动态的数据绑定了,这样报表处理起来就灵活多了。

c语言编程规范和范例

c语言编程规范和范例

c语言编程规范和范例软件工程2007-10-14 13:27:32 阅读166 评论0 字号:大中小(本文摘自/lynnwayne/archive/2007/07/11/814673.html)对一些刚入门的人在学习编程的时候一定要养成一个良好的习惯,下面给出了c语言编程规范和范例供大家参考,其他语言也可参照编写.1 排版1 1-1:程序块要采用缩进风格编写,缩进的空格数为4个。

说明:对于由开发工具自动生成的代码可以有不一致。

1 1-2:相对独立的程序块之间、变量说明之后必须加空行。

示例:如下例子不符合规范。

if (!valid_ni(ni)){... // program code}repssn_ind = ssn_data[index].repssn_index;repssn_ni = ssn_data[index].ni;应如下书写if (!valid_ni(ni)){... // program code}repssn_ind = ssn_data[index].repssn_index;repssn_ni = ssn_data[index].ni;1 1-3:较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。

示例:perm_count_msg.head.len = NO7_TO_STAT_PERM_COUNT_LEN+ STAT_SIZE_PER_FRAM * sizeof( _UL );act_task_table[frame_id * STAT_TASK_CHECK_NUMBER + index].occupied= stat_poi[index].occupied;act_task_table[taskno].duration_true_or_false= SYS_get_sccp_statistic_state( stat_item );report_or_not_flag = ((taskno < MAX_ACT_TASK_NUMBER)&& (n7stat_stat_item_valid (stat_item))&& (act_task_table[taskno].result_data != 0));1 1-4:循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首。

activity act_hi_procinst分表

activity act_hi_procinst分表

activity act_hi_procinst分表全文共四篇示例,供读者参考第一篇示例:Activity是一个开源的工作流引擎,它可以帮助开发者设计、管理和执行工作流。

在Activity中,所有的工作流实例都会被存储在数据库中的表中。

其中,act_hi_procinst分表就是用来存储所有的流程实例的表。

首先,让我们来了解一下act_hi_procinst分表的结构。

在Activity中,act_hi_procinst表包含了以下字段:ID、PROC_INST_ID、BUSINESS_KEY、START_TIME、END_TIME、DURATION、START_USER_ID、START_ACT_ID、END_ACT_ID、SUPER_PROCESS_INSTANCE_ID等。

这些字段分别代表了流程实例的唯一标识、流程实例ID、业务键、开始时间、结束时间、持续时间、发起用户、开始活动ID、结束活动ID、超级流程实例ID等信息。

在Activity中,每当一个新的工作流实例启动时,就会在act_hi_procinst表中插入一条新的记录。

这条记录会包含该流程实例的所有相关信息,包括流程实例ID、业务键、开始时间、发起用户等。

当流程实例结束时,也会在act_hi_procinst表中更新结束时间、持续时间、结束活动ID等信息。

通过act_hi_procinst表,我们可以方便地查询和监控所有的流程实例。

我们可以根据不同的条件来筛选出特定的流程实例,如根据业务键、发起用户、开始时间等条件进行查询。

通过act_hi_procinst表中的信息,我们可以了解到每个流程实例的整个执行过程,包括开始、进行中和结束的状态。

除了查询功能之外,act_hi_procinst表还可以为工作流引擎提供其他的功能。

例如,通过对表中的数据进行统计和分析,我们可以了解到各个流程实例的执行情况,从而对流程进行优化和改进。

同时,act_hi_procinst表还可以用于记录和追踪不同流程实例之间的关系,帮助我们更好地管理和监控整个工作流系统。

delphi fastreport 打印简单例子

delphi fastreport 打印简单例子

delphi fastreport 打印简单例子以下是一个使用Delphi和FastReport打印的简单例子:1. 首先,打开Delphi并创建一个新的VCL应用程序项目。

2. 在工具栏上找到FastReport组件,在主窗体上拖放一个`TfrxReport`组件。

3. 在菜单中选择"File" -> "New" -> "Data",创建一个新的数据集。

4. 在数据集设计器中,添加一些字段,并添加一些数据。

5. 返回主窗体,在Form的`OnCreate`事件中,添加以下代码:```delphiprocedure TForm1.FormCreate(Sender: TObject);varReport: TfrxReport;Designer: TfrxDesigner;beginReport := TfrxReport.Create(nil);Designer := TfrxDesigner.Create(nil);try// 加载FastReport模板文件Report.LoadFromFile('报表文件路径');// 将数据集与报表关联Report.DataSets.Add(DataSet1);// 显示报表设计界面Designer.Report := Report;Designer.ShowModal;// 打印报表//Report.PrepareReport;//Report.Print;finallyDesigner.Free;Report.Free;end;end;```6. 运行应用程序,点击按钮时将打开FastReport设计器界面,您可以在其中设计和预览报表。

7. 如果要打印报表,取消`FormCreate`方法中的注释,并确保您在报表文件路径中指定了正确的模板文件路径。

8. 运行应用程序,点击按钮即可打印报表。

EOS报表应用开发示例一

EOS报表应用开发示例一

EOS报表应用开发示例一【实现方式】在JSP页面上调用Tag运行报表,数据源采用EOS数据源方式。

【实现概述】1. 按照需求设计报表模板。

o路径和名称:demo.report.eosRoleUser.erdo功能:设置数据源、数据显示方式和样式。

2. 编写查询条件页面。

o路径和名称:/demo/page/tagEosInput.jspo功能:设置查询条件。

3. 编写查询展现逻辑。

o路径和名称:demo.pr.tagEoso功能:调用查询数据的业务逻辑,并控制结果返回页面。

4. 编写查询业务逻辑。

o路径和名称:.tagEoso功能:根据查询页面传入的查询条件,取出查询结果,并返回到展现逻辑。

5. 编写查询结果页面。

o路径和名称:/demo/page/tagEosOutput.jspo功能:得到展现逻辑传入的结果数据,按查询条件页面设定的显示格式显示数据。

【实现步骤】1. 创建项目参见联机帮助中的“创建EOS基础项目”。

项目创建完成后,新建“demo”构件包,参见“创建EOS构件包”。

2. 设计报表模板demo.report.eosRoleUser3. 编写查询条件页面tagEosInput.jsp文件内容如下:1 <%@include file="/internet/hciHead.jsp"%>2 <table border="0" cellspacing="1" cellpadding="1" class="query"align="center">34 <form name="queryForm" action="demo.pr.tagEos.do">5 <input type="hidden" name ="RoleUser/ROLENAME/criteria/operator"value="like"/>67 <table border="0" cellspacing="1" cellpadding="1" class="query"align="center">8 <tr>9 <TD>显示格式:</TD>10 <TD><SELECT name="reportFormat">11 <OPTION value="html">html</OPTION>12 <OPTION value="eosrdf">Applet</OPTION>13 <OPTION value="xls">Excel</OPTION>14 </SELECT>1516 </TD>17 <TD>查询角色:18 <input name="RoleUser/ROLENAME/criteria/value" value="" size=30 />19 </TD>20 <TD align="center"><input type="submit" value="查询"></TD>21 </tr>22 </table>24 </form>25 <%@include file="/internet/hciTail.jsp" %>4. 编写查询展现逻辑创建展现逻辑demo.pr.tagEos,如下图所示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一个Active Report 开发示例
概要
Active Report 是Cognos 10的一主要功能,即提供的丰富的报表展示,又提供很好的交互性,另外对IPAD上支持更是无缝的。

下面就通过详细的操作步骤介绍一个事例的开发。

开发后的Active Report
运行后的Active Report效果
新建一张Active Report报表
在Report Studio中新建一张报表,选择【活动报表】,如下图:
进入如下的开发界面:
设定使用Cognos 10新图表
新建一张报表时,默认还是使用cognos 8的图形样式,如下图:
Cognos 10版本带的图表更好看些,如果要引用cognos 10的图表,要做如下操作:工具-》选项-》高级,去掉【使用原始图表创建】的复选框,如下图:
再插入图表是,会看到cognos 10 新的图表,如下图:
为展示控制先拖入以2*2表格
把【数据单选按钮组】拖入在刚才表格如下图:
把要进行单选的【年龄分段】拖到【数据单选按钮组】
如下图:
把数据卡片组拖入表格左下角
如下图:
把一【饼型图表】拖入到【数据卡片组】内
如下图:
设定饼图要进行显示的【默认度量】和【序列】【总费用】拖入到【默认度量】中,【住院天数分段】拖入到【序列】中,如下图:
【年龄分段】拖入到【数据卡片组】的卡片值中如下图:
给饼图对应的查询3加入【年龄分段】
如下图:
设定【饼图】与【数据卡片组】的连接关系
选择饼图,在饼图的属性中,点击【主要/明细关系】进行2个查询以【年龄分段】的关联,如下图:
给【数据单选按钮】与【数据卡片组】设定链接关系
分别执行红色标注的1、2、3步即可,如下图:
连接后,如下图显示:
确定后,运行该报表,即可看到点击上面的年龄分段点选框,下面的饼图对应编号。

总结
1、设定【数据单选按钮组】,并给设定要进行值显示的维度;
2、拖入【数据卡片组】,【数据卡片组】实际是一个桥梁,连接了【数据单选按钮组】和在【数据卡片组】
内的图形;
3、在【数据卡片组】中拖入想要展示的图形,并指定要显示的维度、度量;
4、设定图形对应的查询与【数据卡片组】的连接关系;
5、设定【数据单选按钮组】与【数据卡片组】的连接关系;
6、最终形式一个互动的活动报表;。

相关文档
最新文档