在处理NC6X报表数据加工构建语义模型的返回SQL篇时,首先需要明确数据加工的三种方式,包括返回查询SQL、返回成果集DataSet以及返回数据表。在选择实现方式时,需要根据数据获取的难易程度来定,一般情况下,能够通过SQL查询出来的数据优先采用返回SQL的方式;如果数据来源多样,需要东拼西凑,则优先采用返回DataSet的方式;返回TABLE的方式使用较少,通常用于特定场景,并将在后续提供案例。
实现过程主要包含以下几个关键步骤:
1. 明确报表的数据加工逻辑,这通常需要先编写数据加工代码,而不是先配备好语义模型和自由报表。明确取数逻辑后,设计大致的代码框架,并定义查询条件及数据类型。
2. 设计语义模型的接口和实现类,创建属于特定模块的接口和实现类,并准备相应的接口文档。接口参数通常包括com.ufida.dataset.IContext或nc.pub.smart.context.SmartContext,这是报表的上下文环境。
3. 在DataSet返回方式的实现类中定义元数据列及其数据类型,而SQL返回方式则不需要这一步骤。
4. 编写报表取数逻辑代码,根据设定的查询变量值编写代码和判断逻辑,最终返回数据。
5. 在语义模型-集团(或全局节点)定义与模型相关的接口,并在界面设计时调用数据加工接口代码。通过数据加工,可以动态地获取报表字段列。
6. 在自由报表设计中,引入已做好的语义模型文献,并设计报表界面和相关记录。
7. 发布自由报表节点,针对是否使用组织字段进行相应的设置,并分配正确的报表节点类型。
8. 分配报表节点权限,制作并分派报表查询模板。
9. 测试查询模板,进行接口实现类的断点调试,完成查询参数初始化和查询条件值校验。
10. 完成后,导出代码补丁、报表文献补丁、SQL脚本补丁,并提供给实施人员进行验证。
在整个过程中,有几个注意事项需要特别关注:
- 报表上下文context在未分配查询模板之前,通常不包含数据,因此需要在实现类中定义全局变量查询条件并默认赋值,以便于调试。
- 推荐在接口实现类中定义全局变量查询条件,并默认赋值,便于后续调试。
-DataSet返回方式需要在实现类中定义好元数据列及数据类型,而SQL返回方式则无需此操作。
- 在自由报表设计界面中,针对有组织查询条件的报表,必须设立集团和组织字段。
- 在报表节点发布时,需要根据报表是否使用组织字段来确定发布集团类型节点还是具体组织节点。
- 报表设计完成后,需要进行分派报表节点权限、制作查询模板等后续操作。
在完成所有步骤后,确保报表能够正常显示,并能通过查询模板进行数据加载。进行代码补丁和SQL脚本补丁的导出,完成整个报表数据加工的实现。
2025-08-24 18:08:30
1.8MB
1