`
datamachine
  • 浏览: 156869 次
社区版块
存档分类
最新评论

在主表中动态插入子表字段

阅读更多

   库表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(?)来调用。

 

  • 大小: 22.4 KB
  • 大小: 10.7 KB
  • 大小: 18.2 KB
  • 大小: 41.4 KB
  • 大小: 63.1 KB
  • 大小: 32.2 KB
  • 大小: 47.9 KB
  • 大小: 28.9 KB
  • 大小: 54.6 KB
2
1
分享到:
评论

相关推荐

    KETTLE实现循环批量多表抽取添加字段

    KETTLE实现循环批量更新表添加字段,将kettle资源库抽取到另一个数据库中并输出抽取表单,(本文用的是MySQL)

    达梦数据库_SQL语言手册

    派生表子查询 定量比较 带 谓词的子查询 多列表子查询 查询结果的合并 和 子句的使用 子句的使用 子句 选取前儿条数据 选取其屮几条数据 全文检索 层次查询 层次查询子句 层次查询相关伪列 层次查询...

    mysql数据库的基本操作语法

    每个表最多只允许一个主键,建立主键约束可以在列级别创建,也可以在表级别上创建。MySQL的主键名总是PRIMARY, 当创建主键约束时,系统默认会在所在的列和列组合上建立对应的唯一索引。 列模式: create table temp...

    Access2003中文版应用基础教程part2

    8-3-6 在选项卡中插入子窗体 8-4 切换面板管理器 8-4-1 建立新的切换面板 8-4-2 新建切换面板项目 8-4-3 修改切换面板项目 8-4-4 调整切换面板的顺序 8-4-5 设置自动启动切换面板 8-5 数据透视表与数据透视...

    Access2003中文版应用基础教程part1

    8-3-6 在选项卡中插入子窗体 8-4 切换面板管理器 8-4-1 建立新的切换面板 8-4-2 新建切换面板项目 8-4-3 修改切换面板项目 8-4-4 调整切换面板的顺序 8-4-5 设置自动启动切换面板 8-5 数据透视表与数据透视...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    本书是第II卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行桌面程序开发各个方面的知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作...

    数据整理与分析实验报告.doc

    如果希望结果是以百分比的形式显示,则可双 " "击数据区域中的"计数项,性别",则会弹出"数据透视表字段"对话框。选择"占同列数据总" "和的百分比"选项,来表示所出现的频率,最后,单击"确定"按钮,又回到"版式...

    fastreport4 实例中文教程

    2.10、通过text组件显示数据表字段 29 2.11别名 30 2.12、变量。 30 2.13、“Picture”控件 32 2.14、图形报表 33 2.15、多行文本显示 34 2.16、文本拆分 36 2.17、组件的Wrap 37 2.18、显示数据表中的数据 ...

    FastReport4用户使用手册

    2.10、通过text组件显示数据表字段 2.11别名 2.12、变量 2.13、“Picture”控件 2.14、图形报表 2.15、多行文本显示 2.16、文本拆分 2.17、组件的Wrap 2.18、显示数据表中的数据 2.19、标签式打印 2.20、子bands ...

    fastreport4教程

    2.10、通过text组件显示数据表字段 29 2.11别名 30 2.12、变量。 30 2.13、“Picture”控件 32 2.14、图形报表 33 2.15、多行文本显示 34 2.16、文本拆分 36 2.17、组件的Wrap 37 2.18、显示数据表中的数据 ...

    fastreport快速报表系统4用户使用手册

    2.10、通过text组件显示数据表字段 29 2.11别名 30 2.12、变量。 30 2.13、“Picture”控件 32 2.14、图形报表 33 2.15、多行文本显示 34 2.16、文本拆分 36 2.17、组件的Wrap 37 2.18、显示数据表中的数据 ...

    数据库原理实验报告整合

    2、继续执行Create Database之后的语句,在“student”数据库中用Create Table命令依次建立S、C和SC这三个数据表,各表字段如下: STUDENT(SNO,SNAME,SEX,DOB,DEPT,TELNO) COURSE(CNO,CNAME,CPNO,TEACHER,CREDIT) ...

    ORCALE语句大全

    查看表字段结构 desc student; 7 增删改查 增 insert into student(SNo,Name,Sex,Birthday,Salary) values(1002,'朱文锋','男','01-5月-12',2000); 修改日期的默认格式(临时修改,数据库重启后仍为默认;...

    FastReport4中文使用手册

    2.10、通过text组件显示数据表字段.......29 2.11别名..............30 212、变量。.30 213、“Picture”控件................32 214、图形报表.................33 215、多行文本显示..............34...

Global site tag (gtag.js) - Google Analytics