1、继承NcInnerFunction(nc.vo.pub.formulaset.function.NcInnerFunction)

在方法中引用父类方法function,并在里面写方法

@Override
public Object function(List param) throws ParseException {
if(param==null&&param.size()!=1)
throw new ParseException("参数不正确!"); String id = (String) param.get(0); IUAPQueryBS bs = NCLocator.getInstance().lookup(IUAPQueryBS.class);
String sql = " select h.vbillno,h.invoiceno,h.invoicestatus,h.pk_buleid,h.invoicetype from XXXXt " +
" inner join XXXX h on t.pk_vatinvoice = h.pk_vatinvoice " +
"where nvl(h.dr,0)=0 and t.pk_detail='"+id+"' ";
if(getInvoiceType()==1){
sql+=" t.ispenal ='N' ";
}else if(getInvoiceType()==2){
sql+=" t.ispenal ='Y' ";
}
try {
System.out.println(sql);
List resList = (List) bs.executeQuery(sql, new MapListProcessor());
if(resList.isEmpty())
return null; StringBuffer sb = new StringBuffer();
for (int i=0;i<resList.size();i++) {
Map<String, Object> linMap = (Map<String, Object>)resList.get(i);
String no = (String)linMap.get("invoiceno");
String billno = (String)linMap.get("vbillno"); sb.append(no==null?billno:no);
Integer st = (Integer)linMap.get("invoicestatus");
Integer type = (Integer)linMap.get("invoicetype");
String ty = "";
if(InvoiceType.VATCOM.getType() == type)
ty = "XX";
if(InvoiceType.VATPRO.getType() == type)
ty = "XX";
if(InvoiceType.VATELCOM.getType() == type)
ty = "XX";
// End if(st==InvoiceStatus.OUTED.getStatus()){
if(linMap.get("pk_buleid")!=null){
sb.append("(").append(ty+",").append("XX").append(")");
}else{
sb.append("(").append(InvoiceStatus.OUTED.getName()).append(")");
}
} // else if(st==InvoiceStatus.OUTING.getStatus()){
// sb.append("(").append(InvoiceStatus.OUTING.getName()).append(")");
// }
else if(st==InvoiceStatus.CANCEL.getStatus()){
sb.append("(").append(ty+",").append(InvoiceStatus.CANCEL.getName()).append(")");
}else if(st==InvoiceStatus.RCW.getStatus()){
sb.append("(").append(ty+",").append(InvoiceStatus.RCW.getName()).append(")");
}else{
sb.append("(").append(ty+",").append(InvoiceStatus.UNOUT.getName()).append(")");
}
if(i<resList.size()-1)
sb.append(",");
}
if(sb.length()>0)
return sb.toString();
} catch (BusinessException e) {
e.printStackTrace();
} return null;
}

返回描述为:

@Override
public String getFunctionDesc() {
return "invoiceall(String):传入XX主键,返回全部XX信息";
}

引入到配置文件中:

<?xml version="1.0" encoding="gb2312"?>
<formula-array>
<formula>
<customType>9</customType>
<functionName>invoiceall</functionName>
<functionClass>xx.xx.xx.InvoiceAll</functionClass>
</formula>
</formula-array>

配置文件放在nchome 下 resources/formulaconfig/custfunction/xx.xml


效果为:

NC 5系自定义显示公式的更多相关文章

  1. LCD12864 液晶显示-汉字及自定义显示(并口)

    LCD12864带字库,型号:CM12864-12.其相关数据手册可以在百度中搜索“ST7920 系列中文图形液晶模块使用说明书”,里面有详细的介绍.这里就不在多描述. 其原理简图:(我们只需关心接口 ...

  2. Siteserver-stl:searchOutput(搜索结果)自定义显示样式

    stl:searchOutput 自定义显示样式 自定义搜索提交表单需要在<stl:searchOutput>中嵌入显示搜索结果的标签,必须包含的标签 有<stl:pageConte ...

  3. TreeView 自定义显示checkbox

    本项目需要对TreeView进行定制,要求比较简单,主要要求如下: Winform中TreeView控件默认只支持所有级别的CheckBox显示或者不显示,不能控制制定Level的树节点显示 效果如下 ...

  4. SharePoint 2013 关于自定义显示列表表单的bug

    1.在SharePoint 2013中,我们隐藏列表Dispform页面的ListFormWebPart部件,转而使用自定义显示列表表单进行展示,因为这样更容易定制我们需要的显示: 2.之后发现文件夹 ...

  5. LR脚本自定义显示Controller虚拟用户状态

    在场景监控的过程中,想知道场景运行时Vusers的运行状态以及每一个Vuser虚拟用户在本次场景运行的过程共迭代了多少次,那么就需要在VuGen脚本中自定义显示虚拟用户状态信息. 代码如下: stat ...

  6. LCD12864 液晶显示-汉字及自定义显示(串口)

    在网上找了许久,发现FPGA用串口驱动LCD12864程序很少,基本上没有.刚开始窃喜,中间郁闷,最后还是高兴,为什么这样说呢!头一回在没有参考程序的情况下,完全是照时序图写(自信),中间调试过程遇到 ...

  7. ToastCustom【自定义显示风格的Toast】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 基于系统Toast的自定义显示风格的Toast. 效果图 代码分析 ToastCustom类基于系统Toast,不是继承Toast, ...

  8. piwik获取访客头像,自定义显示访问者头像(URL)和描述(标题和替代)

    访客头像 自定义显示访问者头像(URL)和描述(标题和替代) 链接地址:https://plugins.matomo.org/VisitorAvatar#description

  9. C# TreeView 自定义显示checkbox

    本项目需要对TreeView进行定制,要求比较简单,主要要求如下: Winform中TreeView控件默认只支持所有级别的CheckBox显示或者不显示,不能控制制定Level的树节点显示 效果如下 ...

随机推荐

  1. JS----文档对象模型

    DOM: document object model 文档对象模型提供了一套可以访问和修改HTML文档内容的方法 访问:获取 修改:设置 1 JS要去操作HTML元素,必须要先用JS找到他,转换为JS ...

  2. Java 中 synchronized的用法详解(四种用法)

    Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码.本文给大家介绍java中 synchronized的用法,对本文感兴趣的朋友一起看看吧 ...

  3. 使用Js控制ReactRouter路由

    [使用Js控制ReactRouter路由] 首先引入PropTypes: const PropTypes = require('prop-types'); 然后定义context的router属性: ...

  4. Unity中的四个路径

    Application.database:当前工程的Assets文件夹(编辑器) Application.StreamingAssets:IO流路径 当前工程的StreamingAssets文件夹(编 ...

  5. 关于解决java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoader问题

    解决方案: 其实是你的jar文件没有同步发布到自己项目的lib目录中 (如果是用Maven进行构建的话) 可以试试 下面的办法 –rebuild下project就可以了 项目点击右键 点击 Prope ...

  6. 【scrapy】爬虫的时候总在提示 KeyError: 'novelLabel'

    调试的时候总是提示 KeyError: 'novelLabel'然后决定断点调试一下, 在def parse_book_list(self, response):方法下,添加print(respons ...

  7. matlab读取excel里的数据并用imagesc画图

    把矩阵数据保存在excel里 比如文件为 a.xlsx 通过下面的程序读取 a=xlsread('\文件保存的目录\a.xlsx'); figure(1); imagesc(a) colormap(h ...

  8. 第十章 优先级队列 (a1)需求与动机

  9. 51nod 1163 最高的奖励

    链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1163 1163 最高的奖励  基准时间限制:1 秒 空间限制:13 ...

  10. 200. Number of Islands (Graph)

    Given a 2d grid map of '1's (land) and '0's (water), count the number of islands. An island is surro ...