用友nc65 uap公式开发
用友nc65 uap公式开发
1.应用场景:
上面有一次博客说了如何使用自定义公式解决房产多显问题,这次是在人力资本模块薪资函数公式面板上新加一个公式,实现特定的需求。如图所示:新加一个距起薪日工作日天数公式。
![](/assets/blank.gif)
2.开发思路:
<formula><customType>9</customType><functionName>WaperiodDays</functionName><functionClass>nc.ui.wa.formular.func.WaperiodDays</functionClass>
</formula>
如图如图所示:
![](/assets/blank.gif)
<entry><string>SALARYPERIODWORKDAYS</string><function><defaultName>6013commonbasic;06013commonbasic0073</defaultName><displayName>salaryPeriodWorkDays</displayName><hintMsgRes>6013commonbasic;06013commonbasic0073</hintMsgRes><inputSigRes>6013commonbasic;06013commonbasic0135</inputSigRes><pattern>salaryPeriodWorkDays\(.*,.*\)</pattern><arguments>salaryPeriodWorkDays({0},{1})</arguments><returntype>0</returntype> <parapanel>nc.ui.wa.formular.WageDaysFunctionEditor</parapanel><group>WA</group><process>nc.impl.wa.func.SalaryPeriodWorkDays</process><productCode>UPP6013func</productCode></function></entry>
其中的多语对应的中文如下:
fvo1.setDefaultName("距起薪日工作日天数");fvo1.setDisplayName("salaryPeriodWorkDays()");fvo1.setHintMsgRes("距起薪日工作日天数");fvo1.setInputSigRes("@薪资函数.期间工作日天数@");
在E:\nchome_1106\nchome\langlib下找到对应的多语文件如下:
06013commonbasic0073=距起薪日工作日天数
如图所示:
![](/assets/blank.gif)
package nc.ui.wa.formular.func;import nc.ui.hr.formula.func.HrDigitFunc;public class SalaryPeriodWorkDays extends HrDigitFunc{public SalaryPeriodWorkDays() {numberOfParameters = 2;}
}
后台功能实现类
package nc.impl.wa.func;import nc.vo.hr.func.FunctionReplaceVO;
import nc.vo.pub.BusinessException;
import nc.vo.pub.lang.UFDate;
import nc.vo.pub.lang.UFDate;/*** * @author: zenglong* @ClassName: SalaryPeriodWorkDays* @Description: 距起薪日工作日函数* @date: 2017年12月4日*/
public class SalaryPeriodWorkDays extends AbstractWAFormulaParse {private static final long serialVersionUID = 3175524099403452930L;public FunctionReplaceVO getReplaceStr(String formula)throws BusinessException {FunctionReplaceVO fvo = new FunctionReplaceVO();UFDate beginDayLiteralDate = null;UFDate endDayLiteralDate = null;String[] arguments = getArguments(formula);for (int i = 0; i < arguments.length; i++) {String[] date = arguments[i].split("'");if (i == 0) {beginDayLiteralDate = new UFDate(date[1]);}if (i == 1) {endDayLiteralDate = new UFDate(date[1]);}}int sn = getWorkingDaysBetween(beginDayLiteralDate, endDayLiteralDate,true);fvo.setReplaceStr(" " + sn + " ");return fvo;}private int getWorkingDaysBetween(UFDate beginDay,UFDate endDay, boolean includeEndday) {int countNetWorkingDays = 0;UFDate today = beginDay;while (today.before(endDay)) {if ((today.getWeek() != 6) && (today.getWeek() != 0)) {countNetWorkingDays++;}today = today.getDateAfter(1);}if ((includeEndday) && (endDay.getWeek() != 6)&& (today.getWeek() != 0)) {countNetWorkingDays++;}return countNetWorkingDays;}
}
3.代码分析:
![](/assets/blank.gif)
调用对应nc.impl.wa.func.AbstractWAFormulaParse下的public String parse(String pk_org, String formula, Object... params) throws BusinessException方法
![](/assets/blank.gif)
![](/assets/blank.gif)
用友nc65 uap公式开发相关推荐
- 用友nc65 uap开发找产品功能源代码
用友nc65 uap开发找产品功能源代码 1.目标:在我们开发中,很多时候我们看到产品有的功能二开的时候需要使用相关功能,这个时候怎么去参考产品相关功能源代码呢?如我们需要收款结算录入节点的联查凭证 ...
- 用友nc65 uap开发刷新按钮二次开发
用友nc65 uap开发刷新按钮二次开发 1.问题现象:卡片刷新,直接返回列表,且定位成第一条,且执行的是全部刷新 2.问题分析: 65向导生成的按钮,刷新按钮使用的同一个 nc.ui.pubapp. ...
- 用友nc65 uap开发如何将一个vo单据显示在一个弹窗面板上?
用友nc65 uap开发如何将一个vo单据显示在一个弹窗面板上? 在有的时候我们需要通过一个节点查看另外一个节点与之相关的信息,而如果需要再去打开另外一个节点这样会使得操作繁杂.此时我们利用他们之 ...
- 用友nc65 uap开发参照多选三种显示情况总结
用友nc65 uap开发参照多选三种显示情况总结 总结参照多选后显示在面板上的3中情况. 注意点:1参照属性面板不能存放数组类型, 2.参照字段由元数据产生,可能不能显示出来,此时需要到单据模版初始化 ...
- 用友nc65 uap开发 使用同一个元数据开发两个节点后使用不同的审批流
用友nc65 uap开发 使用同一个元数据开发两个节点后使用不同的审批流 1.场景: 前面博客有提到过,使用同一个元数据开发出两个不同的节点,但是对于两个节点是有自己的不同审批流配置, 2.思路: N ...
- 用友NC65 Rest接口开发及调试(一)
NC65中除了支持SOAP协议的webservice接口外,还支持REST协议的接口,NC65的REST服务封装的是restlet,找了很多资料终于弄清楚了,这里总结归纳一下,供朋友们参考: 1.接口 ...
- 用友NC65 配置UAP时 打开sysconfig闪退
用友NC65 配置UAP时 打开sysconfig闪退 在安装目录下边记事本打开sysconfig,然后在if一行后边加一行 set JAVA_HOME=D:\yonyou\home\ufjdk 保存 ...
- 用友U9 UAP平台解析
用友U9 UAP平台解析 e-works 孙亚婷 2009年10月,e-works Research对用友U9 2.0版进行了一次评估.本文对U9的UAP平台的评估结果进行解析. 1.现代企业环境的变 ...
- 记录用友ERP二次开发全过程(转载)
记录用友ERP二次开发全过程 以此为备忘录. 最好在机器上装好U8. 下一步把自定义权限及模块加入U8里,以方便外部程序调用,识别! function erpLogin:boolean; var lo ...
最新文章
- LeetCode简单题之拆炸弹
- oracle SQL性能优化
- centos7如何安装samba-client_如何在基本图形模式下最小化全新安装CentOS 7?
- try catch finally 执行顺序问题
- 20应用统计考研复试要点(part25)--简答题
- python基础-网络基础知识和网络编程
- (138)System Verilog覆盖率目标设置
- ROS入门-10.话题消息的定义与使用
- vs配置opencv
- 腾讯体育php面试题,腾讯php程序员面试题目及答案分享!
- 2019年PAT甲级冬季考试真题及参考答案
- internet信息服务器管理器,细述Win10系统上开启internet信息服务(iis)管理器的操作步骤...
- windows系统安装wget指令
- Mysql查询性能优化-善用Explain语句
- 为什么我们创业失败了和选择创业公司的思考
- x射线 相衬成像 matlab模拟,X射线相衬成像系统与成像方法
- layui按钮---Layer自定义按钮,关闭弹出层/弹窗;layer自带按钮
- UVA1103古代象形文字識別
- 【C++】数组和指针的爱恨情仇。。。
- QRCode二维码扫描和生成