NCV6公式
- 格式:doc
- 大小:158.00 KB
- 文档页数:3
LFW公式函数使用说明张晓燕本文档主要是对NC6系列中公式的基本使用进行简要说明,给出公式可以支持的参数类型以及对应的返回值类型结果等信息,并对公式函数中的一些特殊情况加以说明。
在类型返回值表中没有提及的情况均视为非法参数条件,会抛出异常。
本文档中由于书写匆忙,若有错误之处,欢迎批评指正。
公式的设置位置系统管理 > 客户化配置 > 模板管理 > 表单模板节点下,选择模板,点击设计。
打开如下界面:选中某个字段,可以设置字段的公式。
包括三种类型的公式:校验公式:点击保存逻辑时调用的公式。
编辑公式:设置编辑公式的字段值改变后调用的公式。
加载公式:加载页面数据时调用的公式。
LFW公式函数使用说明 (1)张晓燕 (1)1. 常用编辑公式 (7)● 1.1 iif(condition, result1, result2) (7)● 1.2 getColValue(tablename,fieldname,pkfield,pkvalue) (8)● 1.3getColValue2(tablename,fieldname,pkfield1,pkvalue1,pkfield2,pkvalue2) (8)● 1.4 isEmpty(str) (9)● 1.5 add(num1,num2) (9)● 1.6 zeroifnull(var) (10)● 1.7 compareDate(date1, date2, field) (10)● 1.8 date() (11)● 1.9 dateAdd(date1, num, fieldchar) (11)2. 常用校验公式 (12)● 2.1 错误提示 (12)● 2.2 消息提示 (12)● 2.3 确认提示 (12)3. 轻量级平台特有公式 (12)● 3.1.计算合计行 (12)● 3.2.禁用某个控件 (12)● 3.3.启用某个控件 (13)● 3.4.显示某个控件 (13)● 3.5.隐藏某个控件 (13)4字符串函数 (14)● 4.1 charat(string,index) (14)● 4.2 endswith(string, end) (14)● 4.3 equalsIgnoreCase(string1, string2) (15)● 4.4indexOf(st1, st2) (15)● 4.5 isEmpty(str) (16)● 4.6 lastIndexOf(st1, st2) (16)● 4.7 left(st, index) (16)● 4.8 leftStr(st,len,defaultStr) (17)● 4.9 length(st) (17)● 4.10 mid(String st, int start, int end) (18)● 4.11 right(String st, int index) (18)● 4.12 rightStr(st,len,defaultStr) (19)● 4.13 startsWith(String st, String start) (19)● 4.14 toLowerCase(String st) (20)● 4.15 toString(obj) (20)● 4.16 toUpperCase(String st) (20)● 4.17 trimZero(value, [decimal]) (21)5.数学函数 (22)● 5.1 abs(num) (22)● 5.2 acos(x) (22)● 5.3 add(num1,num2) (23)● 5.4 asin(x) (23)● 5.5 atan(x) (23)● 5.6 cos(x) (24)● 5.7 div(num1,num2) (24)● 5.8 exp(x) (25)● 5.9 int(x) (25)● 5.10 ln(x) (26)● 5.11 log(x) (26)● 5.12 max(x, y) (26)● 5.13 min(x, y) (27)● 5.14 mul(num1,num2) (27)● 5.15 round(double num, int index) (28)● 5.16 sgn(num) (28)● 5.17 sin(x) (29)● 5.18 sqrt(x) (29)● 5.19 sub(num1,num2) (29)● 5.20 tan(x) (30)● 5.21 toNumber(String st) (30)● 5.22 zeroifnull(var) (31)● 5.23 acosh(param) (31)● 5.24 angle(x,y) (32)● 5.25 asinh(param) (32)● 5.26 atanh(param) (32)● 5.27 cosh(param) (33)● 5.28 mod(x, y) (33)● 5.29 rand() (33)● 5.30 sinh(param) (34)● 5.31 sum(x,y) (34)● 5.32 tanh(param) (34)6. 数据库函数 (35)● 6.1 ass(freevalueID,checktype) (35)● 6.2 cvn(tablename,fieldname,pkfield,pkvalue) (35)● 6.3 cvs(tablename,fieldname,pkfield,pkvalue) (36)● 6.4 getColNmv(tablename,fieldname,pkfield,pkvalue) (36)● 6.5 getColNmv2(tablename,fieldname,pkfield1,pkvalue1, pkfield2,pkvalue2) (36)● 6.6 GetColsValue("tablename","fieldname1","fieldname2 ","pkfield",pkvalue) (37)● 6.7 getColValue(tablename,fieldname,pkfield,pkvalue) (37)● 6.8getColValue2(tablename,fieldname,pkfield1,pkvalue1,pkfield2,pkvalue2) (38)● 6.9getColValueMore(tablename,selectfield,field1,value1,field2,value2....) (38)● 6.10getColValueMoreWithCond(tablename,selectfield,field1,value1,field2,value2...,whereCondition) (39)● 6.11getMLCValue(tablename,fieldname,pkfield,pkvalue) (39)7. 财务函数 (39)●7.1 getChineseCurrency(Object) (39)●7.2 getEnglishCurrency(mark,number) (40)●7.3 setThMark(num) (40)●7.4 toChinese(Object number,int flag1,int flag2) (41)8. 日期类型 (41)●8.1 compareDate(date1, date2, field) (41)●8.2 date() (42)●8.3 dateAdd(date1, num, fieldchar) (42)●8.4 dateFormat(date, pattern) (43)●8.5 datetime() (43)●8.6 day () (44)●8.7 dayOf(date) (44)●8.8 month () (45)●8.9 monthOf(date) (45)●8.10 time() (45)●8.11 toDate(str) (46)●8.12 toDateTime(str) (46)●8.13 toTime(str) (46)●8.14 year () (47)●8.15 yearOf(date) (47)●8.16 dayWeek() (48)●8.15 dayWeek Of(date) (48)9. 基本类型 (48)●9.1 iif(condition, result1, result2) (48)●9.2 比较操作(<,>,<=,>=,!=,=) (49)●9.3 逻辑操作(&&,||,!) (50)●9.4 +操作 (50)●9.5 -操作 (51)●9.6 *操作 (52)●9.7 /操作 (52)●9.8 ^操作 (53)●9.9 %操作 (54)10. 关于公式解析的返回值 (54)1. 常用编辑公式1.1 iif(condition, result1, result2)公式含义简单的if语句,当condition为true时返回result1;当condition为false时返回result2 对应类:nc.vo.pub.formulaset.function.If类型返回值表例子如下:编辑公式举例:defitem9->iif(defitem2!=null&&defitem1!=null,comparedate(defitem2,defitem1,"D"),defitem9); 详解:(1)comparedate(defitem2,defitem1,"D"), defitem2与defitem1都是日期型字段,返回defitem2与defitem1之间天数的差值。
nc65公式替换
nc65公式是一个数学公式,用于计算通信信道的最大信息传输速率和评估密码系统的安全性。
它涉及到阶乘的计算,公式为:c65 = n! / (1/2!) + (2/3!) + (3/4!) + ...+ (n/n!),其中n!表示n的阶乘。
如果需要替换nc65公式中的某些项或阶乘,可以根据公式进行相应的替换。
例如,如果需要替换第一项,可以将公式中的n替换为新的值,然后重新计算其他项的值。
如果需要替换某个阶乘项,可以直接将该项的分子和分母同时替换为新的值。
请注意,在进行替换时,需要注意阶乘的运算规则,确保新的值在对应的阶乘范围内。
另外,nc65公式的计算方法和步骤相对简单,但需要注意精度和计算误差的问题。
永久性六合各种经济学公式永久性六合是一种复杂的经济学概念,其中包含了许多公式来解释不同的经济现象。
本文将介绍一些常见的经济学公式,以帮助读者更好地理解和应用永久性六合理论。
消费函数永久性六合理论中的消费函数是一个重要的公式,用于解释人们在不同的经济状况下的消费行为。
消费函数通常表示为 C = f(Y),其中C代表消费,Y代表收入。
这个公式表明人们的消费水平取决于他们的收入水平。
储蓄函数储蓄函数是另一个常见的经济学公式,用于描述人们将收入用于储蓄的决策。
储蓄函数通常表示为S = f(Y),其中S代表储蓄,Y代表收入。
这个公式表明人们的储蓄水平取决于他们的收入水平。
投资函数投资函数是永久性六合中的一个重要概念,用于解释企业和个人在不同的经济环境下的投资决策。
投资函数通常表示为I = f(r),其中I代表投资,r代表利率。
这个公式表明投资额取决于利率的水平。
费希尔方程费希尔方程是永久性六合理论中的一个重要公式,用于解释通货膨胀和利率之间的关系。
费希尔方程通常表示为i = π + r,其中i 代表名义利率,π代表通货膨胀率,r代表实际利率。
这个公式表明名义利率等于通货膨胀率加上实际利率。
边际效用函数边际效用函数是永久性六合中的一个关键公式,用于解释消费者对不同商品的边际效用变化。
边际效用函数通常表示为MU =f(Q),其中MU代表边际效用,Q代表消费的数量。
这个公式表明消费者对不同商品的边际效用随消费数量的变化而变化。
以上是永久性六合理论中的一些常见经济学公式,这些公式能够帮助我们更好地理解和解释不同的经济现象。
通过应用这些公式,我们可以更准确地预测和分析经济的发展趋势,并做出相应的决策。
NCV6nchome⽂件⽬录及其作⽤介绍NC V6发布⼀段时间了,各个NC6.0 nchome⽂件夹下各个⼦⽂件夹内容和作⽤ant:存放Apache Ant,⽤来执⾏EJB的构建。
bin: 存放nc部署和系统监控等命令。
configsys.log部署⽇志(包含NC中间件、WAS中间件等部署信息)以及NC_Client⽂件夹,包含⼿动⽣成的NC客户端。
ejb: 按模块分⼦⽬录存放各个模块所使⽤的EJB,由构建⼯具维护。
ejbXMLs:存放需要独⽴事务的EJB的部署描述符,⾥⾯的xml⽂件都是开发配置的服务或特殊ejb,由构建⼯具维护。
framework:存放UAP框架/基础代码,为中间件提供服务/信息配置。
DBTrans:数据传输。
ierp/bin:存放NC配置⽂件。
⽬录下包括account.xml(帐套信息)、langconfig.xml(语⾔信息)、prop.xml(中间件机群、数据源信息)、servicerun.xml(后台注册服务信息)、systemconfig.xml(登陆模式和登陆保持信息)等。
dist: 存放在ncSysConfig.bat⽣成的代码及配置⽂件,该信息在使⽤WAS中间件时,需要部署到WAS中。
在⽣成ejb后这个⽬录下应该存在⼀个nc.ear的⽂件,检查部署是否成功的时候可以看这个⽬录下的该⽂件内容是否跟was的”%WAS_HOME%\profiles\AppSrv01\installedApps\XXXXCell01\nc60.ear”这个⽬录下的内容⼀致。
initdatarule: 初始化NC数据的⼀些规则。
lib:NC在使⽤中⽤到的相关外部类⽂件(NC中间件使⽤该包下的数据库驱动)。
middleware:存放NC中间件等代码。
modules:按模块分⼦⽬录存放各个模块的代码。
分public,client和private。
每个模块由相应的产品组负责。
此⽬录下还存放EJB代理,不过EJB代理由构建⼯具维护。
自由报表技术红皮书NC-UAP 6.0用友NC-UAP2020-01-13目录第一章前言 (1)1.背景 (1)2.入门 (1)2.1自由报表的新建 (1)2.2自由报表的格式设计 (4)2.3语义模型的使用 (7)2.4可扩展区域 (9)2.5数据预览功能 (14)2.6分析功能 (16)3.小结 (19)第二章基本功能 (19)1.可扩展区域管理 (19)2.排序 (24)3.筛选 (25)4.固定成员 (26)5.分组 (29)6.分组统计 (30)7.排名函数 (32)8.TopN分析 (35)9.交叉 (40)第三章分析功能综合应用 (43)1.分组功能应用 (43)1.1列表中的多级分组 (44)1.2交叉表结合分组应用 (47)2.数据依赖处理区域拼接 (48)第四章报表发布节点 (50)1.报表发布 (50)2.发布后节点 (51)第五章穿透和联查 (52)1.报表穿透 (52)2.报表联查 (53)2.1接口TraceDataInterface (53)2.2注册方式 (54)2.3联查的执行 (54)2.4工具方法 (54)第六章报表节点的扩展 (55)1.查询动作扩展 (55)2.查询条件 (57)3.区域条件 (58)4.业务格式 (59)5.格式调整器 (61)6.工具方法 (62)第七章辅助开发工具 (64)1.手工导入导出 (64)2.安装盘脚本 (65)2.1构造平台中支持自由报表(以及语义模型)的脚本导出 (65)2.2发布的报表节点导出 (66)3.安装程序 (66)第一章前言1. 背景为满足各类用户在报表分析方面的综合要求,NC报表产品IUFO从5.5版本开始提供了一个分析型报表的解决方案:自由报表。
本文针对V6自由报表功能进行介绍,但是使用了部分5.6版本的产品截图,后续会逐步替换。
自由报表具有以下特点:1.针对企业不同业务角色,提供多样使用方式:报表数据查询人员可以在报表数据查询结果上直接构建分析型报表,而不需具备较深技术背景;专业的分析报表设计人员则可以全面使用设计功能实现复杂报表的定义和发布;2.支持多种数据来源:系统内置报表数据提供者和多种语义模型提供者,还支持注册其他类型语义模型提供者,多来源数据都可以在一张自由报表中进行数据分析和展现;3.报表支持多区域模型,多个区域按照数据分析结果各自动态展开;多区域和多数据来源之间均可以设置依赖关系,能灵活组合拼装出各类样式的复杂报表;4.格式设计和报表展现效果一致:各种数据分析和格式设置都在设计界面有直观展现,特别是交叉表的设计方式突破以往,能够可视化的直接定义维度指标及各类展现效果;5.提供了分析图表功能:提供了各类常见图表分析功能;6.分析功能和交互性加强:全面支持排序/过滤/分组/统计/交叉/排名函数/TopN等分析功能,并具有页维度和待定参数等交互特性。
package nc.vo.yll.zmpub.tool;import mon.RuntimeEnv;import nc.vo.pub.BusinessException;import nc.vo.pub.formulaset.FormulaParseFather;/*** yll公式执行工具* @author Toney**/public class YllFomulaTool {/*** 执行公式。
前后台通用* @param fomular 公式* @param names 参数名* @param values 参数值* @return 返回一个String.* @throws BusinessException*/public static final String execFomular(String fomular, String[] names, String[] values) throws BusinessException {FormulaParseFather parse=null;if (RuntimeEnv.getInstance().isRunningInServer()) {parse = new nc.bs.pub.formulaparse.FormulaParse();} else {parse = new nc.ui.pub.formulaparse.FormulaParse();}parse.setExpress(fomular);if (names.length != values.length) {throw new BusinessException("传入参数异常");}int index = 0;for (String name : names) {parse.addVariable(name, values[index]);index++;}return ZmPubTool.getString_TrimZeroLenAsNull(parse.getValue());}public static final String exeGetColvalueFomular(String table, String filed,String wherefiled, String value) throws BusinessException {FormulaParseFather parse=null;String fomular="value->getcolvalue("+table+","+filed+","+wherefiled+",value)";if (RuntimeEnv.getInstance().isRunningInServer()) {parse = new nc.bs.pub.formulaparse.FormulaParse();} else {parse = new nc.ui.pub.formulaparse.FormulaParse();}parse.setExpress(fomular);parse.addVariable("value", value);//为公式赋值return ZmPubTool.getString_TrimZeroLenAsNull(parse.getValue());}public static String getString_TrimZeroLenAsNull(Object value) {if (value == null || value.toString().trim().length() == 0) {return null;}return value.toString();}}。
nc公式函数语法规则在计算机科学中,NC(Numerical Control)是一种用于描述数学公式和函数的语法规则。
它是广泛应用于数值计算、统计分析、科学计算等领域的一种标准表示法。
本文将详细介绍NC公式和函数语法规则。
一、NC公式NC公式是指由数学符号和运算符构成的表达式,用于描述数学关系和运算。
常见的NC公式包括代数方程、微积分方程、统计方程等。
NC公式通常由四个基本要素组成:变量、常量、运算符和函数。
1.变量变量是用来表示数值的符号,可以是任意字母或字母组合。
常用的变量有x、y、z等。
变量可以代表任意实数或复数。
2.常量常量是指固定不变的数值,如2、3.14等。
常量可以直接用数字表示,也可以用字母表示。
常用的常量有π(圆周率)、e(自然对数的底数)等。
3.运算符运算符用于表示数学运算,如加法、减法、乘法、除法等。
常见的运算符有+、-、*、/等。
运算符可以用来连接变量、常量和函数,形成复杂的数学表达式。
4.函数函数是指将一个或多个变量映射到另一个变量的规则。
函数可以用来描述数学关系和数据变换。
常用的数学函数有正弦函数、余弦函数、指数函数等。
函数通常用一个字母表示,并用括号包围变量。
例如,sin(x)表示正弦函数。
NC公式的语法规则如下:-变量的命名可以是字母、数字和下划线的组合,但不能以数字开头。
-变量和常量可以直接相邻,如2x表示2乘以变量x。
-变量和常量之间可以通过运算符相连,如2+x表示2加上变量x。
-括号可以用于控制运算的顺序,如2+(3*x)表示3乘以x再加上2- 函数可以用于包围变量,如sin(x)表示对变量x求正弦值。
- 函数可以通过嵌套使用,如sqrt(sin(x))表示对变量x求正弦值再开平方根。
二、NC函数NC函数是指用于计算数学公式的程序模块。
它可以接收输入参数,执行指定的数学运算,并返回计算结果。
NC函数通常由函数名、参数列表和返回值组成。
1.函数名函数名是用来标识函数的名称,通常采用英文字母。
NC添加自定义显示公式的方法步骤大致是:1.编写显示公式JAVA类,该类继承 import nc.vo.pub.formulaset.function.NcInnerFunction;例如:public class UserSign extends NcInnerFunction2.编写配置文件,文件的路径放在与modules同级目录的resources\formulaconfig\custfunction目录下,文件编写要按照一定的格式,例:hzdev.xml<?xml version="1.0" encoding="gb2312"?>< formula-array><formula><customType>9</customType><functionName>isUserSign</functionName><functionClass>erSign</functionClass></formula>< /formula-array>编写JAVA类逻辑处理代码,部署本地服务器,重启,单据模板配置显示公式。
代码例子如下:package er.formula;import java.util.List;import mon.NCLocator;import nc.bs.logging.Logger;import nc.itf.uap.busibean.IFileManager;import ng.StringUtil;import nc.vo.pub.BusinessException;import nc.vo.pub.formulaset.core.ParseException;import nc.vo.pub.formulaset.function.NcInnerFunction;import nc.vo.uap.busibean.exception.BusiBeanException;import erSignIcon;/*** 查看用户是否已经上传签名显示公式* isUserSign(user_code):传入用户编码,返回用户是否已经上传签名图片信息,已经上传返回\"是\",否则返回\"否\"* @author xms**/public class UserSign extends NcInnerFunction {private String sDir = "/user_signicon/";private IFileManager fileManager;public UserSign() {this.numberOfParameters = 1;this.functionType = 9;}@Overridepublic Object function(List param) throws ParseException {Logger.debug("erSign");Logger.debug("调用公式isUserSign(user_code),传入用户编码,返回用户是否已经上传签名图片信息"); if ((param == null) || (param.size() < 1)) {return "否";}String user_code = (String) param.get(0);UserSignIcon sign_icon = new UserSignIcon();String sFilename = null;try {sFilename = getFilename(user_code);} catch (BusinessException e) {return "否";}if (StringUtil.isEmptyWithTrim(sFilename)) {return "否";}String sPre = user_code + "_";sign_icon.setIcon_name(sFilename.substring(sPre.length()));try {sign_icon.setIcon(getFileManager().readFile(this.sDir + sFilename));} catch (BusiBeanException e) {e.printStackTrace();}if (sign_icon.getIcon() == null || "".equals(sign_icon.getIcon())) {return "否";}return "是";}@Overridepublic String getFunctionDesc() {return "isUserSign(user_code):传入用户编码,返回用户是否已经上传签名图片信息,已经上传返回\"是\",否则返回\"否\"";}private String getFilename(String usercode) throws BusinessException { String[] sAllFile = getFileManager().getAllFile(this.sDir, 0);String sPre = usercode + "_";int i = 0;for (int iLen = sAllFile == null ? 0 : sAllFile.length; i < iLen; i++) {if (sAllFile[i].startsWith(sPre)) {return sAllFile[i];}}return null;}public IFileManager getFileManager() {if (this.fileManager == null) {this.fileManager = ((IFileManager) NCLocator.getInstance().lookup( IFileManager.class.getName()));}return this.fileManager;}}。