kinber 发表于 2016-2-24 22:12:00

这样的报表采用什么方式设计报表

这样的报表采用什么方式设计报表


这个表按照姓名分组的,每个分组中按照日期进行显示。
使用什么控件嵌套还是采用子报表?

kinber 发表于 2016-2-24 22:31:00

报表设计器中不能使用子报表吗?搜索的教程中都是讲在vs中使用!!

kinber 发表于 2016-2-24 23:11:00

上面一个报表中,如何设置2个分组后强制分页?

Lenka.Guo 发表于 2016-2-25 09:44:00

回复 3楼kinber的帖子

按一下步骤实现:
1. 采用 页面报表模板(因为纸张大小固定,基本行数固定)
2. 使用Table 控件(添加分组 按人名分组,并隐藏表头和表尾)
3. 拖动表格阴影,控制每页表格显示的高度(实现每页显示两个分组的关键点)
Demo 见附件:

Lenka.Guo 发表于 2016-2-25 09:49:00

子报表相当于是另外一个报表的占位符,在设计器中也可以使用,需要指定子报表 的具体的报表路径。

kinber 发表于 2016-2-25 17:00:00

这个表格上下部分的记录数不确定,不好控制,能否设置行数,不足的部分填充空行补充?

Lenka.Guo 发表于 2016-3-1 14:23:00

抱歉这么久才回复您,对于每页显示一个分组,我们可以控制,但是对于每页显示两个分组,而且分组的数据还不确定,
这个有两种方法可以尝试:
1. 是我向您传的Demo,使用Table的阴影来控制每页显示的行数,从而控制每页显示两个分组。
2. 通过修改数据集,添加空白行,保证每个分组的数据行相同,从而控制每页显示的行数。
如果这两个方法都不可行,就没有其他方法了。

kinber 发表于 2016-3-1 14:46:00

感觉第二种方法可行性要好些。 请发一个绑定dataset的案例给我一下,就是通过C#直接操作处理好dataset后推送给报表的方式。

Lenka.Guo 发表于 2016-3-1 16:55:00

我说的第二种方法,意思是能否在数据库中增加空白记录,然后获取的每组数据的行数都是一样的。

Lenka.Guo 发表于 2016-3-2 11:58:00

实现: 一页显示两个分组,使用页面报表和RDL 报表实现比较困难,建议采用区域报表设计;

具体实现方法,见附件:
主要实现思路:在脚本中,添加GroupFooter1_Format 事件;根据组个数的奇偶,来控制是否换页,可点击报表的脚本标签,查看代码:

int GroupCount = 0;

public void GroupHeader1_Format()
{
        GroupCount++;
       
}


public void GroupFooter1_Format()
{
        this.TextBox2.Value = GroupCount%2;

        if(GroupCount % 2 == 0)
        {GroupFooter1.NewPage = NewPage.After;}
       
        if(GroupCount % 2 == 1)
                        {GroupFooter1.NewPage = NewPage.None;}
       
}


页: [1]
查看完整版本: 这样的报表采用什么方式设计报表