使用 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);
更加详细的信息请下载Demo试用:
VS2010+Studio for WinForms