NC6X报表数据加工做语义模型返回SQL篇.doc

  1. 1、本文档共44页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
报表语义模型(数据加工:返回SQL方式) 数据加工方式:1.返回查询SQL ; 2.返回结果集DataSet;3.返回数据表(下次做了提供案例)。 实现方式基本一致,可以参照系统原有报表语义模型(抱歉不详细仅供参考) 实现基本思路概况(不详细比较啰嗦) 首先不管语义模型数据加工是返回SQL、DataSet或者TABLE任何一种类型基本实现步骤一致; 先按需求实现的难易程度来选择使用以上那种方式来实现:一般数据都能SQL查询出 来的,偶尔有一两点数据取不到可以选择返回SQL,不会取数的那段创建临时表;如果是基本上都是东拼西凑的取数那就返回DataSet方式;最后一种时返回TABLE这种场景标准产品用的也不多,后续提供案例; 数据加工做语义脚本肯定需要定义接口和实现类,确定好报表属于那个模块创建接口和实现类并配置好接口文件UPM就好,具体配置可以参考改模块其他接口文件; 数据加工接口参数一一般都是传com.ufida.dataset.IContext或者 nc.pub.smart.context.SmartContext,这个是报表上下文,所有查询参数及系统变量 都放在这个里面,语义模型与接口里面这个两个context 基本可以互相转换,后面案例就可以看出; 不要想着是不是我要先把语义模型和自由报表配置好了再写数据加工代码,没用!正确可行的方式先写数据加工代码; 首先就要自己明确报表的取数逻辑,脑海大概设计下大概的代码怎么写; 确定查询条件及数据类型,接口实现类里面定义全局变量查询条件(推荐)默认否赋值,方便调试代码,因为这块还没用到查询模板,没法动态获取查询条件,后面分配了查询模板重新覆盖查询变量值就好了(数据加工报表只能做单据查询模板那种分配给报表节点); 如果是DataSet返回方式的接口实现类里面定义好元数据列及数据类型,SQL返回方式没有这一步操作; 然后就是写报表取数逻辑代码,按自己默认设定查询变量值去写好代码及判断逻辑,最后返回数据(SQL、DataSet或者TABLE); 客开报表一般把语义模型和自由报表定义在集团或者全局的节点,这也是规范和经验所得; 在语义模型-集团(举例,全局节点也行)节点定义好自己的与模型,点设计弹出界面数据加工放入调用写好的数据加工过接口进行代码调试及代码纠正; 现在调试接口参数context基本上时没有什么数据的,目前也不会有查询条件字段在里面,没有分配给节点查询模板呢,打开报表节点查询调用代码才能看到里面很多参数和值,所以暂时接口实现类不初始化查询参数方法及校验; 语义模型数据加工里面放入调用接口代码,格式化,编译通过,下一步,代码成功的话会正常返回报表字段列(元数据)页签,点确定,“3选择字段”自己添加字段列,这里的字段必须是代码返回的,不能自己随便新增无效的;自己添加字段“表达式大方框”必须选择左下角“数据加工(dp)”里面的字段,这个表达式里面可以写公式;最后解释下“数据加工(dp)”这个命名都是这样写规范,防止其他实施不随意修改。 然后就是自由报表设计了,在“自由报表-集团”或者“自由报表-全局”节点,引入刚才做好的语义模型文件,设计报表界面及相关统计等(这里不多说,不懂问实施或开发); 记得自由报表设计界面有右上角“标题”左边有个“主组织属性设置”螺丝一样的按钮,如果是报表存在组织查询条件的报表,这里必须设置集团和组织字段(代码或者SQL里面默认字段pk_org与pk_group)就不需要你设置,自动识别,否则需要手动设置(集团节点设置pk_group,反之都设置),如果这里没设置,可能出现语义模型可以预览数据,而自由报表预览无数据现象。一般不需要查询组织条件的报表,报表字段只需要业务字段+pk_group,发布组织类型为集团的报表节点即可;如果需要用到组织查询的报表,报表字段只需要业务字段+pk_group+pk_org,发布组织类型为具体组织(销售、库存、财务等)的的报表节点。 自由报表界面格式设计好了就需要发布节点,如果改报表用不到组织字段那就发布集团类型的报表节点;如果用到了组织,那就发布具体的组织(销售、库存、财务等)的节点。 分配报表节点权限,制作报表查询模板,并分配给报表; 打开报表节点 校验报表及查询模板能否正常加载出来; 如果报表正常显示加载出来,测试查询模板,接口实现类断点调试,把剩下的查询参数初始化与查询条件值校验工作完成; 以上工作完成,导出代码补丁、报表文件补丁、SQL脚本补丁给实施测试验证就大功告成! 定义报表数据加工接口及实现类代码 定义接口及接口方法: 截图: 以下是代码: package nc.itf.cmp.report.ext; import com.ufida.dataset.IContext; /** * 资金管理

文档评论(0)

shujukd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档