- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
如何在UAP的公式编辑器中新增自定义函数
赵玉行 2010.4.8
UAP公式编辑器中既有的函数有时不能满足我们业务的所有需求,这时可以考虑在其中增加自定义函数,UAP对此已经提供了扩展机制。
要使用户可在公式编辑器中使用我们的函数,需完成两步工作:
从nc.vo.pub.formulaset.function.NcInnerFunction继承自己的函数处理类
下面的例子说明了如何编写自己的函数处理类:
public class SelfFunRowCount extends NcInnerFunction {
public SelfFunRowCount(){
//参数个数
numberOfParameters = 5;
//自定义函数所在页签,如常用、数学、数据库、自定义等
functionType = IFormulaConstant.FUN_CUSTOM;
//函数的描述信息 functionDesc=getrowcount(tabname,pkfield1,value1,pkfield2,value2): +select count(*) from tabname where pkfield1=value1 and pkfield2=value2:\\n +[pkfield1,value1 cannot null;pkfiled2,value2 can null];
}
public Object function(List param) throws ParseException {
String tab=(String) param.get(0);
String pkfd1=(String) param.get(1);
String pkfd2=(String) param.get(3);
String value1=(String) param.get(2);
String value2=(String) param.get(4);
if(StringUtil.isEmptyWithTrim(tab)) return null;
SqlBuilder sql=new SqlBuilder();
sql.append(select count(*) from );
sql.append(tab);
sql.append( where );
sql.append(pkfd1,value1);
if(!StringUtil.isEmptyWithTrim(pkfd2)){
sql.append( and );
sql.append(pkfd2, value2);
}
Vector? result =DBCacheFacade.getFromDBCache(sql.toString(), false);
if(null==result || 0==result.size()) return 0;
return ((Vector)result.get(0)).get(0);
}
}
可以看出,主要在于编写function()函数,这个函数实现了具体的功能,即如何对传入的参数进行处理。
配置装载自定义函数
如果希望自定义的公式在所有的公式编辑器中都可以使用,则在 NCHOME/resources/formulaconfig/custfunction 目录下添加任意文件名的xml注册文件(注意:默认发版盘中此目录下有一个default.xml文件,请不要删除也不要改名),V60是分组件构造,则需要将配置文件放到“组件resources/formulaconfig/custfunction/ ”下,如scmpub/resources/formulaconfig/custfunction/scm_selfformula.xml,安装盘会自动放到NCHOME/resources/formulaconfig/custfunction 目录下。文件格式形如:
?xml version=1.0 encoding=gb2312?
formula-array
formula
customType0/customType
functionNamegetrowcount/functionName functionClassnc.ui.scmpub.util.SelfFunRowCount/functionClass
/formula
/formula-array
上次所举例子是有关getrowcount()这个自定义函数的具体实现,在scmpub中可以找到类和
您可能关注的文档
最近下载
- 通信系统设备安装记录.xls VIP
- 中央安全生产考核巡查与明查暗访重点清单及案例解析.pptx VIP
- 深圳市《房屋市政工程生产安全重大事故隐患检查手册(2024版)》.pptx VIP
- 2025驾校科目一模拟考试题.docx VIP
- 食品经营许可证全套规章制度(完整).pdf VIP
- 最新2025驾校科目一模拟考试题.docx VIP
- 2025花城版音乐三年级上册《工农兵联合起来》课堂教学设计.docx
- 汽车钣金喷涂技术 原子灰的施涂及安全防护-教案.pdf VIP
- 贵州2023年12月高中化学学业水平合格考试卷真题(含答案详解) .pdf VIP
- 电商直播行业政策法规解读与合规运营指南2025.docx VIP
原创力文档


文档评论(0)