单据联查凭证可以找个如收款结算单的仿写一个。

而总账凭证联查单据则需要实现联查单据的类,重新写一个类。并把类注册进数据库。

最终效果:

  1. public class QuerySellcarryBillService implements IBillReflectorService {
  2.  
  3. public Collection<FipExtendAggVO> queryBillByRelations(
  4. Collection<FipRelationInfoVO> relationvos) throws BusinessException {
  5. List<String> pkList = new ArrayList<String>();
  6. // 收入结转单主键
  7. String pkfld = "pk_sellcarry_h";
  8. Class cl = AggSellcarryHVO.class;
  9. boolean bl = true;
  10. String billtype = "";
  11. for (FipRelationInfoVO vo : relationvos) {
  12. pkList.add(vo.getRelationID());
  13. if (bl) {
  14. billtype = vo.getPk_billtype();
  15. checkTemplet(billtype);// 检查模板
  16. String transtype = this.querytranstype(billtype);
  17. // 单据类型
  18. if ("HZ19".equals(billtype)
  19. || (transtype != null && "HZ19".equals(transtype))) {
  20. pkfld = "pk_sellcarry_h";
  21. cl = AggSellcarryHVO.class;
  22. }
  23. bl = false;
  24. }
  25. }
  26. String[] pks = pkList.toArray(new String[0]);
  27. String sql = "";
  28. sql = SqlUtils.getInStr(pkfld, pks, true);
  29.  
  30. NCObject[] results = MDPersistenceService
  31. .lookupPersistenceQueryService().queryBillOfNCObjectByCond(cl,
  32. sql, false);
  33. List<FipExtendAggVO> fipAggVOList = new ArrayList<FipExtendAggVO>();
  34. if (!ArrayUtils.isEmpty(results)) {
  35. for (NCObject aggvo : results) {
  36. AggSellcarryHVO aggVo2 = (AggSellcarryHVO) aggvo
  37. .getContainmentObject();
  38. FipExtendAggVO fipAggVO = new FipExtendAggVO();
  39. fipAggVO.setRelationID(aggVo2.getPrimaryKey());
  40. fipAggVO.setBillVO(aggVo2);
  41. fipAggVOList.add(fipAggVO);
  42. }
  43. }
  44. return fipAggVOList;
  45. }
  46.  
  47. private void checkTemplet(String billtype) throws BusinessException {
  48. try {
  49. IBillTemplateQry impl = (IBillTemplateQry) NCLocator.getInstance()
  50. .lookup(IBillTemplateQry.class);
  51. IUAPQueryBS bs = (IUAPQueryBS) NCLocator.getInstance().lookup(
  52. IUAPQueryBS.class);
  53. // 默认HZ19的查询模板主键。
  54. String sql = "select templateid from pub_systemplate_base where templateid='0001ZZ100000005442CC'";
  55. String id = (String) bs.executeQuery(sql, new ColumnProcessor());
  56. BillTempletVO template = impl.findCardTempletData(id);
  57. if (template == null) {
  58. throw new BusinessException("交易类型:" + billtype
  59. + "没有分配模板,请在功能节点默认模板设置进行分配!");
  60. }
  61. } catch (BusinessException e) {
  62. e.printStackTrace();
  63. throw new BusinessException("查询模板出现异常:" + e.getMessage());
  64. }
  65.  
  66. }
  67.  
  68. // 去查询交易类型与单据类型的关联关系,
  69. public String querytranstype(String billtype) throws BusinessException {
  70. String sql = "select parentbilltype from bd_billtype where pk_billtypecode='"
  71. + billtype + "'";
  72. Object tr = new BaseDAO().executeQuery(sql, new ColumnProcessor());
  73. if (tr != null) {
  74. if (!StringUtils.isEmpty(tr.toString())
  75. && !"~".equals(tr.toString())) {
  76. return tr.toString();
  77. }
  78. }
  79. return null;
  80. }
  81. }

注册进数据库

  1. insert into fip_billregister (BILLDRAWCLASS, BILLREFLECTCLASS, BILLSUMCLASS, CLASS_ENTITY_ID, CTRLORGFINDCLASS, DEFDOC1, DEFDOC2, DEFDOC3, DEFQUERYCLASS, DESBILLSERVCLASS, DESBILLSUMCLASS, DESCTRLRULECLASS, DESSUMRULECLASS, DESSUMRULEENTITY, DESSUMRULEREF, DISPLAYCLASS, DR, DRAWQUERYCLASS, EDITCLASS, LINKQUERYCLASS, MODULECODE, ORG_CTRL_ENTITY1, ORG_CTRL_ENTITY2, ORG_ENTITY_ID, PK_BILLREGISTER, PK_BILLTYPE, PK_GROUP, PK_ORG, TS)
  2. values (null, 'nc.bs.hzctr.sellcarry.ace.bp.QuerySellcarryBillService', null, '~', null, null, null, null, null, null, null, null, null, null, null, null, 0, null, null, null, 'hzctr', '~', '~', '~', '0000Z30000000HPF0811', 'HZ19', '~', '~', '2017-08-11 10:03:11');

NC 6系总账凭证联查原始单据的更多相关文章

  1. NC 6系后台调用接口保存单据

    IPFBusiAction ipf = (IPFBusiAction)NCLocator.getInstance().lookup(IPFBusiAction.class); ipf.processA ...

  2. NC 5系自定义显示公式

    1.继承NcInnerFunction(nc.vo.pub.formulaset.function.NcInnerFunction) 在方法中引用父类方法function,并在里面写方法 @Overr ...

  3. NC 6系分配组织方法

    分配客户的方法 String[] customer = { cuVO.getPk_customer() }; ICustAssignService cs = NCLocator.getInstance ...

  4. NC 6系初始化EJB

    6系开发时,调用远程接口去操作数据时,需先调用EJB. InvocationInfoProxy.getInstance().setUserDataSource(design); InvocationI ...

  5. NC 5系查询引擎做报表

    在集团下打开查询引擎管理节点,选中查询设计,鼠标移动到创建,点击文件夹 文件夹名字按需求起,创好文件夹后选中该文件夹后鼠标移动到创建,点击对象. 按需求起好编码和名称 都创建好后,点击SQL手工设计 ...

  6. NC 6系预警类型注册

    在实际开发预警任务中,因为模块是新创建的,所以开发预警,就要在相应的节点模块注册.但这样代码就得放在相应的模块中,注册个预警类型,就可以把代码直接放在自己新建的模块. .先执行新建模块语句 inser ...

  7. Oracle EBS GL总账凭证取值

    SELECT gh.je_header_id, gh.period_name, gh.default_effective_date, gh.je_source, gs.user_je_source_n ...

  8. k3 cloud总账凭证点击保存的时候提示未将对象引用到对应的实例

    检查以后发现是创建日期的用了创建日期,修改了一下日期就可以了

  9. 【MM系列】SAP 物料凭证增强

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]在SAP里查看数据的方法   前言部 ...

随机推荐

  1. TF(3): 安装部署_Windows

    CUDA: CUDA(Compute Unified Device Architecture): CUDA™是一种由显卡厂商NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题. ...

  2. gdb调试嵌入式环境搭建

    1.下载gdb源代码 http://ftp.gnu.org/gnu/gdb/ 2.编译 解压#tar zxvf gdb-7.9.1.tar.gz,cd到解压的目录中. 2.1编译arm-linux-g ...

  3. AsyncTask(异步任务)

    一.AsyncTask ①AsyncTask的源码: public abstract class AsyncTask<Params, Progress, Result> 三种泛型类型分别代 ...

  4. Prometheus介绍

    Prometheus的主要特点 Prometheus 属于一站式监控告警平台,依赖少,功能齐全.Prometheus 支持对云的或容器的监控,其他系统主要对主机监控.Prometheus 数据查询语句 ...

  5. websocket简单理解

    实现及原理 Websocket是一种在单个TCP连接上进行全双工通讯的协议. WebSocket 首先发起一个 HTTP 请求,在请求头加上 `Upgrade` 字段,该字段用于改变 HTTP 协议版 ...

  6. 源码:Java集合源码之:哈希表(二)

    要想知道一个元素是否在数组或链表中,只能从前向后挨个对比,无论是数组还是链表,其对数据的查询表现都比较无力.在的二叉排序树中,还会将数据排序以进行二分查找,将时间复杂度从O(n)降低到O(lg n). ...

  7. SQL Server 2012无法连接到WMI提供程序

    这篇文章主要介绍了SQL Server 2012无法连接到WMI提供程序(Cannot connect to WMI provider)解决方案,需要的朋友可以参考下 今天一位同事在启动自己工作机的S ...

  8. Windows和Linux查看端口占用

    Windows方法 TCP netstat -aon|findstr "TCP"|findstr "LISTENING"|findstr ":135[ ...

  9. mongodb相关文章

    1.Windows 平台安装 MongoDB 2.MONGODB基本命令用 3.MongoDB 教程

  10. java学习--构造方法

    构造方法的作用:创建对象并初始化对象 定义规则:构造方法名与类名相同且没有返回值.(构造方法不需要设置返回值类型,包括void) 在没有定义构造方法是,编译器会自动为类添加形如  类名 () {}  ...