NCV61-输出模板技术红皮书

上传人:夏** 文档编号:544381965 上传时间:2022-08-03 格式:DOC 页数:117 大小:3.71MB
返回 下载 相关 举报
NCV61-输出模板技术红皮书_第1页
第1页 / 共117页
NCV61-输出模板技术红皮书_第2页
第2页 / 共117页
NCV61-输出模板技术红皮书_第3页
第3页 / 共117页
NCV61-输出模板技术红皮书_第4页
第4页 / 共117页
NCV61-输出模板技术红皮书_第5页
第5页 / 共117页
点击查看更多>>
资源描述

《NCV61-输出模板技术红皮书》由会员分享,可在线阅读,更多相关《NCV61-输出模板技术红皮书(117页珍藏版)》请在金锄头文库上搜索。

1、输出模板技术红皮书NC-V6用友NC应用平台开发部2011-07-141第 页目 录第一章前言11.总体介绍12.快速入门3第二章基本概念71.打印模板72.打印变量73.打印数据源104.固定行、固定列105.向下扩展和动态列106.固定行的单元格变量的扩展117.动态区域和固定区域118.分页139.打印场景13第三章模板编辑器的使用151.打印模板编辑器152.单元格数据格式163.单元格内容的折行214.在模板中使用图片235.打印图章(公章)276.条形码297.页面设置308.页码设置369.单元格变量的连接4110.快速小计合计4111.功能节点模板的管理42第四章模式化应用44

2、1.普通分页场景442.强制分页场景473.凭证分页场景544.工资条分页场景575.卡片分页场景606.动态列的应用627.联应用658.合并打印679.多子表打印6910.批量打印应用7411.Excel导出7611.1Excel导出功能的调用方式7611.2Excel导出设置7712.PDF导出7813.HTML导出7814.打印设置79第五章公式的应用831.本页小计(_subtotal_)公式832.合计(_total_)公式853.红字(_redword_)公式864.其它非常用的打印特有公式874.1行号(_rowno_公式)874.2行数(_rowcount_)公式874.3金

3、额空格(_space_)公式874.4中文金额空格(_cnspace_)公式874.5日期空格(_datespace_)公式874.6中文日期空格(_datecnspace_)公式874.7变量扩展(_expandvar_)公式874.8获得历史审批人(_auditname_)公式884.9去除千分位(_clearthmark_)公式884.10取首元素(_pop_)公式884.11打印公式与NC系统公式的嵌套使用885.修改显示格式的公式885.1单元格内容对齐方式895.2单元格背景色(_bgcolor_)公式895.3字体颜色(_fontcolor_)公式895.4字体(_fontfam

4、ily_)公式895.5字体大小(_fontsize_)公式895.6字体风格(_fontstyle_)公式905.7文字下划线(_fontunderline_)公式905.8条件格式905.9组合格式905.10在格式公式中使用null916.公式的综合使用91第六章基于NC打印的二次开发941.UI工厂:快速有效地实现打印942.一个二次开发范例983.打印监听器1004.直接打印100第七章常见问题解答1021.出现打印问题,如何迅速地定位问题1022.本页小计公式每页都显示相同的值,为什么?1043.Excel导出时,是否还会发生内存溢出现象?导出效率如何?1044.如何进行双面打印1

5、055.批量打印是否可预览?打印时是否可选择页码范围1056.如何模拟测试打印的效果106第八章V5打印模块新特性107第九章V5.5打印模块新特性109第十章V6打印模块新特性110第 4 页第一章 前言1. 总体介绍假设有一张凭证需要打印出来,打印效果如下,应如何实现?如果把打印机想象成一张白板的话,打印,就是在白板上做绘制。上面的这张凭证,可以很容易地绘制出来。但是,当客户想要调整“收款凭证”这四个字的位置,改变它的字体,或是在下面的表格中增加金额列,是否必须修改打印程序?另外每张凭证的摘要数据、会计科目数据都是不一样的,如何用统一的打印程序将不同的数据打印出来?解决这个问题需要做到:1

6、)可以配置字体、颜色、文本的打印位置、表格的行列等等,这满足了客户对于显示的个性化要求,2)在配置的时候,能把数据进行某种抽象,起到象征作用。实际打印时,抽象化的数据被赋予真实的值。NC系统的打印模板,就是采用这种思路设计出来的。上面的这张凭证的打印模板如下图:可以看到,打印模板是一个表格,其基本元素是单元格。对于单元格,可以定义字体、颜色、边框、文本对齐方式;对于行,可以定义行高、插入行、删除行;对于列,可以定义列宽、插入列、删除列。这些功能使得凭证的外观可方便灵活地配置。那如何进行数据的抽象呢?我们需要看看打印模板编辑器的全貌:上面打印模板编辑器的右侧,有一个列表,列出了“凭证类别名称”、

7、“制单日期”、“摘要”等在左侧表格以粉色背景出现的内容,这个列表里面的值,就是对数据的抽象,被称为数据源变量。因此,模板信息,既包括了显示的样式,又包括了数据的抽象。它足以适应个性化的显示和动态的数据。最后一个问题是,如何赋真实的值给变量。上面的“凭证类别名称”、“摘要”等变量的真实的值来自于要打印的凭证,因此需要把要打印的凭证的指定信息取出来赋予给打印变量,实现这个过程,应该采用了下面的流程:左边的凭证代表财务中的凭证对象,它包含了真正的业务信息,中间的数据源是打印的标准取数接口。开发人员应从凭证中取得打印模板要使用的变量的数据,放到数据源里,打印模板从数据源接口取得变量的真实的值,填充到模

8、板中。2. 快速入门第一节利用一个实际的例子,介绍了NC打印的设计思路,这一节,将继续结合上面的实例,对设计思路做更加深入的讲解,帮助读者快速入门。完成实例中凭证的打印,分了两个步骤:第一步是将最终的效果抽象成一个模型,在打印模板中定义出来,第二步是创建数据源,通过该数据源能取到打印模板引用的变量的值。第一步工作由开发人员或实施顾问完成,第二步工作由开发人员完成。开发人员如何创建数据源?打印模板提供了IDataSource接口,该接口的方法如下:package nc.ui.pub.print;public interface IDataSource / 返回数据源中所有的变量表达式public

9、 java.lang.String getAllDataItemExpress();/ 返回数据源中所有的变量名public java.lang.String getAllDataItemNames ();/ 根据变量的表达式,取得变量的真实的值public java.lang.String getItemValuesByExpress (String itemExpress);/ 如果某变量的值都是数字型的,返回truepublic boolean isNumber (String itemExpress);/ 取的节点编号,推荐不实现public java.lang.String getM

10、oduleName ();/ 取得变量依赖的其他变量,推荐不实现public java.lang.String getDependentItemExpressByExpress (String itemExpress);针对实例中的数据,可以简单地创建一个模拟的数据源(简单起见,未列出所有变量,只是示范性地实现凭证类别名称、制单日期、摘要、借方本币四个变量),比如:public class MyTestDataSource implements IDataSource / 返回数据源中所有的变量表达式public java.lang.String getAllDataItemExpress()

11、return new String“vouchertypename”,”dbilldate”,”summary”,” debitmny”;/ 返回数据源中所有的变量名public java.lang.String getAllDataItemNames ()return new String“凭证类别名称”,”制单日期”,”摘要”,”借方本币”;/ 根据变量的表达式,取得变量的真实的值public java.lang.String getItemValuesByExpress (String itemExpress)if(itemExpress.equals(“vouchertypename”

12、)return new String“收款凭证”;else if(itemExpress.equals(“dbilldate”)return new String“2005-12-10”;else if(itemExpress.equals(“summary”)return new String“收款,客户1”, “收款,客户2”, “收款,客户3”,“收款,客户4”, “收款,客户5”else if(itemExpress.equals(“debitmny”)return new String“”,”,”,”,”1000”;return null;/ 如果某变量的值都是数字型的,返回true

13、public boolean isNumber (String itemExpress)/ 借方本币是数字if(itemExpress.equals(“debitmny”)return true;return false;/ 取的节点编号,可不实现public java.lang.String getModuleName ()return null;/ 取得变量依赖的其他变量,推荐不实现public java.lang.String getDependentItemExpressByExpress (String itemExpress)return null;有了打印模板,有了数据源,打印工

14、作的所有准备活动都已完毕,只差一点调用打印程序,完成打印。NC打印程序的统一入口类是nc.ui.pub.print.PrintEntry,下面介绍如何调用PrintEntry。PrintEntry pe = new PrintEntry(当前窗口对象,new MyTestDataSource();/ 设置打印模板ID的查询条件pe.setTemplateID(公司,节点编号,用户,业务类型);/ 如果分配了多个打印模板,可选择一个模板pe.selectTemplate();/ 开始打印pe.print();/ 也可以先预览,再在预览界面打印/ pe.preview();至此,整个工作才全部结束。不过,客户对打印的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号