U9自定义报表U9客户化开发支持部苗庆波2009年06月13日课程编号:U9报表界面展现U9报表特点报表开发工具二次开发的支持报表界面展现设计时态运行时态工具操作系统/ .NET Framework / J2EEDatabaseMessageIMMobilityOfficeSearchUI框架流程框架报表框架业务层框架服务框架PortalMVC框架Ajax引擎抽象控件模型离线引擎工作流引擎工作列表工作流监视器服务引擎JOB引擎服务/代理实体框架操作框架AOP框架服务框架持久化引擎报表与打印引擎权限管理IDE集成开发环境组件浏览器OFFICE实施工具数据导入导出工具布置工具升级中心UI模型设计器表单设计器参照设计器流程设计器服务设计器实体设计器事件设计器状态机设计器异常设计器对象/关系映射报表与打印设计器UI元数据流程元数据服务元数据实体元数据报表元数据元数据U9架构中的报表UBF报表引擎是完全基于Web架构实现的报表,是一种部署之后任何上网工具都能直接(无需插件)访问的报表。运行期报表核心解析引擎以Web Service服务方式部署在专用服务器上,客户端调用Web Service接口从报表服务器取得展现结果;基于服务器架构使报表部署更加灵活,可扩展性更强;报表运行时大规模I/O及内存需求将由报表服务器负担,释放了IIS服务器的压力。Report DesignerWeb Runtime ControlWindowsRuntime Control第三方应用Union Report ObjectClient AgentUFRDLHTMLPDFCSVEXCELGIFXMLReport ServerDataProcessData ProviderInterfaceGeneral DataProviderUser DefineData ProviderWeb service remote interface基于Web的报表报表定义语言(UFIDA Report Define Language):报表模型定义的XML描述,是UBF报表引擎的核心设计模型。以ERP报表应用为问题域,抽象出表达报表内容的对象及组合,独立于具体报表实现,是用友公司在此领域几十年实践经验的沉淀。下图展示U9_UAP报表组成框架及UFRDL的核心地位:报表定义语言(UFRDL)报表设计器(Report Designer)报表运行时工具及部件(Runtime Tools & Control)报表服务器(ReportServer)报表定义语言(UFRDL)报表=数据查询逻辑OQLSQL可扩展业务逻辑(DataCommand )报表布局表格(Table)矩阵(Matrix)图表(Chart)子报表+统一报表对象模型统一报表对象模型以实现ERP应用中所有报表作为问题域抽象得到的通用对象模型,用于应用系统数据的可视化展现。图文混排是UBF报表引擎在展现布局上最为关键的突破,图文并茂的报表更能吸引用户的眼球,支持图文混排的报表产品将成为引人注目的卖点。与传统的单一表格样式报表相比,UBF报表布局更加自由:表格、矩阵、图表、图像、线条、文本框、矩形等都是可在报表背景画板上任意组合的绘制元素;元素间可相互嵌套(表格可嵌套图像、子报表,子报表又可由其他元素绘制而成);还可为绘制元素添加修饰,如:前景色、背景色、边框/线条样式、线条颜色、字体等。支持图文混排报表元数据服务设计从一开始就充分考虑了按需定制报表需求:同一报表不同人看关注点会不同,当前报表只呈现特定用户关注的信息。报表元数据管理器,表按User ID存储客户对报表的查询偏好。报表查询方案管理元数据按需定制支持设计Web Control和 Windows Control 使报表结果可以展现在不同平台上。控件设计使报表服务同应用能在运行时实现互动。嵌入使程序员能任意组合UI。嵌入式客户端展现表格是报表最主要的展现形式,UBF报表用Table对象支持表格展现,Table分为表头、表体、表尾、分组头/尾等区域,表格区域可独立灵活绘制。无论是电子表格还是基于数据集生成的动态表格能够轻松设计。动态表格设计视图电子表格设计视图可视化表格设计创建表格聚合区域UBF报表中的表格(Table)和矩阵(Matrix)都能对数据进行分组汇总。企业应用通常要对报表数据进行分类分析,比如计算相同部门的销售额合计,计算不同月份销售数量的累积结果等,利用此特性都能轻松实现。在分组汇总区域上的聚合运算表格分组汇总多数据库、异构数据源查询同一报表可以从多个数据库查询数据,支持异构数据库访问。多数据集展现传统报表的数据通常来源于单一数据集合,UBF报表引擎能将多个数据集展现在一...