




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
UAP报表二次开发手册v.8711. 数据源定义报表数据源可分为实体关系查询,SQL脚本查询和自定义查询三个类型,如下图所示:图1.1其中数据源名称和数据源描述是为了标识数据源以及说明数据源的功能。1.1查看或修改现有数据源“查看或修改现有数据源”是指对原先已经创建的数据源进行修改(系统预置的数据源不允许修改),或者可以在新建报表时选择已存在的数据源,如下图:图1.2选“下一步”:图1.3则列所有已存在的数据源,选择其中一个,按“下一步”:图1.4功能列表是数据引擎内部使用机制,直接选“下一步”:图1.5这个是设置报表数据源的最后一个步骤,由于选定的数据源为自定义查询类型,所以第一个页签为自定义查询组件的相关信息(关于自定义查询组件的具体情况,请查阅本手册1.3单元);第二个页签如下图:图1.6查询结果列是指该数据查询结果的具体情况,包括列名称,列的数据类型,列的区域语言描述。这些信息将构成报表格式设计时的数据源信息(关于这部分内容的详细情况请参阅UAP报表设计时帮助文档)。另一个页签为“过滤条件设置”,如下图:图1.7具体包括过滤条件名称,过滤条件的区域语言描述,这个将在过滤条件的数据源下拉列表中出现,这些信息将用来设置从过滤控件读去用户输入条件值来对查询的结果进行过滤(具体情况清参阅本手册2.2单元)。之后,选择“完成”即结束数据源定义而进入报表格式定义。1.2实体关系查询在图1.1步骤中选定“实体关系查询”,点击“下一步”则进入实体关系查询类型的数据源定义:图1.8这里必须要添加至少一个关联实体,点击“添加”,则可选择系统已经定义好的实体:图1.9选定实体,然后点击“确定”:图1.10点击“下一步”(如果选择了多个实体,则还需要定义实体之间的关系。关于如何定义一个实体以及如何定义实体之间的关系,请参阅数据引擎的相关文档):图1.11接着必须添加结果列,即图1.6中的“查询结果列”。点击“添加”:图1.12这里弹出的列表为选定的单个实体或多个实体能查询到的所有的结果列的信息。选定需要的查询结果列后,点击“确定”:图1.13这个步骤中,“行数据权限”可以用来限制用户查询某些具体行数据的权限(行数据权限的设置以及其他高级功能的使用方法请查阅数据引擎相关文档)。1.3 SQL脚本查询在图1.1步骤中选定“SQL脚本查询”,点击“下一步”则进入SQL脚本查询类型的数据源定义:图1.14SQL脚本查询类型又分为SQL脚本和存储过程两个类别,可通过第一个页签的左上端的下拉列表中选择相应的类别(具体如何定义两种类别请查阅数据引擎相关文档)。其他三个页签中,“查询结果列”和“过滤条件设置”已经在前面的单元中说明,此处不在详述。其中,这种数据源类型有一个“查询参数设置”页签,如下图:图1.15如果脚本类型中选择的是“存储过程”,则此处可以使用“刷新”按钮来获取存储过程所需要的参数;而SQL脚本类型则需要手动填写参数的信息。需要注意的是,参数的名称必须与存储过程或SQL脚本的名称完全一致。运行时查询参数的具体值来源是通过过滤条件获得的,因此查询参数需要和过滤条件绑定在一起(绑定方法请参阅本手册2.2单元)。1.4 自定义查询自定义查询是指提供一个COM组件(通常为VB6.0组件)或.NET组件(通常为C#组件)来提供获取数据的方法(SQL脚本,存储过程或数据库临时表)。关于自定义查询组件的建立方法请参阅本手册3.2单元。在图1.1步骤中选定“自定义查询”,点击“下一步”则进入自定义查询类型的数据源定义:图1.16其中数据服务信息指的是自定义组件的相关信息,关于自定义查询组件的建立方法请参阅本手册3.2单元。2. 报表过滤条件2.1 过滤条件设计除了UAP本身单独提供了过滤条件的设计工具,报表本身也提供了专门为报表设计过滤条件的快捷方式。以下是报表设计过滤条件的入口:图 2.1图 2.2点击“标准条件”进入过滤条件设计器:图 2.3界面说明:是否支持高级条件:选此项后,在运行时过滤窗口中会出现“高级条件”页签,用于用户自由选择过滤条件的组合。规则组件:此项定义由过滤控件回调的规则组件类。是否取消二次开发:此复选项只有在以“U870”项目进入UAP时才会显示,如果被选中,那么以其它项目进入UAP的过滤设计器不能新增和删除过滤条件。此处可新增或修改一个过滤条件。双击某个已存在的过滤条件,则进入这个条件的修改界面:图 2.4界面说明:语种:设置过滤条件项显示的语种。中文简体名称:过滤条件项的键值,唯一标识此过滤条件项,不能重复。可以以字母、数字或汉字来命名。标题:在运行时过滤窗口中显示的文字,支持多语种设置。编辑类型:过滤条件项的类型,分别为文本框、参照、日期、数字、枚举、SQL语句、自定义。参照ID:当编辑类型选择参照类型后,必须选定一个参照ID。比较符:过滤条件项比较符号。小数位数:当编辑类型为数字类型时,此选项可以设置小数位数。分组:为过滤条件选定一个分组,在运行时将按照分组来显示过滤条件项。数据源:为过滤条件项选定数据源,可以下拉选择或直接手工输入。顺序号:指定过滤条件项在运行时显示的位置,如果不输入,将自动产生。是否常用条件:如果选中,将在运行时显示在“常用”页签中。是否必输:如果选中,在运行时必须输入值,否则会出现提示信息。是否区间条件:如果选中,在运行时将显示为两个输入框组合而成的形式,表示从值1到值2的意思。在运行时,用户选择或输入的不是单值,而表示一个取值范围。是否多选:如果选中,表示此过滤条件项可以选择多个值。允许用户修改比较符:如果选中,用户在运行时可以通过滤设功能改变比较符。作为或条件:如果选中,在运行时将以“或”条件来组合到过滤条件生成的SQL语句中,默认是以“与”条件组合的。参照返回字段:当编辑类型为参照类型时,此选项表示参照返回的是哪个字段的值。编码对应参照中的主键字段,名称对应参照中的描述字段。也可以手工输入要返回的字段名,一定要与参照中的字段名一致。默认值、到:设置过滤条件项的默认值,将在运行时自动显示。如果为区间条件,可以设置“到”默认值。修改界面的第二个页签是过滤条件项窗口枚举:图 2.5界面说明:枚举(aa_enum):指在U861中使用的枚举型,此类型是在AA_Enum数据表中定义的。枚举类型,枚举类型名称,是EnumType字段值。默认显示,在运行时当用户点击下拉按钮后显示的可供选择的项,注意是以“,”分隔的EnumCode字段的值。枚举类型:指明在Meta库中的MetaEnumDef表中的枚举,对应MetaID字段。枚举串:如果没有在数据库中预制枚举类型,也可以通过此项输入一个枚举串。格式为“0#1#A#B”,在“#”前的为返回值,之后的则为显示值,并且在返回值与显示值中分别以“#”分隔。只能定义以上三种枚举中的一种,否则会出现提示信息。修改界面的第三个页签是过滤条件项窗口SQL语句:图 2.6界面说明:SQL文本框:在SQL文本框中输入SQL语句,可以不用加别名。标题:在运行时中显示的列标题,标题数量与上面的SQL的字段对应,并用“,”分隔,例如“标题1,标题2”。返回字段:用此字段的值构成过滤控件返回调用者的过滤SQL语句。显示字段:显示在运行时过滤窗口中的值。在U870中,SQL语句类型的过滤条件主要为兼容以前版本,所以如果在U870中新建过滤条件时,请不要选用SQL语句类型,而改用参照类型。修改界面的第四个页签是过滤条件项窗口SQL语句:图 2.7属性说明:参照样式:当编辑类型选择为参照类型时,可以指定参照的样式,分别为弹出式和下拉式,默认为弹出式。关于过滤最后值得特别指出的是,过滤条件之间可控制相互关系,例如两个过滤条件都有参照,则可控制其中一个过滤条件的参照取值范围由另一个过滤条件的取值来决定。此外还存在其他相关控制行为,这些功能都是通过规则组件来实现的。关于规则组件的详细实现,请参阅过滤条件的相关文档。2.2 过滤条件与数据源的关系此处主要说明如何把过滤条件跟数据源关联起来,以达到由用户输入来实现查询不同数据的目的。对于实体关系类型的数据源,只要在过滤条件的基本属性页中选择数据源的相应列就能实现,如下图:图 2.8用户就可以在查询报表时进行过滤:图 2.9对于SQL脚本类型的数据源,无论是简单的sql脚本类型还是存储过程,都是通过将其参数与过滤条件进行绑定来实现的。如下图:图 2.10假如sql脚本或存储过程中有两个参数分别为:planid和filterstring,则必须要在“查询参数设置”页签中分别为每一个参数设置其相关信息。然后再设计过滤条件:图 2.11此处需要注意的是,“中文简体名称”必须以这样的规则命名:“查询参数设置”的参数为pram,则“中文简体名称”为parm,两者之间相差一个符号“”。需要指出的是虽然SQL脚本可以通过参数来绑定过滤条件,但是过滤条件绑定到参数的同时,还必须为此过滤条件指定一个数据源查询结果列,查询时输入的过滤条件对该返回结果列同样起作用。对于自定义的数据源的过滤条件绑定与实体关系得数据源相似,但是设计者需要在自定义组件中自己处理由用户输入信息构成的sql串来实现对查询结果的过滤。3. 报表系统API3.1 自定义报表查询入口所谓自定义报表查询入口指的是用UAP设计了一张自定义报表,除了默认的查询入口:门户-视图-我的报表-自定义报表,另外为此报表设置单独的菜单节点来进行查询。只要在此节点的点击事件处理函数中调用报表系统的以下接口就可实现:A.Public Function OpenReport( _ sReportID As String, _ objU8Login As Object, _ Optional subid As String = , _ Optional rawfilter As Object = Nothing) As Boolean B. Public Function OpenReportNoneFilterUI( _ sReportID As String, _ objU8Login As Object, _ Optional subid As String = , _ Optional rawfilter As Object = Nothing) As Boolean 接口功能及使用说明:这两个接口是对象ReportService.clsReportManager中的函数;需要引用组件:ReportService.dll UFIDA.U8.UAP.Services.ReportFilterService.tlb 这两个接口的功能是打开一张报表,两个接口的差异在于前者在打开报表之前会先显示过滤界面,而后者不会(例如在使用联查报表的时候有时不需要进行过滤)。此接口在业务组在其需要打开一张报表时调用。参数介绍:sReportID:报表的ID,即将要打开的报表标识。objU8Login:U8的Login对象,注意:这个对象必须是COM封装的Login。subid:报表所属的子产品号,这个参数是可选的。注意:当指定了此参数,接口会在随后的处理中按照subid_sReportID的规则拼接成真正的报表ID。rawfilter:可选过滤条件对象(UFGeneralFilter.FltSrv或自定义的过滤条件对象),此对象中必须是ISelfFilter(见第四个接口)的一个实现。这个参数通常报表的自定义行为(如联查)时,需要有过滤的情形时会使用到。至于怎么在U8中设置自己的菜单节点,请参阅U8门户相关文档。3.2 自定义数据源组件报表的自定义数据源是指单独写一个组件来提供报表数据,这种数据源实现方法的优点强大的数据处理能力,这是其他类型的数据源所不具备的。实现方法为:组件中必须实现以下接口:public interface IGetSql void GetSql(IFilterArgs e); 接口功能及使用说明:此接口为报表提供自定义数据源。组件的提供方式为首先提供一个实现IGetSql的组件(COM组件只需有一个声明相同的GetSql函数的类即可),之后将其绑定到报表的数据源(具体方法是请参考本接口示例)。组件的工作方式为报表系统会在展现报表的过程中实例化一个此种类型的对象,通过调用GetSql函数来获取数据源。参数介绍:IFilterArgs参数是UFIDA.U8.UAP.Services.ReportFilterService.tlb中的类型,在报表系统调用自定义数据源组件的时通过此参数将组件需要的环境信息传入,而自定义数据源组件则将其处理结果通过此参数返回给报表系统。IFilterArgs中包含的常用接口:IFilterArgs.login:U8的Login对象IFilterArgs.RawFilter:过滤对象IFilterArgs.DataSource.Type:组件数据源返回类型,其值与对应类型为0:SQL脚本 1:存储过程 2:临时表其默认值为2IFilterArgs.DataSource.Sql:SQL脚本或临时表名称IFilterArgs.DataSource.StoreProcName:存储过程名称示例:(1)以下提供一个名为CustomDataSample的vb6.0的dll,此组件中定义一个名为customData.cls类,其代码如下(IFilterArgs的):Public Sub GetSql(e As IFilterArgs) e.DataSource.sql = “select * from AA_Bank” e.DataSource.Type = 0End Sub构造好组件之后,需要将组件绑定到报表的数据源,绑定方法如下:假设组件名称为:DataEngine.dll,而实现IGetSql的类型名称为:EngineVB6.0组件的绑定方法:(注意:COM需要注册,不要求具体存放目录,一般推荐存放目录为:.U8SOFTufcomsql)图 2.12C#组件的绑定方法:(注意:.NET组件不需要注册,但存放目录必须是:.U8SOFTUAP)图 2.123.3 自定义行为组件自定义行为是指在报表查询结束后,设计者提供额外的功能来进行相关处理,比如联查功能等。方法是实现以下接口:public interface IExecute void Execute(IActionArgs e); 接口功能及使用说明:此接口用来完成报表自定义行为的业务操作。组件的提供方式与IGetSql接口类似,不同的是其绑定到报表系统的过程(示例将详细说明)。组件的工作方式为在自定义行为绑定到报表系统之后,报表展现界面的右键菜单中将相应的子菜单,触发此子菜单后报表系统将实例化此组件实现IExecute类型的一个对象,并调用此对象上的Execute方法。参数介绍:IActionArgs是在进行自定义行为的时候数据交互的媒介,IActionArgs中的常用参数:IActionArgs.ReportID:当前操作的报表IDIActionArgs.Login:U8的Login对象IActionArgs.RelateData:当前报表的相关数据对象,通过此对象中的接口GetData可获得相关的数据IActionArgs.CurrentColumnName:触发自定义行为时报表所处的焦点行名称IActionArgs.FltArgs:IFilterArgs对象自定义行为绑定到报表系统例子:(假设组件名为ExcuteSample,类型名为clsExc,定义方法参考IGetSql的示例)图 2.13在报
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民法学上课件
- 初一物理考试试题及答案
- 北京驾校考试题库及答案
- 化工产业新质生产力测评体系
- 新质生产力×文化创新:融合赋能新未来
- 新质生产力五大生产要素
- 博鳌论坛:新质生产力对话
- 职教助力新质生产力
- 农业农村新质生产力发展
- 2025年急救护理医学实战技能操作考核答案及解析
- 2025-2030中医药大健康产业链整合与投资机会分析报告
- 小学三年级上册《健康成长》全册教案教学设计
- 有机化学-药用化学基础中职PPT完整全套教学课件
- 国土空间规划概述课件
- 消费者心理学PPT完整全套教学课件
- 《新编实用英语》教学方法的探讨与研究
- 阴式子宫全切术
- 军人常见心理问题
- 某大酒店弱电智能化系统清单报价
- 2023年兴文县中医院康复医学与技术岗位招聘考试历年高频考点试题含答案解析
- 阿联酋法律体系
评论
0/150
提交评论