以后的例子使用MySql,建表的sql如下:
SET FOREIGN_KEY_CHECKS=0;
DROP TABLE IF EXISTS `course`;
CREATE TABLE `course` (
`cid` int(11) NOT NULL AUTO_INCREMENT ,
`tid` int(11) NULL DEFAULT NULL ,
`cname` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
PRIMARY KEY (`cid`),
FOREIGN KEY (`tid`) REFERENCES `teacher` (`tid`) ON DELETE RESTRICT ON UPDATE RESTRICT,
INDEX `FK_Reference_3` USING BTREE (`tid`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=7;
BEGIN;
INSERT INTO `course` VALUES ('1', '1', '礼'), ('2', '2', '乐'), ('3', '3', '射'), ('4', '1', '御'), ('5', '2', '书'), ('6', '3', '数');
COMMIT;
DROP TABLE IF EXISTS `sc`;
CREATE TABLE `sc` (
`sid` int(11) NULL DEFAULT NULL ,
`cid` int(11) NULL DEFAULT NULL ,
`score` int(11) NULL DEFAULT NULL ,
FOREIGN KEY (`cid`) REFERENCES `course` (`cid`) ON DELETE RESTRICT ON UPDATE RESTRICT,
FOREIGN KEY (`sid`) REFERENCES `student` (`sid`) ON DELETE RESTRICT ON UPDATE RESTRICT,
INDEX `FK_Reference_1` USING BTREE (`sid`) ,
INDEX `FK_Reference_2` USING BTREE (`cid`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci;
BEGIN;
INSERT INTO `sc` VALUES ('1', '1', '99'), ('1', '2', '56'), ('1', '3', '75'), ('1', '4', '60'), ('1', '5', '89'), ('1', '6', '33'), ('2', '1', '77'), ('2', '2', '69'), ('2', '3', '50'), ('2', '4', '99'), ('2', '5', '74'), ('2', '6', '63'), ('3', '1', '51'), ('3', '2', '82'), ('3', '3', '67'), ('3', '4', '55'), ('3', '5', '65'), ('3', '6', '95'), ('4', '1', '80'), ('4', '2', '82'), ('4', '3', '84'), ('4', '4', '88'), ('4', '5', '72'), ('4', '6', '56'), ('5', '1', '94'), ('5', '2', '90'), ('5', '3', '70'), ('5', '4', '54'), ('5', '5', '66'), ('5', '6', '49'), ('6', '1', '95'), ('6', '2', '73'), ('6', '3', '50'), ('6', '4', '94'), ('6', '5', '15'), ('6', '6', '60');
COMMIT;
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`sid` int(11) NOT NULL AUTO_INCREMENT ,
`sname` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`sage` int(11) NULL DEFAULT NULL ,
`ssex` varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
PRIMARY KEY (`sid`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=7;
BEGIN;
INSERT INTO `student` VALUES ('1', '子聪', '18', '男'), ('2', '子慕', '19', '男'), ('3', '子游', '17', '男'), ('4', '子思', '19', '男'), ('5', '弄玉', '16', '女'), ('6', '端木蓉', '19', '女');
COMMIT;
DROP TABLE IF EXISTS `teacher`;
CREATE TABLE `teacher` (
`tid` int(11) NOT NULL AUTO_INCREMENT ,
`tname` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
PRIMARY KEY (`tid`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=5;
BEGIN;
INSERT INTO `teacher` VALUES ('1', '伏念'), ('2', '颜路'), ('3', '张良'), ('4', '庖丁');
COMMIT;
ALTER TABLE `course` AUTO_INCREMENT=7;
ALTER TABLE `student` AUTO_INCREMENT=7;
ALTER TABLE `teacher` AUTO_INCREMENT=5;
----------------------------------------------------------------
打开eclipse,新建一个报表项目,名叫first_sample,如下图
在工程下新建个报表(中文补丁包翻译为报告),名为first.rptdesign,标准为空白报表。
在数据资源管理器(Data Explorer),新建一个“jdbc数据源”,并配置JDBC连接。如果第一次使用,需添加mysql的jar文件,如下图
在数据资源管理器(Data Explorer)中,右键单击数据集(Data Set)并从上下文菜单中选择新建数据集
SQL选择查询(SQL Select Query)为数据集类型,选择下一步
在Query Text中输入
select * from student
成功后可在预览结果(Preview Results)看到下图结果:
数据资源管理器(Data Explorer)配置如下:
现在选择选用板(Palette)。选用板显示所有可布置在报表中的元素。
从选用板中的网格(Gird)元素拖拽放入布局编辑器内,即文件的视图(Layout)的报告中,插入时提示您要制定创建的行列数的详细信息:输入1列2行。
在第一行插入标签,并输入“学生信息-览表”,
在第二行插入表,并设置表大小为:列数4,明细数据数为1,选择完成。
在数据资源管理器,把数据拖拽到明显数据行中,如下图:
采用同样的方法,处理其他数据,全部完成后,可以修改下网格第一行,及表中页眉头的样式。
点击查看报表,可以进行结果预览,如图:
预览结果如下:
第一个birt报表就完成了。