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

ComponentOne Enterprise | 下载试用

ComponentOne 是一套专注于企业 .NET开发、支持 .NET Core 平台,并完美集成于 Visual Studio 的第三方控件集,包含 300 多种 .NET开发控件,提供表格数据管理、数据可视化、报表和文档、日程安排、输入和编辑、导航和布局、系统提升工具等七大功能,被誉为“.NET开发的‘瑞士军刀’”。

ComponentOne 为您提供专业的产品咨询服务,并由技术支持工程师为您1对1解答。>> 发帖提问

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

关注“葡萄城社区”

加微信获取技术资讯

加微信获取技术资讯

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