1/8用友股份-LE支持服务业务本部产品方案--《NC6X输出模板常用公式介绍》建立日期:2013-05-01修改日期:2013-05-01文档属性:客户文控编号:LE-DY-CP-2013-01472/8文档控制创建记录适用范围审阅人日期审阅签字所属部门发布范围内部员工伙伴客户发布人姓名所属部门发布时间日期作者所属部门邮件地址版本2013-05-01张晨LE服务支持V1.0版本领域模块备注3/8目录NC6X输出模板常用公式介绍...........................................................................................4一.引言...........................................................................................................................4二.具体公式说明............................................................................................................4(一)本页小计(_subtotal_)公式.............................................................................4(二)红字(_redword_)公式...............................................................................4(三)其它非常用的打印特有公式.........................................................................5(四)修改显示格式的公式.....................................................................................74/8NC6X输出模板常用公式介绍一.引言在打印模板里,自定义变量定义公式,可以对数据源变量进行一些运算,或者从基本裆案里取得数据。打印模板可用的公式分为两类:1)NC公共的公式,比如iif,getColValue,round等在其它地方(比如单据模板)都广泛应用的公式;2)打印特有的公式,比如本页小计(_subtotal_)、合计(_total_)等。V6版中打印模块在公式方面有很大改进:其一是支持了打印特有公式与NC公共公式的任意嵌套使用;其二是新增了一批可动态修改显示内容格式的公式。二.具体公式说明(一)本页小计(_subtotal_)公式_subtotal_的使用方法是_subtotal_(变量),即按页数对该变量进行小计。$_subtotal_只推荐使用在凭证分页场景中,$应将引用_subtotal_函数的单元格所在行设为固定行原因是:此函数是根据分页信息一次性计算出来的(而不是每页都算一次)。比如打印模板设置为每页打印5行,假设数据源传递过来的表体数据(向下扩展)为20行,那么需要分成4页显示,_subtotal_函数于是按每5行为一组进行小计,计算出来的结果也有四个值,每页按页码次序显示一个值。(二)红字(_redword_)公式_redword_公式主要用于总帐凭证打印中,定义方式为_redword_(变量,类型)。如果变量的值为负数,那么绑定该变量的单元格的字体颜色为红色,或将内容加括号显示(类型为0为红色,类性为其他则加括号)。如下使用了红字公式。如果单价小于0,则加括号显示。5/8从预览界面可以明显看到效果:(三)其它非常用的打印特有公式1.行号(_rowno_公式)行号主要用于单据的表体,它的定义方式为_rowno_(变量),如果数据源中该变量有100个值,那么_rowno_(变量)的值是从1到变量的值的总长度的序列。项目应用案例发货清单表体的序号用数字1、2、3顺延,同时一张单据上行数很多,在一张打印模板下打印不下时,下一张序号需要根据第一张的序号顺延,用_rowno_(String变量)设置能够实现序号从1开始编号,但是不能实现同一单据行数多打印成多张打印纸时下一页序号顺延的功能,不知道用什么办法可以实现?rowno公式换页连续计数补丁NC_UAP_Module-NC6.1-Special-2013018-2042458806/82.行数(_rowcount_)公式行数公式的定义方式为_rowcount_(变量),它将返回数据源中该变量的值的个数。3.金额空格(_space_)公式将数字中的千分位分隔符和小数点去掉,并数字间加上空格。比如有些金额套打的应用中,将“123,567.88”转换为“12356788”这样的形式。4.日期空格(_datespace_)公式适用于日期套打的场景。将2005-12-20这样的日期格式转换为20051210。5.中文日期空格(_datecnspace_)公式它与_datespace_公式的区别是,将数字转换成了中文。比如将2005-12-20这样的日期格式转换为贰零零五拾贰贰拾6.获得历史审批人(_auditname_)公式用法:_auditornames_(单据id)获得以逗号隔开的历史审批人字符串。打印公式与NC系统公式的嵌套使用在打印模板里,可以使用所有的NC公共公式,并且可以在NC公共公式里嵌套使用前面几节介绍的打印特有公式。在这里举一个运用iif函数的例子。temp->_total_(sale);iif(temp<5000,‘小于5000’,getChineseCurrency(_total_(productprice)));这个公式有两行,第一行用一个自定义变量对“sale”变量做合计,若变量值小于5000,则返回“小于5000”,如果变量大于5000,返回值是“productprice”变量的合计的中文显示。可以看到,在NC标准公式iif,getChineseCurrency(金额转换为中文)中嵌套使用了_total_函数。7/8(四)修改显示格式的公式某些时候,内容的显示格式与一些条件有关,比如,当金额列大于10000时,要求内容水平居右,并以蓝色标出。因此,V6输出板特别提供了一系列修改显示格式的共识,如下所列:1.单元格内容对齐方式水平对齐单元格水平对齐方式:_alignhor_(int对齐方式)。其中“对齐方式”可取值如下:0-居左,即单元格内容左对齐1-居中,即单元格内容水平居中对齐2-居右,即单元格内容右对齐垂直对齐单元格垂直对齐方式:_alignver_(int对齐方式)。其中“对齐方式”可取值如下:0-居上,即单元格内容上对齐1-居中,即单元格内容水平居中对齐2-居下,即单元格内容水平下对齐2.单元格背景色(_bgcolor_)公式设置单元格背景颜色:_bgcolor_(String背景颜色)。其中“背景颜色”可为任意颜色,采用形如#000FFF16进制RGB字符串格式,比如白色#FFFFFF,黑色#000000,各种颜色都应的值。8/83.字体颜色(_fontcolor_)公式设置单元格字体颜色:_fontcolor_(String字体颜色)。其中“字体颜色”可为任意颜色,采用形如#000FFF16进制RGB字符串格式,比如白色#FFFFFF,黑色#000000,各种颜色都应的值。4.文字下划线(_fontunderline_)公式单元格文字下划线:_fontunderline_(int下划线格式)。其中“下划线格式”可取如下值:0-无,默认值1-单下划线,对应“单元格属性”对话框“字体”选项卡下划线列表中的“单下划线”2-双下划线,对应“单元格属性”对话框“字体”选项卡下划线列表中的“双下划线”3-会计用单下划线,对应于“单元格属性”对话框“字体”选项卡下划线列表中的“会计用单下划线”4-会计用双下划线,对应于“单元格属性”对话框“字体”选项卡下划线列表中的“会计用双下划线”