库表dColThread是主表,主键是tID。dColQuestion是子表,外键是tID,如下:
dColThread:
dColQuestion;
报表需要根据ApplicationName查询主表并以列表的形式展现数据。主表每条记录对应的status字段值有多个,但不超过5个,需要横向插入主表的Phone、Decline字段之间,依次命名为QuestionNo1、QuestionNo2…QuestionNo5。如果某列数据都为空,则这一列不显示。表样形如:
用集算器准备数据,代码如下:
A1:执行SQL,取出主子表关联数据。arg1是来自报表参数。假如arg1=”mfc”,则A1的计算结果如下:
A2:按照tID分组,每组是一条主表记录及其对应的子表记录,如下图:
A3:按照报表中列表的结构新建空二维表。
A4:循环A2中的组,每次向A3插入一条记录。循环体中可用A4引用循环变量,用#A4来引用循环计数。
B4:取当前组中status的字段值,并补足至少5条记录。
B5:向A3追加新记录。循环结束后A3如下:
A6:返回结果给报表。集算器对外提供JDBC接口,报表工具会将集算器识别为普通数据库。
然后用BIRT设计list表,模板如下:
如果QuestionNo列为空则应当隐藏。动态隐藏的方法有很多,这里介绍其中一种。对于QuestionNo5(其他列类似),可以先在dataSet的onFetch方法中使用如下脚本:
if(reportContext.getGlobalVariable(“t5″)==null){
reportContext.setGlobalVariable(“t5″,row.QuestionNo5)
}else{
reportContext.setGlobalVariable(“t5″,reportContext.getGlobalVariable(“t5″)+row.QuestionNo5)
再在QustionNo5列的Visibility属性中使用如下表达式: BirtStr.trim(reportContext.getGlobalVariable(“t5″))==”"
预览后可以看到报表结果:
报表调用集算器的方法和调用存储过程一样,比如将本脚本保存为dColMiddle.dfx,则在BIRT的存储过程设计器中可以用call dColMiddle.dfx(?)来调用。
相关推荐
完成主表的插入后,我们可以在同一事务中,利用`SqlSessionTemplate`和`AddressMapper`来插入子表数据。例如: ```java @Autowired private SqlSessionTemplate sqlSessionTemplate; @Autowired private ...
4. 在子转换中,接收表名参数,然后用`Table Input`读取该表的数据,通过`Modified Java Script Value`添加新字段。 5. 最后,使用`Table Output`将更新后的数据写入MySQL目标数据库。 6. 在Job中,设置循环结构,...
在MyBatis中,有时我们需要处理动态SQL,特别是在插入数据时,字段和表名可能根据不同的情况变化。本文将深入探讨如何在MyBatis中解决插入一个或多个新用户时,字段和表名不确定的问题。 首先,我们来看一下Java...
派生表子查询 定量比较 带 谓词的子查询 多列表子查询 查询结果的合并 和 子句的使用 子句的使用 子句 选取前儿条数据 选取其屮几条数据 全文检索 层次查询 层次查询子句 层次查询相关伪列 层次查询...
- LEFT JOIN / RIGHT JOIN:返回左侧或右侧表的所有记录,即使在另一侧表中没有匹配项。 - FULL OUTER JOIN:返回两个表的所有记录。 - **子查询**:作为另一个查询的一部分的查询。 - 内部查询必须放在圆括号内...
在数据透视表中,可以使用数据透视表字段列表来添加字段。如果要更改数据透视表,可以使用该字段列表来重新排列和删除字段。默认情况下,数据透视表字段列表显示两部分:上方的字段部分用于添加和删除字段,下方的...
Step 3:插入图表①单击菜单“插入“→”图表“弹出 “图表向导-4 步骤之 1-图表类型”对话框,在选项卡“标准类型“中的”图表类型“选项框中选择”条形图“,在”子图表类型 “选项框中选择”蔟状条形图“。...
- **解决方案三**:设置外键约束为`SET NULL`,删除父表记录时,子表中对应的外键字段设为NULL,但这需要确保子表字段允许为NULL。 4. **PL/SQL程序设计**: - 实验要求创建PL/SQL过程来实现课程的删除和添加。 ...
- 在新工作表中,Excel会自动打开“透视表字段”窗格。 - 将字段拖放到适当的区域:行区(如员工姓名)、列区(如部门或职级)、值区(如基本工资、奖金等)和筛选区(如入职日期或性别)。 3. **分析薪资数据** ...
一旦创建了数据透视表,用户就可以通过右侧的数据透视表字段列表来添加、删除或重新排列字段,以适应不同的分析需求。数据透视表的布局控制功能允许用户轻松地将行移动到列或将列移动到行,实现数据的不同汇总,这...
建立表间关系,即引用完整性约束,是在外键表字段上设置参照主表的主键。这保证了当主表中的数据发生变化时,子表中的关联数据也能相应更新。同时,删除操作需谨慎,遵循引用完整性的规则,先删除子表再删除主表。 ...
13. 表字段添加:在数据库中,要向表添加字段,通常需要进入追加状态或使用相应的SQL语句。 14. 回收站:回收站中的文件并非总是可恢复的,清空回收站后,文件将无法恢复。 15. 数据筛选:要从原表中提取特定条件...
Oracle 11g是Oracle公司推出的数据库管理系统的一个重要版本,其在数据库管理、性能优化、高可用性等方面有着显著的提升。本学习资料主要涵盖了Oracle 11g的基础知识、安装配置、SQL语言、数据库管理、性能调优、...
在 MyBatis 的 XML 映射文件中,我们需要定义 `resultMap` 来描述实体类的属性与数据库表字段之间的映射关系。对于“一对多”的关联,我们可以在 `resultMap` 中添加 `collection` 标签,指定子集合的类型、映射的...
2. **打开数据透视表创建对话框**:在“插入”选项卡中选择“数据透视表”命令。 3. **指定数据源**:在弹出的“创建数据透视表”对话框中,默认选择了光标所在位置的整个连续数据区域。如果需要,也可以在这里重新...
- 在右侧的“数据透视表字段”窗格中,你可以拖动字段到不同的区域,如“行”、“列”、“值”和“过滤器”。 - 将“区域”字段拖至“行”区,这样每个区域将会作为行标签。 - 将“月”字段也拖至“行”区,与...
- 将数据插入到 `news` 表中。 **5. 编辑新闻列表 (`news_edit.asp`):** - 展示 `news` 表中的所有新闻,提供编辑链接。 - 编辑链接跳转到 `news_update.asp` 页面。 **6. 修改并更新新闻 (`news_update.asp`):** ...
然而,并非所有表都适合建立索引,例如数据量较小的表、经常进行插入、删除、修改操作的表、数据重复度高且分布均匀的表字段,以及那些主字段索引值较多且常和主字段一起查询的字段。 2. SQL语句性能状态数据的收集...
外键的创建需确保本表字段与关联表字段类型一致,且关联表字段应为主键或具有唯一性约束。级联操作如`ON DELETE CASCADE`和`ON DELETE SET NULL`可定义当主键被删除时,外键的相应行为。 创建表可以通过子查询完成...
Excel会自动创建一个新的工作表,并在右侧显示数据透视表字段列表。 2. **字段、项和值**:在字段列表中,你可以看到数据源的所有列标题,它们被分为“行区”、“列区”、“值”和“筛选区”。行区和列区用于放置你...