Stimulsoft Report/Master-Detail Report报表简单实现

我们准备报表使用的表数据(sql server)

--创建学生表
create table Student(
    stuId int identity primary key,
    stuCode varchar(20) not null,
    stuName varchar(20) not null,
    stuAge int not null,
    stuSex int not null,
    teacherId int not null,
    notes varchar(100) null
);
--创建教师表
create table Teacher(
    teaId int identity primary key,
    teaCode varchar(20) not null,
    teaName varchar(20) not null,
    notes varchar(100) null
);
--录入学生表数据
insert into Student values('001','学生1',21,1,1,'');
insert into Student values('002','学生2',22,0,1,'');
insert into Student values('003','学生3',20,1,1,'');
insert into Student values('004','学生4',23,1,2,'');
insert into Student values('005','学生5',21,0,2,'');
insert into Student values('006','学生6',22,0,2,'');
insert into Student values('007','学生7',22,0,1,'');
insert into Student values('008','学生8',25,0,1,'');
--录入教师表数据
insert into Teacher values('001','张老师','');
insert into Teacher values('002','李老师','');

查看创建的数据表结果视图

 第一步:打开Stimulsoft Reports的设计器,新增,选择Master-Detail报表类型

 

 第二步:创建数据源(用得2016,旧需要创建连接,在创建数据源),选择ms sql server

1)选择New Data Source,创建报表数据源

 2)创建ms sqlserver连接,输入数据库地址、用户、密码,点击连接测试(打钩)

 3)点击ok,导入数据源(Teacher/Student)

 第三步、设置数据源的主从数据表的SQL

1)设置主表的SQL(Teacher),后续可以对数据源进行动态参数,这里写死

select aa.teaId,aa.teaCode,aa.teaName from
(
select a.stuId,a.stuCode,a.stuName,a.stuAge,a.stuSex,(case a.stuSex when 1 then '' else '' end) stuSexName,
b.teaId,b.teaCode,b.teaName 
from Student a
left join Teacher b on a.teacherId=b.teaId
) aa 
where aa.teaId=1
group by aa.teaId,aa.teaCode,aa.teaName

 2)设置从表的数据源(Student)SQL

select aa.* from(
    select a.stuId,a.stuCode,a.stuName,a.stuAge,a.stuSex,
(case a.stuSex when 1 then '' else '' end) stuSexName,
b.teaId,b.teaName 
from Student a
left join Teacher b on a.teacherId=b.teaId
) aa 
where aa.teaId=1 

 第四步:拖动数据源的字段到设计表中,按如下设置

 第五步:点击预览,可以查看如下图

 

posted @ 2023-05-15 11:22  小小邪  阅读(66)  评论(0编辑  收藏  举报