C1PrintDocument : StartDoc-EndDoc 和 Generate 方法用法比较

使用 C1Report 时,在报表插入新页是很常见的操作,经常有用户会疑惑使用 StartDoc-EndDoc 方法还是Generate 方法。C1PrintDocument 文档可以使用 StartDoc-EndDoc 方法或 Generate 生成文档。两者生成文档的最终结果虽然相同,但是在使用方法上是不同的,在本篇文章中讲阐述这两者使用方法的区别。

发布于 2014/06/15 00:00

ComponentOne Enterprise

使用 C1Report 时,在报表插入新页是很常见的操作,经常有用户会疑惑使用 StartDoc-EndDoc 方法还是Generate 方法。

C1PrintDocument 文档可以使用 StartDoc-EndDoc 方法或 Generate 生成文档。两者生成文档的最终结果虽然相同,但是在使用方法上是不同的,在本篇文章中讲阐述这两者使用方法的区别。

StartDoc()-EndDoc() 方法

StartDoc 方法用于开始文档的生成动作,EndDoc 方法用于结束文档的生成动作。使用 RenderBlock(), RenderDirect() 和 RenderInline() 方法向文档流中添加文档元素时需要使用 StartDoc-EndDoc 。示例代码如下:

c1PrintDocument1.RenderBlock(renderTable1);

 

Generate() 方法

当文档元素直接添加到文档的Body属性时,可以使用 Generate 方法生成。例如:

this.c1PrintDocument1.Body.Children.Add(new C1.C1Preview.RenderText("Hello, World!"));

 

两者的功能相同,但是不能同时使用。如果调用了 StartDoc 方法, 文档则开始生成,不能在StartDoc和EndDoc 之间调用 Generate 方法。

如何使用以上方法插入新页?

如果使用 Generate() 方法,则需要设置渲染的文档元素BreakAfter属性为BreakEnum。例如:以下代码即在添加了RenderTable后插入了一个分页符。:

c1PrintDocument1..Body.Children.Add(renderTable1);
rt1.BreakAfter = BreakEnum.Page;
c1PrintDocument1.Body.Children.Add(renderTable2);
c1PrintDocument1.Generate();

 

当使用 StartDoc-EndDoc 方法,插入新页的方法如下:

c1PrintDocument1.RenderBlock(renderTable1);
c1PrintDocument1.NewPage();
c1PrintDocument1.RenderBlock(renderTable2);

 

image

更加详细的信息请下载Demo试用:

VS2010+Studio for WinForms

关于葡萄城

葡萄城是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。

相关产品
推荐相关案例
关注微信
葡萄城社区二维码

关注“葡萄城社区”

活字格低代码二维码

关注“活字格低代码”

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态