业务函数使用手册。目录第1章引言.11.1导读.11.2业务函数概述.11.2.1基础:应用服务..11.2.2有关应用服务的深入讨论..11.2.3业务函数..31.2.4旧版本账务函数的升级..31.2.5手册中图形符号的约定..3第2章约定.42.1名词.42.2符号.52.3函数名称.52.4函数格式及参数.52.5函数返回值.62.6期间与关键字.62.6.1期间..62.6.2关键字..62.6.3用关键字表示期间..72.7关于账套、会计年度.72.8关于币种.82.9关于方式字.82.10其它.9第3章正文.103.1总账函数.103.1.1QC、SQC、WQC——期初额函数.103.1.2QM、sQM、wQM——期末额函数..113.1.3FS、sFS、wFS——发生额函数..133.1.4LFS、sLFS、wLFS——累计发生额函数.143.1.5TFS、sTFS、wTFS——条件发生额函数.163.1.6DFS、sDFS、wDFS——对方科目发生额函数..183.1.7JE、sJE、wJE——净额函数..193.1.8HL——汇率函数.21总账__附录一..22总账__附录二..233.2工资函数.233.2.1BMGZ——部门工资函数.233.2.2GRGZ——个人工资函数.243.2.3GZRS——工资人数函数..253.2.4PJGZ()――平均工资函数.253.2.5ZGGZ()――最高工资函数.263.2.6ZDGZ()――最低工资函数.273.3固定资产函数.273.3.1ZZS——资产账套属性函数.273.3.2ZKS——资产卡片属性函数.283.3.3ZLS——资产类别属性函数.293.3.4ZBS——资产部门属性函数.303.3.5ZSS——资产使用状况属性函数.313.3.6ZHS——资产核算方式属性函数.31固定资产__附录..323.4应收应付函数.343.4.1YSK——应收款余额函数..343.4.2YFK——应付款余额函数..353.4.3YSKK——预收客户款余额函数.363.4.4YFGK——预付供应商款余额函数.373.4.5KSK——客户收款函数..383.4.6GFK——供应商付款函数..393.4.7YSJS——应收系统结算金额函数.393.4.8YFJS——应付系统结算金额函数.40应收应付__附录..413.5财务分析函数.423.5.1YS——预算函数.42财务分析__附录..433.6采购函数.433.6.1采购定单类函数..433.6.2采购入库类函数..443.6.3购发票类函数..453.6.4采购结算类函数..463.6.5采购账类函数..47采购__附录一..48采购__附录二..493.7库存函数.493.7.1收发存类函数..493.7.2发生类函数..503.7.3批次类函数..513.7.4保质期类函数..523.7.5现存量类函数..543.7.6库存控制类函数..54库存__附录一..55库存__附录二..55库存__附录三..56库存__附录四..56库存__附录五..563.8存货核算函数.573.8.1存货核算期初类函数..573.8.2存货核算发生额类函数..583.8.3存货核算总账类函数..59存货核算__附录一..60存货核算__附录二..613.9销售函数.613.9.1销售订货函数..613.9.2销售函数..633.9.3发货函数..653.9.4委托代销函数..683.9.5代垫费用函数..703.9.6销售费用函数..713.9.7包装物租借函数..723.9.8销售计划函数..74销售__附录一..75销售__附录二..75销售__附录三..75销售__附录四..753.10成本管理函数.763.10.1CPSJDWCB()――产品实际单位成本函数..763.10.2CPJHDWCB()――产品计划单位成本函数.763.10.3CPSL()――产品数量函数..773.10.4CPZCB()――产品总成本函数.773.10.5FYMXDWCB()――费用明细单位成本函数.783.10.6FYMXZHL()――费用明细总耗量函数..793.10.7FYMXZCB()――费用明细总成本函数.803.10.8BMFYMXZCB()――部门费用明细总成本函数.813.10.9FYMXDE()――费用明细定额函数..821第1章1.1导读本手册共分三章:第一章“引言”,分三节,分别介绍本手册内容编排、业务函数与应用服务基本概念、技术支持信息等。第二章“约定”,对在本手册中出现的符号、名词、业务函数名称、格式及参数、返回值、以及期间、账套、年度、币种、方式字等事项,做了约定。这些约定也是用户在使用业务函数过程中需要遵循的。第三章“正文”,分九节详细描述用友8.10系列产品各业务子系统业务函数,它们包括: 总账函数 工资函数 固定资产函数 应收应付函数 财务分析函数 采购函数 库存函数 存货核算函数 销售函数 成本管理函数1.2业务函数概述1.2.1基础:应用服务用友企业级财务软件8.10版系列产品(以下简称用友产品)的一项主要特征,就是划分各个业务子系统和唯一的系统管理,即划分客户端和服务端,形成简易的C/S结构。我们可以把这些业务子系统当做业务数据的“入口”,把象用友电子报表(UFO)这样的软件当做业务数据的“出口”,而数据本身,经过处理后被贮存在业务数据库中。显然,我们需要有一套特别的工具,能把数据从业务数据库中取出来。一旦数据进入“出口”,就可以被加工成用户感兴趣的各种图表或文档。这个取出数据的工作,就是由一套被称为“应用服务”的工具完成的——简单地说,所谓“应用服务”就是一套取数工具。严格地说,“应用服务”是从属于各业务子系统的,因为业务内容的定义(称为业务语义)是由各个子系统完成的,如果这定义变化,那么“应用服务”就必须跟着变化。这种模式决定了“应用服务”的模块化,即它们是由用友产品各项目组分别开发和维护的。“应用服务”是一组采用组件技术的ActiveXDLL文件。目前,它们是在安装用友企业级财务软件基本系统时统一安装的,用户把它们安装在任何一台有数据“出口”软件的客户机上,而无关于在该客户机或在该网络中安装了哪些业务子系统。“应用服务”被设计成标准、开放接口,任何愿意与用友合作的第三方软件开发商,都可以通过调用该接口,来实现它们的数据“出口”软件与用友软件的数据交互。事实上,用友电子报表(UFO)就是一个第三方的范例。在下面的讨论中,我们称“数据‘出口’软件”为第三方软件。1.2.2有关应用服务的深入讨论本小节内容较抽象,若用户不感兴趣,则可以跳过。2如果用友产品本身要调用某种取数服务,它的做法一般是直接调用相应于具体取数功能的方法(它们一般是位于同一客户端的某一对象实例之中)。这是软件内部一种较高效率、较高耦合的结构。但是就开放性、通用性、网络性而言,这种直接调用途径不一定显示更多优点。首先,多种取数服务需要定义多个接口,一旦业务内容发生改变,接口也要发生改变,这是开放性标准所忌讳的。其次,如果第三方软件所使用的语言或开发环境虽然可以支持ActiveX方法调用,但一时很难支持某种类型的对象作为参数,那么对于那些以该种类型对象作为参数的直接调用接口而言,就使通用性消失。再次,由于组件技术的网络特性,参数个数的增加、参数传送的引用方式等很可能添加网络的额外负担。这要求接口定义应当尽可能简单、统一,并且适用于所有子系统的所有取数服务。为了避开直接调用的缺点,我们采用了一种间接调用技术,就是为各子系统的各个取数服务分别定义了一个“语法帽子”——称之为业务函数。业务函数是一个字符串,它可以由用户输入,也可以由第三方程序内部发生,有点儿象在VC或VB中使用SQL语句那样。含业务函数的表达式字符串先是被一个语法分析器——称为“表达式分析和计算部件”(以下简称表达式部件)——所分解,并按一定规则重新组合,然后传递给“应用服务”部件,后者对之进行简单分析(传递过去时已经不含参数为表达式及函数嵌套的复杂情况),从数据库中取数,最后把结果返回。值得一提的是,表达式部件还可以进行表达式四则混合运算和通用的数学函数计算。用友产品中具有公式计算能力的产品,如总账、工资、固定资产、电子报表都使用了表达式部件。总之,第三方软件通过表达式部件和“应用服务”与业务数据库打交道,而用户则通过业务函数与第三方软件打交道。这可用下图(图1-1)表示:图1-1说明:1、用户输入含业务数的函表达式字符串2、第三方软件把表达式串传递给语法分析部件3、表达式中的业务函数经过分解、重新组合传递给应用服务4、应用服务通过系统与业务数据库交互5、应用服务把查询结果返回给表达式部件6、表达式部件使用查询结果进行计算7、第三方软件向用户显示含业务函数的表达式计算结果31.2.3业务函数以上通过对应用服务的讨论,实际上已经引出了业务函数的概念。定义:其语义动作由用友产品某一子系统定义的一种函数形式的语法结构,称为该子系统业务函数。业务函数相当于用户发出的取数命令,而应用服务则是命令的执行者。业务函数是一种专用函数,是相对于通用函数(如数学函数)而言的。业务函数是依附于一定子系统的业务语义的,离开了该业务语义,业务函数就变得没有意义。但这并不等于说,能使用某业务函数的前提是要安装某子系统,因为业务函数是在“应用服务”而不是在子系统当中实现的。目前,在8.10系列产品中,各子系统提供业务函数的情况如下表(图1-2)所示:业务函数名称函数数目(个)应用服务文件总账函数22UFSvrZW.dll工资函数5UFSvrGZ.dll固定资产函数6UFSvrZC.dll应收应付函数8UFSvrYS.dll财务分析函数1UFSvrFX.dll采购函数32UFSvrCG.dll库存函数31UFSvrKC.dll存货核算函数11UFSvrCH.dll销售函数39UFSvrXS.dll成本函数9UFSvrCA.dll合计164在Windows的System目录下,文件版本>=8.0图1-2这些业务函数的归纳性很强,例如,总账及财务分析中的13个业务函数可以涵盖8.10以下版本用友电子报表中的54个账务函数。业务函数是基于用友企业级财务软件的用友二次开发平台的核心环节。用友财务、分销软件各子系统作为数据“入口”和业务处理的坚实底层,用友电子报表和决策支持软件作为数据“出口”和用户浏览定义层,其间的纽带是业务函数。在未来版本的用友二次开发平台中,业务函数是面向对象的(面向业务子系统),而且数据“出口”也是灵活的,用户可以把数据输出到MSEXCEL和MSWORD的文件模板中,形成用户自己感兴趣的业务报告形式。1.2.4旧版本账务函数的升级业务函数的升级以及早期账务函数向新版业务函数的转换,由一个“用友业务函数转换器”部件来完成。这个部件对用户是透明的,象电子报表这样的第三方软件将在读入旧版本文件格式的时候,自动调用该部件,因而用户不需要为这个转换而花费额外的开销。今后,每次发布新版业务函数,“用友业务函数转换器”都跟着升级,使用用友应用服务的第三方软件商可以通过调用该转换器接口来达成版本一致性。1.2.5手册中图形符号的约定——表示提示,提醒你下面是内容的捷径。——表示注意,如果你想把事情做得好些,就要牢记这些信息。 ——表示警告,如果你想避免灾难,就要牢记这些信息。【】——表示菜单项。〖〗——表示图标或按纽。[]——表示快捷键。“”——表示引用当前界面中的项目。4第2章2.1名词 用友产品:在本文中特指用友企业级财务软件,用友财务及企业管理软件8.0ForWindows9X/NT版,包括财务、分销和决策支持软件。 C/S结构:Client(客户)与Server(服务)结构,基于网络分布式计算理论,是目前世界上流行的一种系统结构。 服务端:C/S结构的Server端。 客户端:C/S结构的Client端。 系统管理:用友产品的服务端程序。 业务子系统:用友产品的客户端程序。简称“子系统”。 业务数据:业务子系统应业务需要而采集、处理、存贮、输出的数据。 业务数据库:存贮业务数据的数据库。 业务函数:一种定义如何从业务数据库中取数的函数形式。简称“函数”。 通用函数:相对于业务函数而言,例如数学函数。 账务函数:指在8.0版以下用友电子报表(UFO)中使用的从账务数据库中取数的函数,是业务函数的前身。 应用服务:实现业务函数简单分析、业务数据库操作的程序。 导出式:也称“产生式”,在本文中是一种“自顶向下”地定义函数格式的形式(参见第二节“符号”)。 导出:可以理解为“即”或“就是”的意思。 词法:即基本单词的拼写规则。 词法分析:对基本单词的拼写进行分解、检查、转换为内部表示的过程。 语法:即能够形成有意义语句的基本单词之间的搭配规则。 语法分析:对用户输入的语句进行分解、检查、转换为内部表示的过程。 语法单位:即一类基本单词。如字符串、整数、实数,都是语法单位。 语义:语句的意义。包括语句的合法性,语句的可执行性。 语义动作:完成一条语句的处理过程。 表达式:由数字、字符串、四则运算符号、括号及各种函数按一定规则组成的字符串。 表达式部件:全称“表达式分析和计算部件”,对表达式进行分析和计算的程序。 嵌套:指函数参数是表达式时,其中包括其它函数的形式。 模块化:一种软件工程技术,即把程序按功能分解为相互独立、又能通过接口彼此沟通的多个部分。 组件技术:微软提出的一种模块化技术,英文名COM(ComponentObjectModel),即组件对象模式。用友产品采用了分布式组件技术(DistributeCOM或DCOM)。 ActiveX:属于组件技术的一个专用名词。 DLL:动态链接库(DynamicLinkableLibrary),在Windows资源管理器中通常被显示为“应用程序扩展”。 面向对象:一种软件开发模式,将现实世界中的事物理解为即相互分离、又相互联系的物件(Object),每个物件有它自己的属性特点和应激时的行为模式。 对象:即相互分离、又相互联系的物件(Object),每个物件有它自己的属性特点和应激时的行为模式。 实例:对象的具体实例(Instance)。一种对象可以有多个实例。 属性:对象的属性特点(Property)。5 方法:主要指对象的应激行为。又称“服务”、“函数”(Method)。 接口:指对象之间联系时相互识别的界面(Interface)。通过接口,甚至在不同机器上的对象之间也能够通讯。 二次开发:指用户在用友企业级财务软件的基础上利用二次开发语言和开发环境进行再开发,以满足用户自己独特的需求。 关键字:来源于用友电子报表(UFO),它们是由用户在应用环境中设置的。业务函数只涉及与时间有关的关键字。 方式字:在业务函数中使用的一种参数,指示紧随其后排列的编码的含义。 第三方软件开发商:调用应用服务接口以支持用友业务函数的软件开发商(用友公司本身除外)。 第三方软件:第三方软件开发商开发并拥有自主版权的软件产品。2.2符号 ∷=表示导出,就是“即”或“是”,如〈科目编码〉∷=〈字符串〉。 〈〉表示语法单位,如:〈科目编码〉。 []表示可缺省,如:[〈账套号〉]、[〈年度〉]; |表示可选择,如:期初|QC。 *表示参数数目可以从0到多个。 斜体字表示关键字,来源于用友电子报表,详见第六节“期间与关键字”。 正体字表示用户可直接输入的字符串,一般是函数名称、左右括号和逗号。2.3函数名称同一函数的名称包括:汉字名称,以及拼音缩写名称。如“期初”又是“QC”、“部门工资”又是“BMGZ”、“资产账套属性”又是“ZZS”、“应收款”又是“YSK”、“预算”又是“YS”。拼音缩写名称的大小写无关,如对应于“QC”,合法的还有“Qc”、“qc”、“qC”等。函数名称的头一个字母往往标识该函数返回值的性质,规定该字母含义:无——金额式s——数量式w——外币式j——计件式2.4函数格式及参数参数输入是可选固定字符串的,其输入形式包括:汉字形式,以及拼音缩写形式。如〈查询方式〉的输入包括“产品”或“C.