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

发布时间:2014/06/15 00:06 发布者:iceman

返回博客中心

使用 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


关于葡萄城

赋能开发者!葡萄城是专业的集开发工具、商业智能解决方案、低代码开发平台于一身的软件和服务提供商,为超过 75% 的全球财富 500 强企业提供服务。葡萄城专注控件软件领域30年,希望通过模块化的开发控件、灵活的低代码应用开发平台等一系列开发工具、解决方案和服务,帮助开发者快速响应复杂多变的业务需求,最大程度地发挥开发者的才智和潜能,让开发者的 IT 人生更从容更美好。

了解详情,请访问葡萄城官网