NCV5打印模板技术红皮书Word文档下载推荐.docx
- 文档编号:15357830
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:84
- 大小:2.04MB
NCV5打印模板技术红皮书Word文档下载推荐.docx
《NCV5打印模板技术红皮书Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《NCV5打印模板技术红皮书Word文档下载推荐.docx(84页珍藏版)》请在冰豆网上搜索。
第三章模板编辑器的使用12
1.打印模板编辑器12
2.单元格数据格式13
3.单元格内容的折行15
4.在模板中使用图片17
5.打印图章(公章)21
6.页面设置23
7.页码设置29
8.单元格变量的连接34
9.功能节点模板的管理34
第四章模式化应用36
1.普通分页场景36
2.强制分页场景39
3.凭证分页场景46
4.工资条分页场景49
5.卡片分页场景52
6.动态列的应用54
7.批量打印应用57
8.Excel导出59
8.1Excel导出功能的调用方式59
8.2Excel导出设置60
9.打印设置61
第五章公式的应用66
1.本页小计(_subtotal_)公式66
2.合计(_total_)公式68
3.红字(_redword_)公式69
4.其它非常用的打印特有公式70
4.1行号(_rowno_公式)70
4.2行数(_rowcount_)公式70
4.3金额空格(_space_)公式70
4.4中文金额空格(_cnspace_)公式70
4.5日期空格(_datespace_)公式70
4.6中文日期空格(_datecnspace_)公式70
4.7变量扩展(_expandvar_)公式70
4.8打印公式与NC系统公式的嵌套使用71
5.修改显示格式的公式71
5.1单元格内容对齐方式71
5.2单元格背景色(_bgcolor_)公式72
5.3字体颜色(_fontcolor_)公式72
5.4字体(_fontfamily_)公式72
5.5字体大小(_fontsize_)公式72
5.6字体风格(_fontstyle_)公式72
5.7文字下划线(_fontunderline_)公式72
5.8条件格式73
5.9组合格式73
5.10在格式公式中使用null73
6.公式的综合使用74
第六章基于NC打印的二次开发77
1.UI工厂:
快速有效地实现打印77
2.一个二次开发范例80
3.打印监听器82
第七章常见问题解答83
1.出现打印问题,如何迅速地定位问题83
2.本页小计公式每页都显示相同的值,为什么?
85
3.Excel导出时,是否还会发生内存溢出现象?
导出效率如何?
4.如何进行双面打印86
5.批量打印是否可预览?
打印时是否可选择页码范围86
6.如何模拟测试打印的效果87
第八章V5打印模块新特性88
第一章前言
1.总体介绍
假设有一张凭证需要打印出来,打印效果如下,应如何实现?
如果把打印机想象成一张白板的话,打印,就是在白板上做绘制。
上面的这张凭证,可以很容易地绘制出来。
但是,当客户想要调整“收款凭证”这四个字的位置,改变它的字体,或是在下面的表格中增加金额列,是否必须修改打印程序?
另外每张凭证的摘要数据、会计科目数据都是不一样的,如何用统一的打印程序将不同的数据打印出来?
解决这个问题需要做到:
1)可以配置字体、颜色、文本的打印位置、表格的行列等等,这满足了客户对于显示的个性化要求,2)在配置的时候,能把数据进行某种抽象,起到象征作用。
实际打印时,抽象化的数据被赋予真实的值。
NC系统的打印模板,就是采用这种思路设计出来的。
上面的这张凭证的打印模板如下图:
可以看到,打印模板是一个表格,其基本元素是单元格。
对于单元格,可以定义字体、颜色、边框、文本对齐方式;
对于行,可以定义行高、插入行、删除行;
对于列,可以定义列宽、插入列、删除列。
这些功能使得凭证的外观可方便灵活地配置。
那如何进行数据的抽象呢?
我们需要看看打印模板编辑器的全貌:
上面打印模板编辑器的右侧,有一个列表,列出了“凭证类别名称”、“制单日期”、“摘要”等在左侧表格以粉色背景出现的内容,这个列表里面的值,就是对数据的抽象,被称为数据源变量。
因此,模板信息,既包括了显示的样式,又包括了数据的抽象。
它足以适应个性化的显示和动态的数据。
最后一个问题是,如何赋真实的值给变量。
上面的“凭证类别名称”、“摘要”等变量的真实的值来自于要打印的凭证,因此需要把要打印的凭证的指定信息取出来赋予给打印变量,实现这个过程,应该采用了下面的流程:
左边的凭证代表财务中的凭证对象,它包含了真正的业务信息,中间的数据源是打印的标准取数接口。
开发人员应从凭证中取得打印模板要使用的变量的数据,放到数据源里,打印模板从数据源接口取得变量的真实的值,填充到模板中。
2.快速入门
第一节利用一个实际的例子,介绍了NC打印的设计思路,这一节,将继续结合上面的实例,对设计思路做更加深入的讲解,帮助读者快速入门。
完成实例中凭证的打印,分了两个步骤:
第一步是将最终的效果抽象成一个模型,在打印模板中定义出来,第二步是创建数据源,通过该数据源能取到打印模板引用的变量的值。
第一步工作由开发人员或实施顾问完成,第二步工作由开发人员完成。
开发人员如何创建数据源?
打印模板提供了IDataSource接口,该接口的方法如下:
packagenc.ui.pub.print;
publicinterfaceIDataSource{
//返回数据源中所有的变量表达式
publicjava.lang.String[]getAllDataItemExpress();
//返回数据源中所有的变量名
publicjava.lang.String[]getAllDataItemNames();
//根据变量的表达式,取得变量的真实的值
publicjava.lang.String[]getItemValuesByExpress(
StringitemExpress);
//如果某变量的值都是数字型的,返回true
publicbooleanisNumber(StringitemExpress);
//取的节点编号,推荐不实现
publicjava.lang.StringgetModuleName();
//取得变量依赖的其他变量,推荐不实现
publicjava.lang.String[]getDependentItemExpressByExpress(
}
针对实例中的数据,可以简单地创建一个模拟的数据源(简单起见,未列出所有变量,只是示范性地实现凭证类别名称、制单日期、摘要、借方本币四个变量),比如:
publicclassMyTestDataSourceimplementsIDataSource{
publicjava.lang.String[]getAllDataItemExpress(){
returnnewString[]{
“vouchertypename”,”dbilldate”,”summary”,”debitmny”
};
publicjava.lang.String[]getAllDataItemNames(){
“凭证类别名称”,”制单日期”,”摘要”,”借方本币”
StringitemExpress){
if(itemExpress.equals(“vouchertypename”)){
returnnewString[]{“收款凭证”};
}
elseif(itemExpress.equals(“dbilldate”)){
returnnewString[]{“2005-12-10”};
elseif(itemExpress.equals(“summary”)){
returnnewString[]{
“收款,客户1”,“收款,客户2”,“收款,客户3”,
“收款,客户4”,“收款,客户5”
}
elseif(itemExpress.equals(“debitmny”)){
returnnewString[]{“”,””,””,””,”1000”};
returnnull;
publicbooleanisNumber(StringitemExpress){
//借方本币是数字
if(itemExpress.equals(“debitmny”)){
returntrue;
returnfalse;
//取的节点编号,可不实现
publicjava.lang.StringgetModuleName(){
有了打印模板,有了数据源,打印工作的所有准备活动都已完毕,只差一点——调用打印程序,完成打印。
NC打印程序的统一入口类是nc.ui.pub.print.PrintEntry,下面介绍如何调用PrintEntry。
PrintEntrype=newPrintEntry(当前窗口对象,newMyTestDataSource());
//设置打印模板ID的查询条件
pe.setTemplateID(公司,节点编号,用户,业务类型);
//如果分配了多个打印模板,可选择一个模板
pe.selectTemplate();
//开始打印
pe.print();
//也可以先预览,再在预览界面打印
//pe.preview();
至此,整个工作才全部结束。
不过,客户对打印的要求,并不像上例中这么简单,比如:
观察实例的模板,可以看到不同的行具有不同的背景颜色,其中只有第5行是白色背景,其他都是藏青色背景。
而通过预览效果可以看到,第5行被动态向下扩展了(扩展行的行高列宽及单元格式都克隆了模板中的相应单元格),而其他行却没有扩展。
为什么会这样?
假设模板中第5行的变量有100个值,如果都要扩展的话,一页能打下吗,要是打不下,该如何分页,能否定义不同的分页方式?
除了通过数据源取数,还有什么取数方式,可否定义公式对数据源运算?
要对一批凭证做批量打印,该怎么做?
如果要把凭证输出到Excel中,该怎么做?
有特殊的页码要求,该怎么配置?
要把内容打印到特殊的纸张上,怎么定义纸型?
要解答这些问题,需要对打印模板有更深入的了解。
后面的内容,致力于以实例讲透各种高级功能。
下一节,将对N
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NCV5 打印 模板 技术 红皮书
![提示](https://static.bdocx.com/images/bang_tan.gif)