NC65 模板打印的入口类 nc.ui.pub.print.PrintEntry

实现模板打印一般分三个步骤: 
1.设置模板 
2.设置数据源 
3.打印或预览或输出到Excel 

例一:普通打印
	//实现数据源
	nc.ui.pub.print.IDataSource dataSource = new MyDataSource();
	// 实例化打印入口
	PrintEntry print = new PrintEntry(parent, dataSource);
	// 根据公司、节点编号、操作员、业务类型加载满足条件的打印模板
	print.setTemplateID(String pkCorp, String funNode, String operator, String pkBusiType);
	// 在满足条件的模板中选择一个打印模板, 返回值 < 0 表示用户取消打印或读取模板错误
	print.selectTemplate();

	// 有下面几种输出方式
	print.preview();   //预览,在预览界面也可以打印
	print.print(); //直接打印
	print.exportExcelFile(); //输出到Excel
	print.exportPdfFile();// 输出到pdf

例二:批量打印: 批量打印是指用同一个模板对一批数据源进行打印.批量打印不进行预览直接进行打印. 批量打印支持输出到excel.
	// 实例化打印入口,parent是父窗口容器
	PrintEntry print = new PrintEntry(parent);
	// 根据公司、节点编号、操作员、业务类型加载满足条件的打印模板
	print.setTemplateID(String pkCorp, String funNode, String operator, String pkBusiType);//加载打印模板
	// 在满足条件的模板中选择一个打印模板,返回值<0表示用户取消打印或读取模板错误
	print.selectTemplate();
	// 进入批量打印准备状态,此时选择是输出到打印机还是Excel
	print.beginBatchPrint();
	// 向打印入口对象中加入数据源,形成批量数据
	for (int i = 0; i < data_source_count; i++) {
		print.setDataSource(data_source[i]);
	}
	// 数据源加入完成,结束批量打印准备状态,开始实际的打印处理
	print.endBatchPrint();

注:批量打印从5011开始无需在开始和结束的时候调用beginBatchPrint()和endBatchPrint()方法,直接调用相应的输出方法即可。
PrintEntry print = new PrintEntry(parent);
print.setTemplateID(String pkCorp, String funNode, String operator, String pkBusiType);//加载打印模板
print.selectTemplate();
for (int i = 0; i < data_source_count; i++) {
 print.setDataSource(data_source[i]);
}
print.preview();

PrintEntry是打印对外服务的入口, 它的接口设计原则是简单:通过简单的调用即可完成打印功能. 其内部实现(都是缺省实现)被完全封装,对外部不可见.
PrintEntry依赖四个各司其职的 接口(对这些接口都进行了缺省实现,外部不用关心.):
	数据源组织器(IDataSourceOrganizer)
	打印模板数据存取器(IPrintDataAccessor)
	打印数据解析器(AbstractTemplateParser)
	打印任务(AbstractTemplateOutputTask)
	如果二次开发或者产品组对与上面四个接口有特殊的实现,请使用TemplateOutputTaskBuilder类构建打印任务.
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值