作者 :caoli 在我们对VS.Net中的水晶报表(Crystal Reports)进行研究之前,我和我朋友对如何将这个复杂的东东加入我们的Web应用有着非常的好奇心。...也正是因为报告引擎的作用,才可以将Asp.Net中的水晶报表转换成为普通HTML格式 水晶报表设计器(Crystal Report Designer (CRDesigner.dll)) 水晶报表就是在设计器中创建的...,在设计器中你可以设计标题,插入数据,公式,图表,子报表等。 ....rpt报表文件 执行报表中的第一步就是在水晶报表设计器接口创建此报表,在默认安装中微软已经提供了一些现成的.rpt例子。 ...注意:在一些复杂的操作中,报表服务器与Web服务器可能不在同一物理主机上,Web服务器将HTTP请求传送到报表服务器上去。水晶报表也可以当做WebService来执行。
译者:Fbilo 多细节带区 Crystal Reports 是世界上被用的最多的报表工具。...尽管 VFP 已经有了内建的报表编辑器,但许多 VFP 程序员还是使用 Crystal 的原因之一,就是因为它支持子报表。子报表就是运行在一个报表中的报表。...在 Crystal 中的解决办法是:先建立一个显示客户和他们的订单的报表,然后给它添加一个子报表来为当前客户显示信用证数据。 不幸的是,到现在为止,在 VFP 中也没有能做到同样事情的办法。...Add(添加)按钮添加一个新的细节带区,而 Remove (删除)按钮会删除选中的细节带区。你可以重新排列在列表中那些带区的顺序。...这要求在驱动游标和子表之间存在着一个关联,可以使用 SET RELATION 命令或者在报表的数据环境中建立一个关系。
FreeReportBuilder 能够和各种数据库工作 6. Magallanes 结合基于JasperReports静态报表,基于OLAP分析的Swing pivot table。...和基于JFreeChart图表charts ,可以读取SQL, Excel, XML, 等各种数据源, 可以输出PDF, XML, 和各种离线虚拟化的相关规格的文件 7....DataVision 类似水晶报表Crystal Reports,可以通过拖拉操作界面设计,可以输出HTML, XML, PDF, Excel, LaTeX2e, DocBook, or tab- or...Rilb RLIB是一种先进的报表引擎生成的PDF,HTML格式,CSV和专业的 报告文本格式(从一个简单的XML定义语言)。 11....使用iReport建立非常复杂的布局包含图表,图像,子报表,交叉报表等等。访问您的数据通过JDBC,TableModels,JavaBeans的,XML的,休眠,CSV和习俗的来源。
ActiveReports for .NET 6.0的最新更新增加了一个非常实用的工具,可以把Crystal Reports报表(2005和2008版本)转换为ActiveReports报表。...使用"CrystalToAR2005"工具转换Crystal Reports 2005报表。 2. 使用"CrystalToAR2008"工具转换Crystal Reports 2008报表。...Visual Studio版本和对应的Crystal Reports版本如下: Visual Studio 版本 Crystal Reports 2005 Professional, Team System...转换的报表元素对应表和相关说明如下: Crystal Reports ActiveReports Note BoxObject Shape The line width property is not...· OLE对象不会被导入,因为OLE对象在Crystal Reports对象结构中是作为PictureObject处理。
一、场景描述 (一)问题 系统中最初使用Crystal Report(水晶报表)工具生成报表,并将报表发送给客户端查看,此时定义一CrystalReport工具类即可完成水晶报表的生成工作。...需求仍然在变更,报表工具增加了Fine Report(帆软报表),要求在输出的同时,存储到FTP服务器上、邮件发送给指定用户,输出格式需要Excel…… (二)解决方案 针对此场景,之前的办法很痛苦(通过定义类实现接口...报表工具一共有三种,即Crystal Report、SSRS和Fine Report,因此可定义三个类实现Report接口。...因此可以定义各种ReportGenerator的装饰类,用于给报表工具类(三种中具体的某一种)添加装饰(可以添加多种装饰,并可多次添加)。...调用端,可创建某类型的报表(三种报表服务中的一种),并调用不同的装饰器类组合,实现动态扩展类功能,例如调用ExportWordReport、ExportExcelReport和StorageReport2FTP
将一方的主码增加到另一方实体对应的关系中。 (2) 1: N或1: *联系。将一端实体的主码加入到N端实体对应的关系中。 (3) M: N或*: *联系。...(2) 一端实体的主码。 (3)与该联系相关联的实体的码。 除此之外,还可能包含其它关系模式的主码。...根据管理员和商家设置的报表选项,从订单表、商品表以及商品分类表中读取数据,调用第三方服务Crystal Reports生成相关报表。 (8)维护信息。...管理员维护(增、删、改、查)顾客表、商品分类表和商品表中的信息。 现采用结构化方法实现上述需求,在系统分析阶段得到如图1-1所示的顶层数据流图和图1-2所示的0层数据流图。...E1、商家 E2、支付系统 E3、物流系统 E4、第三方服务Crystal Reports 这个E4的答案给的是【第三方服务】/【Crystal Reports】这个我认为是一句话。
打包,并自动安装SQL数据库 应一位网友的需求,并修正了MVP李洪根".NET平台下WEB应用程序的部署(安装数据库和自动配置)"中的osql用法错误,已测试通过。 一).创建部署项目 1....在“文件”菜单上指向“添加项目”,然后选择“新建项目”。 2. 在“添加新项目”对话框中,选择“项目类型”窗格中的“安装和部署项目”,然后选择“模板”窗格中的“安装项目”。...从列表中选择“主输出”和“内容文件”组,然后单击“确定”。 三).创建安装程序类 1. 在“文件”菜单上指向“新建”,然后选择“项目”。 2. ...(如果有引用其他的dll) 5.如果使用了水晶报表,手动加入要包含的文件:项目-->添加-->合并模块(添加你的程序文件) (包括dotNetFramework和MDAC27),位于:C:\Program...Crystal Decisions 命名空间) * Crystal_Managed2003.msm Crystal_Managed2003_chs.msm (对于使报表运行所需的所有其他文件
1、仅触发一次的事件 以下是在报表的处理过程中仅触发一次的所有事件这些事件在报表的处理周期中仅在最开始和结束前触发一次。 ReportStart 该事件在DataInitialize事件触发之前发生。...使用此事件来初始化运行报表时需要的任何对象或者变量。还可以使用此事件设置子报表控件一个新的子报表实例。一旦该事件处理完成,不要动态的向报表动态地添加项目。...使用FetchData事件在非绑定报表中设置通过DataInitialize事件添加的自定义字段的值。或者在绑定报表中执行特殊功能,比如将两个字段结合或者执行计算。...PageEnd 该事件在一页呈现之后触发。使用该事件来更新运行一个非绑定报表时,每个页面需要的任何变量。 当绑定和非绑定数据值设置时 1....报表不应当设计的过度的依赖事件触发的顺序。 重要: 切勿在以上区域事件中引用报表的Fields集合。仅在DataInitialize 和 FetchData 事件中对Fields集合进行访问。
有时数据库字段的单位和报表中显示的单位不同,我们需要进行计量单位之间的转换,这时就离不开公式的使用。...一个公式可以有很多行,但只有最后一行的计算结果才会作为整个公式的结果打印在报表中。 C.条件计算 在这个例子中我们重点演示如何使用If-Then-Else操作符。...在公式中可以使用变量、常量。也可以引用数据库字段,其格式为:{库名.字段名} A.操作符 水晶报表支持大量的操作符,有些是常见的,也有些是Crystal Reports特有的。...Like操作符的用法类似Visual Basic,也是将字符串表达式和通配符表达式中的样式做比较。...公式中也可以包括多个语句行,行尾使用“;”分割。 K.函数 水晶报表支持大量函数,包括数学函数、统计函数、日期函数、字符串函数、数组函数等等。在水晶报表的帮助文件对每个函数都有详细的介绍。
在我们的项目中,为了能够保存分析报表以及用户设置的报表查询条件,我们将这些信息视为报表元数据存储在MongoDB中。...正在思索中,突然想起对于这样面向文档的NoSQL数据库而言,使用聚合(Aggregate)来观察表记录会更加恰当。这个想法恍若闪电般迅捷而锐利,猛地撞向脑中的思绪,一下子点燃了我的设计思维。...,若可能被别的调用者单独调用,则应该作为单独的聚合分离出来 在聚合边界内的非聚合根对象,与聚合根之间应该存在直接或间接的引用关系,且可以通过对象的引用方式;若必须采用Id来引用,则说明被引用的对象不属于该聚合...若一个对象缺少另一个对象作为其主对象就不可能存在,则该对象一定属于该主对象的聚合边界内 若一个实体对象,可能被多个聚合引用,则该实体对象应首先考虑作为单独的聚合 这些设计原则都是我在探索聚合设计时的一些思考...他就像一个记梦人一样,用明确、坚决的线条,在日复一日的合理性中描绘不合理的场景。来自Mono的《插画太空馆》。
概念Wrapper装饰器,又称Decorator,是继承关系的一种替代方案;顾名思义,封装一下,修饰一下目的:为对象增加不同侧面的特性装饰模式是在不必改变原类文件和使用继承的情况下,动态的扩展一个对象的功能...注意在装饰模式中,必然有一个最基本、最核心、最原始的接口或抽象类充当Component抽象构件。...定义BReport类完成相应报表生成定义report接口,AReport和BReport都会实现热report接口,客户端统一调用;需求变更:工具发给客户端(PDF)同时,导出一个可编辑的word。...之后所有继承装饰器父类的子装饰器,都是具体增加功能的实现。...缺点装饰器模式添加了许多子类,过多使用会使程序变得很复杂增加了系统的复杂程度,加大了使用者的学习成本和理解难度JAVA IO中的装饰器模式输入输出流架构图片装饰● 抽象构件(Component)角色:由
常规报表工具一般都会提供报告分析功能。 Excel和BI @ Report都可以执行报告分析,但是Excel中分析的强度和维度可能相对简单,而BI @ Report的报告则更深入地分析了维度和复杂性。...BIRT主要包括两部分:基于Eclipse的报表设计和可以添加到您的应用程序服务中的运行期组件。 BIRT同时还提供图形报表引擎。...2.iReport iReport和jasperreports是为后者开发的纯Java可视报告设计器。 Ireport允许用户直观地编辑包含图表,图片,子报表等的复杂报表。...商业智能分析软件亿信BI产品内含多个场景,这些场景都支持大数据的3D可视化。在3D场景中,可以实现诸如钻取,联动,轮播,旋转和3D漫游等功能。...但是从理论上讲,水晶报表(Crystal Report)仅支持单数据集,对多个集合的支持取决于数据库的计算能力(叉乘和联合或编写存储过程),并且通常很难支持多个库。
从工具成本的角度来看,开源工具的确是低成本的,但是在实际应用过程中,开源报告的成本效益并不高,因为大多数开源报告工具都是国外,没有像样的技术支持、学习文件,而且学习英语的成本相对较高。...另外,从功能实现的角度来看,开源报表工具智能满足一些简单报表问题,但是一旦遇到中国式的复杂报表,就很难解决。此外,开源报表工具没有专业的技术支持和维护。...国外比较典型的是Crystal Reports和Cognos,国内知名度较高的是帆软FineReport。...普通报告类型可用于执行一些常规查询和填写报告模板,例如业务经常需要的日报、周报。...汇总报告类型专门用于中国式的复杂报表,您可以将报告模板中的每个模块分开,例如以下复杂的帐单: 除了基本的数据显示和报告功能外,FineReport还具有决策报表功能,这是我非常看好的功能,可用于显示流行的大屏可视化
此外,还要注意的是这个注册表中还包含着少量的OBJTYPE被设置为非100的一些记录。...在FFC中的工具 VFP主目录下的FFC(FoxPro Foundation Classes,FoxPro基础类库)子目录中包含着少量几个有助于报表问题的类库。...各自都要执行一些任务并且都是_ReportListener的子类,而你想要为一个特定的报表用上这两个listener。...DrivingAlias包含着报表的主游标的名称。ReportUsesPrivateDataSession如果为.T.,则象该属性的名称一样,报表会使用私有数据工作期。...PrepassStatusText包含着当报表正在进行“预处理”以计算_PAGETOTAL的值时要显示的消息。RunStatusText包含着在报表运行中的时候要显示的消息。
这就好比在mysql当中,有大量慢查询导致cpu过高,你光靠扩展从库而不去先优化SQL,扩展到什么时候是个头呢? 慢查询问题:某个促销活动的晚上,大数据报表果然又准时出现打开慢的现象。...执行时间在0.5秒左右,0.5秒对于redis来说应该是非常慢了。如果这样的查询比较多的话,那么redis确实很可能出现阻塞,在看了下value值的大小,应该还好不算大。...缺点: 1、非实时 2、全量持久化 3、每次保存RDB的时候,Redis都要fork()出一个子进程,并由子进程来进行实际的持久化工作。...在数据集比较庞大时,fork()可能会非常耗时,造成服务器在某某毫秒内停止处理客户端 aof持久化:每秒写aof文件,实时性较高,增量写,顺序记录语句,便于误操作恢复 缺点: 1、bgrewrite重写...,fork进程,短暂阻塞 2、重写时fork进程可能导致swap和OOM(预留1半内存) 简单介绍完两种持久化策略之后,最后给出我实际优化后的策略: 主/从业务库关闭rdb和aof持久化,新增一台从库(
XA事务的提交阶段通常按以下顺序执行:首先进行prepare阶段:在prepare阶段,事务协调器会向所有参与者发送prepare请求,并等待参与者的响应。...在这个阶段,参与者会将事务操作记录到事务日志中,并锁定相关资源,以确保事务的一致性和持久性。...然后进行commit阶段:在commit阶段,事务协调器会向所有参与者发送commit请求,并等待参与者的响应。在这个阶段,参与者会真正执行事务操作,将结果提交到持久化存储中,并释放之前锁定的资源。...按照prepare和commit的顺序执行是为了确保事务的原子性和一致性。 在prepare阶段,事务参与者会执行事务操作,并将操作记录到事务日志中,但是并不会真正提交事务,以避免发生不可恢复的错误。...因此,为了保证事务的一致性,正常情况下应按照prepare和commit的顺序执行。
--执行目标的标识符,用于标识构建过程中的目标,或者匹配继承过程中需要合并的执行目标--> <!
文档中常见台湾用语 学习资料 【实习】T100开发学习笔记 执行程序的方法 假设你现在已经通过 Xshell 或某种工具连上公司的 Linux服务器 ---- 方法一:在 Xshell 命令行:...标准模组,如aao、axm、aim…) 4gl:源程序,编译后产生42m,再经过链接产生42r 4fd:源画面,编译后产生42f sch:数据表 4rp:凭证报表的主程序 fr:帆软报表 dzx:设计资料..._x01、aimi100_x02、… 为 查询报表(Xtra Grid) 的子程序 ---- 程序开发过程中需要一个以上的画面时,可以额外制作子画面。...(多样板) 子报表:axmr402_g01_subrep01.4rp Web Service 程序编号 在 $COM/WSS 模块内提供了 Web Service 主程序专用的相关子程序。...提供给一般 ERP程序进行链接呼叫。 函数(Function)命名原则 函数名称须为「程序名称」+「此函数功用」,同一程序中不可使用相同的函数名称。
领取专属 10元无门槛券
手把手带您无忧上云