动态加载子报表时如何计算分页位置
本帖最后由 Lenka.Guo 于 2016-9-20 11:05 编辑我的数据分析报表比较复杂,整个结构都是动态生成的,结构为:一个主报表(如rptMain),里面的子报表数量不固定,根据用户后台数据库中配置的数据来动态生成每一个章节,比如有一个首页报表(rptHomePage),又有一个前言页(rptIntroduction.cs),又有动态的章节报表模板文件(rptChart),我在rptMain的ReportStart()中如下动态创建子报表
private void rptDA_Main_ReportStart(object sender, EventArgs e)
{
//创建封面页
SubReport subReport = new SubReport();
rptHomePage rpt = new rptHomePage();
subReport.Left = 0;
subReport.Top = 0; //第一页封面可以直接使用0值
this.detail.Controls.Add(subReport);
subReport.Report = rpt;
//创建前言页
SubReport subReport = new SubReport();
rptIntroduction rpt = new rptIntroduction();
subReport.Left = 0;
subReport.Top = ??; //这里的Top值应该是多少?如何获取前面一页加载完后后的Height值?
this.detail.Controls.Add(subReport);
subReport.Report = rpt;
}
这里的相对Top值不知道如何计算
本帖最后由 Lenka.Guo 于 2016-9-20 11:10 编辑
抱歉回复晚了
以我的理解,如果需要动态控制子报表的位置,那么下一个子报表的Top属性可以由之前子报表的高度之和控制,这个时候后面的子报表也会根据高度来自动换页;
如: private void SectionReport4_ReportStart(object sender, EventArgs e)
{
SectionReport3 RPT = new SectionReport3();
SectionReport2 RPT2 = new SectionReport2();
this.subReport1.Report = RPT;
this.subReport2.Report = RPT2;
this.subReport2.Top = this.subReport1.Height+ 1;
} Lenka.Guo 发表于 2016-9-20 11:03
抱歉回复晚了
以我的理解,如果需要动态控制子报表的位置,那么下一个子报表的Top属性可以由之前子报表 ...
谢谢你的回复,我试一试先 lc3w 发表于 2016-9-22 14:28
谢谢你的回复,我试一试先
:loap1:
页:
[1]