记账中心二开

系统预设了 这几种

FSubSystem 为子系统

T_VC_SubSystem 卡片显示的表 字段 FNeedRalteAccount 设置为1的话 ,需要与总账连用系统将去查找 系统状态控制表。 如果系统状态 没有配置这个子系统 将无法显示数据

sql 复制代码
 select sysStaCtr.fid from T_BD_SystemStatusCtrol sysStaCtr,T_BD_SystemStatus sysSta  where sysStaCtr.FSystemStatusID=sysSta.FID  and sysStaCtr.FCompanyID='8P//7//QMAAAAAAAT8znrtQ=' and sysSta.FName=36 and sysStaCtr.FIsRelAccount=1

T_VC_SubSystem 子系统卡片

sql 复制代码
insert into t_vc_subsystem(FSEQ, FSUBSYSTEM, FNEEDRALTEACCOUNT)
 values 
(7, 36, 0);
 

t_vc_billtype 记账中心单据类型

sql 复制代码
insert into t_vc_billtype(FSEQ, FWEBUIPK, FPERMISSIONITEM, FNAME_L1, FNAME_L2, FNAME_L3, FBOSOBJECTTYPE, FSUBSYSTEM, FQUERYPK, FID, FWEBEDITUIPK, FMODULE, FISGLSMART, FISSUPPORTMULTIBOTP)
 values 
(10, N'com.kingdee.eas.custom.zcht.jczl.CFksqList', null, null, '合同付款申请', null, N'CAA8E891', 36, N'com.kingdee.eas.custom.zcht.app.FksqQuery', 'C8/3tXvKMALgZQAAAAAAAY01y6k=', null, 'FSSC_GL', N'1', 0);

T_VC_UnVoucheredBillID 单据过滤注册类

sql 复制代码
result :

insert into T_VC_UnVoucheredBillID(FSUBSYSTEM, FBOSOBJECTTYPE, FCLASSNAME)
 values 
(36, N'CAA8E891', N'com.kingdee.eas.custom.zcht.vcsubSystem.FksqCarUnVoucheredBillIDImpl');
 

获取 卡片 展示单据条数核心方法。 获取注册类,反射

java 复制代码
package com.kingdee.eas.custom.zcht.vcsubSystem;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import com.kingdee.bos.BOSException;
import com.kingdee.bos.Context;
import com.kingdee.bos.dao.query.SQLExecutorFactory;
import com.kingdee.eas.basedata.assistant.PeriodInfo;
import com.kingdee.eas.basedata.org.CompanyOrgUnitInfo;
import com.kingdee.eas.common.EASBizException;
import com.kingdee.eas.fi.vc.app.IVCUnVoucheredBillID;
import com.kingdee.jdbc.rowset.IRowSet;
import com.kingdee.util.StringUtils;

public class  FksqCarUnVoucheredBillIDImpl   implements IVCUnVoucheredBillID {

	@Override
	public String getUnVoucheredBillID(Context ctx, CompanyOrgUnitInfo arg1, PeriodInfo arg2)
			throws BOSException, EASBizException {
		   
		  StringBuffer sql = new  StringBuffer();
		  String periodNumber = String.valueOf(arg2.getPeriodNumber());
		  String periodYear = String.valueOf(arg2.getPeriodYear());
		  
		  int periodNumberSize=2;
		  
		  periodNumber=String.format("%0"+periodNumberSize+"d",  Long.parseLong(periodNumber) );
		  
		  
		  String  period=periodYear+periodNumber;
		  sql.append("   /*dialect*/   select fid  from  CT_ZCH_Fksq  where   CFDJZT=3    and   CFVOUCHERNUMBER  is null  and  CFFICOMPANYID='"+arg1.getId()+"'   and     to_char(  FBIZDATE ,  'yyyyMM') ='"+period+"'  ");
		  IRowSet executeSQL = SQLExecutorFactory.getLocalInstance(ctx, sql.toString()).executeSQL();
		  StringBuffer ids = new  StringBuffer();
		  
		  try {
			while (executeSQL.next()) {
				  String fid = executeSQL.getString("fid");
				  ids.append("'").append(fid).append("'").append(",");
			  }  
		} catch (SQLException e) {
			e.printStackTrace();
		}
		  
	    String[] split = ids.toString().split(",");
	    String idsList = Arrays.toString(split);
	     
	    String endSql = idsList.toString().replace("[","").replace("]","");  
	    if(StringUtils.isEmpty(endSql) ) endSql="'xxxx'";  //无数据时返回假sql
	    
	    endSql="  select  fid  from CT_ZCH_Fksq   where  fid  in   (   "+endSql+"   ) ";  // 内查询 to_char  返回的sql 执行报错。 自己查询id返回
	  
	    return endSql.toString();
	    }

	  
	
	
	
	
	
	
}
相关推荐
小马爱打代码4 小时前
Redis 集群方案详解:主从复制、哨兵、脑裂、分片集群和哈希槽
数据库·redis·哈希算法
夜焱辰4 小时前
浏览器端 Agent 的文件版本管理:不用 Git,基于 OPFS + SQLite 自己造了一个
前端·人工智能
梦想的颜色4 小时前
TypeScript 完全指南(下):从类型体操到生产级配置
前端·javascript·typescript
海南java第二人6 小时前
ClickHouse 稀疏索引深度解析:为什么 OLAP 数据库不用 B-Tree?
数据库·clickhouse
Litluecat6 小时前
信创迁移:Oracle切换海量数据库,慢sql扫描
数据库·sql·oracle·信创·海量
Hi~晴天大圣6 小时前
npm使用介绍
前端·npm·node.js
消失在人海中6 小时前
Oracle的CURRENT REDO丢失,数据丢失风险分析
数据库·oracle
喵了几个咪6 小时前
选择第三方IAM还是自建权限体系?中小型后台系统权限架构决策指南
数据库·oracle·架构
888CC++7 小时前
如何在 C 语言中进行程序调试?
前端·javascript·算法