用友业务最大单号的修复
文章来源:http://blog.sina.com.cn/s/blog_6169ba7b0101atdg.html
知识:用友做软件开发时,有一个表是专门存储最大单号的:
数据库名:Ufsystem.mdb,表名:UA_Identity,此表的字段如下:
字段名 意义
cAcc_Id 002
cVouchType 单据类型编码
iFatherId 主表标识,即主表ID
iChildId 子表标识,即子表ID
在表名:UA_Identity中,举例来说,对应cVouchType='Tr'的iFatherId和iChildId的数应对应主表TransVouch和子表TransVouchs最后一行的ID号,如果小于这两个数,保存单据时就会出现错误提示。
一般地,主表最大ID字段为ID,子表最大ID字段为 AutoID
两个错误提示的解决办法:
一、在使用用友软件中,在做某些业务单据时,无法保存,出现如下提示
这个问题主要是同一业务有多个人操作或在操作时非正常退出引起的,解决这个问题很简单,首先要保证这个业务就你一个人在操作,解决方法如下:
1.出现不能保存时,点确定,再点保存。
2.如果还是保存不上,返回第1步。
我发现,在Ufsystem.. UA_Identity表中,每保存一次,相应记录的两个字段iFatherId和iChildId会自动+1,这样,反复执行这两步,就产生了最大的单号,可以保存了。
二、错误提示(不同的单据数据名不同,汉字基本相同):
手工解决办法,打开对应数据库,主表TransVouch,子表TransVouchs,移到最下面一行,抄下其最大ID号,再打开Ufsystem.mdb….UA_Identity,找到相应的记录,填入这两个ID号即可。
也可以通过下面的SQL语句进行方便的修改,下面的SQL语句全部都是找出主表和子表的最大单据号,然后填入Ufsystem.mdb,表名为UA_Identity相应的记录字段中。
注意在执行某个SQL时,先把它复制到记事本中,然后修改002和2013,再打开SQL查询分析器执行。
范例:将"002"替换成"001","2013"替换成"2013"
原SQL语句
update ufsystem..ua_identity
set ifatherid= (Select MAX(CAST(RIGHT(isnull(ID,0),8) AS INT))as id from UFDATA_002_2013..RDRECORD),
ichildid= (Select MAX(CAST(RIGHT(isnull(AUTOID,0),8) AS INT))as id from UFDATA_002_2013..RDRECORDS)
where (cvouchtype='rd'and cacc_id='002')
替换后
update ufsystem..ua_identity
set ifatherid= (Select MAX(CAST(RIGHT(isnull(ID,0),8) AS INT))as id from UFDATA_001_2013..RDRECORD),
ichildid= (Select MAX(CAST(RIGHT(isnull(AUTOID,0),8) AS INT))as id from UFDATA_001_2013..RDRECORDS)
where (cvouchtype='rd'and cacc_id='001')
各业务重复单号的解决方案
--1.出入库单(收发记录主子表)
update ufsystem..ua_identity
set ifatherid= (Select MAX(CAST(RIGHT(isnull(ID,0),8) AS INT))as id from UFDATA_002_2013..RDRECORD),
ichildid= (Select MAX(CAST(RIGHT(isnull(AUTOID,0),8) AS INT))as id from UFDATA_002_2013..RDRECORDS)
where (cvouchtype='rd'and cacc_id='002')
--2.采购订单PO_Pomain和PO_Podetails
update ufsystem..ua_identity
set ifatherid= (Select MAX(CAST(RIGHT(isnull(moID,0),8) AS INT))as id from UFDATA_002_2013..PO_Pomain),
ichildid= (Select MAX(CAST(RIGHT(isnull(ID,0),8) AS INT))as id from UFDATA_002_2013..PO_Podetails)
where (cvouchtype='Pomain'andi cacc_id='002')
21 委外订单
update ufsystem..ua_identity
set ifatherid= (Select MAX(CAST(RIGHT(isnull(moID,0),8) AS INT))as id from UFDATA_002_2013..OM_MOMain),
ichildid= (Select MAX(CAST(RIGHT(isnull(MODetailsID,0),8) AS INT))as id from UFDATA_002_2013..OM_MODetails)
where (cvouchtype='om_mo'and cacc_id='002')
22 客户调价单
update ufsystem..ua_identity
set ifatherid= (Select MAX(CAST(RIGHT(isnull(ID,0),8) AS INT))as id from UFDATA_002_2013.. SA_CusPriceJustMain),
ichildid= (Select MAX(CAST(RIGHT(isnull(icusjustautoid,0),8) AS INT))as id from UFDATA_002_2013.. SA_CusUPrice)
where (cvouchtype=' SA_CusPriceJustMain'and cacc_id='002')
--3.采购发票PURBILL和PurBillVouchS
update ufsystem..ua_identity
set ifatherid= (Select MAX(CAST(RIGHT(isnull(PBVID,0),8) AS INT))as id from UFDATA_002_2013..PurBillVouch),
ichildid= (Select MAX(CAST(RIGHT(isnull(ID,0),8) AS INT))as id from UFDATA_002_2013..PurBillVouchS)
where (cvouchtype='PURBILL'and cacc_id='002')
--4.采购结算单
update ufsystem..ua_identity
set ifatherid= (Select MAX(CAST(RIGHT(isnull(PSVID,0),8) AS INT))as id from UFDATA_002_2013..PurSettleVouch),
ichildid= (Select MAX(CAST(RIGHT(isnull(ID,0),8) AS INT))as id from UFDATA_002_2013..PurSettleVouchs)
where (cvouchtype='PURSTID'and cacc_id='002')
--5.采购请购单
update ufsystem..ua_identity
set ifatherid= (Select MAX(CAST(RIGHT(isnull(ID,0),8) AS INT))as id from UFDATA_002_2013..PU_AppVouch),
ichildid= (Select MAX(CAST(RIGHT(isnull(AUTOID,0),8) AS INT))as id from UFDATA_002_2013..PU_AppVouchs)
where (cvouchtype='PUAPP'and cacc_id='002')
--6.采购到货单
update ufsystem..ua_identity
set ifatherid= (Select MAX(CAST(RIGHT(isnull(ID,0),8) AS INT))as id from UFDATA_002_2013..PU_ArrivalVouch),
ichildid= (Select MAX(CAST(RIGHT(isnull(AUTOID,0),8) AS INT))as id from UFDATA_002_2013..PU_ArrivalVouchS)
where (cvouchtype='PUARRIVAL'and cacc_id='002')
--7.销售发票
update ufsystem..ua_identity
set ifatherid= (Select MAX(CAST(RIGHT(isnull(SBVID,0),8) AS INT))as id from UFDATA_002_2013..SaleBillVouch),
ichildid= (Select MAX(CAST(RIGHT(isnull(AUTOID,0),8) AS INT))as id from UFDATA_002_2013..SaleBillVouchS)
where (cvouchtype='BILLVOUCH'and cacc_id='002')
--8.销售发货单
update ufsystem..ua_identity
set ifatherid= (Select MAX(CAST(RIGHT(isnull(DLID,0),8) AS INT))as id from UFDATA_002_2013..DispatchList),
ichildid= (Select MAX(CAST(RIGHT(isnull(AUTOID,0),8) AS INT))as id from UFDATA_002_2013..DispatchListS)
where (cvouchtype='DISPATCH'and cacc_id='002')
--9.销售订单
update ufsystem..ua_identity
set ifatherid= (Select MAX(CAST(RIGHT(isnull(ID,0),8) AS INT))as id from UFDATA_002_2013..SO_SOMain),
ichildid= (Select MAX(CAST(RIGHT(isnull(AUTOID,0),8) AS INT))as id from UFDATA_002_2013..SO_SODetails)
where (cvouchtype='SOMain'and cacc_id='002')
--10.销售_委托代销结算单
update ufsystem..ua_identity
set ifatherid= (Select MAX(CAST(RIGHT(isnull(ID,0),8) AS INT))as id from UFDATA_002_2013..SA_SettleVouch),
ichildid= (Select MAX(CAST(RIGHT(isnull(AUTOID,0),8) AS INT))as id from UFDATA_002_2013..SA_SettleVouchS)
where (cvouchtype='SETTLEVOUCH'and cacc_id='002')
--11.销售_销售报价单
update ufsystem..ua_identity
set ifatherid= (Select MAX(CAST(RIGHT(isnull(ID,0),8) AS INT))as id from UFDATA_002_2013..SA_QuoMain),
ichildid= (Select MAX(CAST(RIGHT(isnull(AUTOID,0),8) AS INT))as id from UFDATA_002_2013..SA_QuoDetails)
where (cvouchtype='QUOMAIN'and cacc_id='002')
--12.销售_销售支出单
update ufsystem..ua_identity
set ifatherid= (Select MAX(CAST(RIGHT(isnull(ID,0),8) AS INT))as id from UFDATA_002_2013..SalePayVouch),
ichildid= (Select MAX(CAST(RIGHT(isnull(AUTOID,0),8) AS INT))as id from UFDATA_002_2013..SalePayVouchS)
where (cvouchtype='SALEPAY'and cacc_id='002')
--13.销售_代垫费用单(应收)
update ufsystem..ua_identity
set ifatherid= (Select MAX(CAST(RIGHT(isnull(ID,0),8) AS INT))as id from UFDATA_002_2013..ExpenseVouch),
ichildid= (Select MAX(CAST(RIGHT(isnull(AUTOID,0),8) AS INT))as id from UFDATA_002_2013..ExpenseVouchS)
where (cvouchtype='EXPENSE'and cacc_id='002')
--14.库存_盘点单
update ufsystem..ua_identity
set ifatherid= (Select MAX(CAST(RIGHT(isnull(ID,0),8) AS INT))as id from UFDATA_002_2013..CheckVouch),
ichildid= (Select MAX(CAST(RIGHT(isnull(AUTOID,0),8) AS INT))as id from UFDATA_002_2013..CheckVouchS)
where (cvouchtype='CH'and cacc_id='002')
--14.存货_调整单
update ufsystem..ua_identity
set ifatherid= (Select MAX(CAST(RIGHT(isnull(ID,0),8) AS INT))as id from UFDATA_002_2013..JustInVouch),
ichildid= (Select MAX(CAST(RIGHT(isnull(AUTOID,0),8) AS INT))as id from UFDATA_002_2013..JustInVouchS)
where (cvouchtype='JU'and cacc_id='002')
--15.库存_限额领料单
update ufsystem..ua_identity
set ifatherid= (Select MAX(CAST(RIGHT(isnull(ID,0),8) AS INT))as id from UFDATA_002_2013..MatchVouch),
ichildid= (Select MAX(CAST(RIGHT(isnull(AUTOID,0),8) AS INT))as id from UFDATA_002_2013..MatchVouchS)
where (cvouchtype='MA'and cacc_id='002')
--16.库存_库存调拨单
update ufsystem..ua_identity
set ifatherid= (Select MAX(CAST(RIGHT(isnull(ID,0),8) AS INT))as id from UFDATA_002_2013..TransVouch),
ichildid= (Select MAX(CAST(RIGHT(isnull(AUTOID,0),8) AS INT))as id from UFDATA_002_2013..TransVouchS)
where (cvouchtype='TR'and cacc_id='002')
--16.采购_销售现结线索号,本字段为"XJ"加流水号,所以要去除2位字符,但是反向操作"弃结"系统不回写减少ua_identity,下次增加直接加1。
update ufsystem..ua_identity
set ifatherid= (SELECT max(CAST(RIGHT(isnull(STUFF(cCancelNo,1,2, ''),0),8) as int))as id from UFDATA_002_2013..Ap_CloseBill),
ichildid= (SELECT max(CAST(RIGHT(isnull(STUFF(cCancelNo,1,2, ''),0),8) as int))as id from UFDATA_002_2013..Ap_CloseBill)
where (cvouchtype='XJ'and cacc_id='002')
--16.收款单
update ufsystem..ua_identity
set ifatherid= (Select MAX(CAST(RIGHT(isnull(iID,0),8) AS INT))as id from UFDATA_002_2013..Ap_CloseBill),
ichildid= (Select MAX(CAST(RIGHT(isnull(ID,0),8) AS INT))as id from UFDATA_002_2013..Ap_CloseBillS)
where (cvouchtype='SK'and cacc_id='002')
--16.生产订单
update ufsystem..ua_identity
set ifatherid= (Select MAX(CAST(RIGHT(isnull(moID,0),8) AS INT))as id from UFDATA_002_2013..mom_order),
ichildidi= (Select MAX(CAST(RIGHT(isnull(ID,0),8) AS INT))as id from UFDATA_002_2013..Ap_CloseBillS)
where (cvouchtype='SK'and cacc_id='002')
--16.委外核销单
update ufsystem..ua_identity
set ifatherid= (Select MAX(CAST(RIGHT(isnull(msID,0),8) AS INT))as id from UFDATA_002_2013..OM_MatSettleVouch),
ichildidi= (Select MAX(CAST(RIGHT(isnull(MSDetailsID,0),8) AS INT))as id from UFDATA_002_2013..OM_MatSettleVouchs)
where (cvouchtype='om_ms'and cacc_id='002')
附录:业务所对应的表格名:
对应单据名称 |
cvouchtype |
data库中相关联主子表 |
相关联主子表ID字段标识 |
采购请购单 |
PuApp |
PU_AppVouch/s |
ID/Autoid |
采购订单 |
Pomain |
PO_Pomain/PO_Podetails |
POID/ID |
采购到货单 |
PuArrival |
PU_ArrivalVouch/s |
ID/autoid |
采购入库单 |
rd |
Rdrecord/s |
ID/Autoid |
采购发票 |
Purbill |
PurBillVouch/s |
PBVID/ID |
销售报价单 |
QuoMain |
SA_QuoMain/ SA_QuoDetails |
ID/Autoid |
销售订单 |
Somain |
SO_SOMain/SO_SODetails |
ID/Autoid |
销售发(退)货单 |
Dispatch |
DispatchList/s |
DLID/Autoid |
销售发票 |
Billvouch |
SaleBillVouch/s |
SBVID/Autoid |
委托代销发货(退)单 |
Dispatch |
DispatchList/s |
DLID/Autoid |
委托代销结算单 |
SettleVouch |
SA_SettleVouch/s |
ID/Autoid |
委托代销调整单 |
Dispatch |
DispatchList/s |
DLID/Autoid |
销售调拨单(红、蓝) |
Billvouch |
SaleBillVouch/s |
SBVID/Autoid |
销售零售日报(红、蓝) |
Billvouch |
SaleBillVouch/s |
SBVID/Autoid |
代垫费用单 |
Expense |
ExpenseVouch/s |
ID/Autoid |
销售支出单 |
Salepay |
SalePayVouch/s |
ID/autoid |
委外发票 |
Wwpurbill |
OM_PurBillVouch/s |
PBVID/ID |
产成品入库单 |
rd |
Rdrecord/s |
ID/Autoid |
其他入库单 |
rd |
Rdrecord/s |
ID/Autoid |
材料出库单 |
rd |
Rdrecord/s |
ID/Autoid |
其他出库单 |
rd |
Rdrecord/s |
ID/Autoid |
调拨单 |
tr |
TransVouch/s |
ID/Autoid |
盘点单 |
ch |
CheckVouch/s |
ID/autoid |
限额领料单 |
ma |
MatchVouch/s |
ID/autoid |
不合格品记录单 |
sc |
ScrapVouch/ScrapVouchs |
ID/Autoid |
不合格品处理单 |
sc |
ScrapVouch/ScrapVouchs |
ID/Autoid |
货位调整单 |
ad |
AdjustPVouch/s |
ID/Autoid |
应收应付单 |
sk |
ap_closebill/s |
IID/ID |
客户调价单 |
SA_CusPriceJustMain |
Sa_cuspricejustmain/sa_cuspricejustdetail |
Id/autoid |
委外订单 |
om_mo |
Om_momain/om_modetails |
Moid/MODetailsID |
委外用料单子表 |
OM_Materials |
OM_MOMaterials |
MOMaterialsID |
领料申请单 | mv | MaterialAppVouch/MaterialAppVouchs | ID/AUTOID |
备注
1
强制类型转换
cast(column_name as varchar2(20))之类的
2
Isnull 函数主要作用是将为空的值替换为指定值,如果不为空返回检查类型的返回值,isnull的语法:
Isnull (check_expression , replacement_value) |
参数check_expression ,是待检查是否为空的表达式,参数replacement_value是带替换的指定值,如果参数check_expression为空则参数replacement_value进行填充,如果check_expression不为空,则返回表达式相应的返回值类型,需要注意到是参数check_expression和参数replacement_value的类型需要保持一致,否则要进行相应的转换
3
select right('1234',2)
结果:34
反回字符右边的指定长度的字符
用友业务最大单号的修复相关推荐
- 【C#】编号生成器(定义单号规则、固定字符、流水号、业务单号)
系列文章 [C#]编号生成器(定义单号规则.固定字符.流水号.业务单号) 本文链接:https://blog.csdn.net/youcheng_ge/article/details/12912978 ...
- 业务单号自动增长的处理办法
问题:在实际业务处理中有些单号需要自动增长,但又不能用自增列代替 eg: P031106001 -- 第一位P表示采购单,031106表示日期,后三位是流水号. /* 1:创建测试用 ...
- 顺丰快递单号的规律_顺丰快递单号查询跟踪(单号码查询)
顺丰快递单号查询入口 顺丰速运(集团)有限公司(以下简称顺丰)是一家成立于1993年3月的港资速运企业,主要经营国际.国内快递及报关.报检.保险等业务,为广大客户提供快速.安全.优质的服务.长期以来, ...
- B端——复杂业务表单设计
作者:nick (转载已取得作者授权) 一.前言 表单是B端产品中最常用的信息录入工具,但由于B端产品业务的复杂性,表单往往呈现出字段多.类型杂等特点,增大了它的设计难度:一个糟糕的表单,会极大影响用 ...
- 怎样快速查询单号物流信息,筛选出未签收的单号
查询未签收的快递单号详细物流信息有什么简单的方法吗?对快递业务刚接触的来说用"快递批量查询高手"软件最适合不过了.那么如何操作呢?一起来看看吧. 先在电脑上下载快递批量查询高手软件 ...
- PHP快递查询接口api和快递单号智能判断PHP代码
如果电商企业想将业务提升到一个新的水平,则应考虑接入第三方快递查询API接口.快递查询API接口提供了很多好处,并且可以为电商企业.微商带来强大的竞争优势.因为相对于独立一家家对接各个快递公司的服务接 ...
- (电商API文档)更新电子面单号
想要及时更新电子面单号对应的面单信息,首先要对接好电商平台的电子面单接口,才能将平台变动后的收件信息及时更新到电子面单上,没有对接电商平台的ERP.WMS系统可以通过点三API接口来获取打印和更新电子 ...
- Mysql 利用存储过程 实现单据号码(单号)生成器(万能版)
需求: 1.在项目开发过程中有一些业务单据我们希望有一个单号,如采购单.请假单等等. 2.由于上述每个业务单据都在不同的表里,并且由于项目开发不规范(字段命名不统一,有的把单号叫做Code,有的叫做N ...
- 常用查快递单号,快速查询追踪物流
快递的寄送业务现在是越来越方便了,但是查询快递单号物流信息也是大家所烦恼的,下面就为大家分享用快递批量查询高手快速查询的方法.希望以后可以用到. 准备工具: 快递批量查询高手 多个快递单号 浏览查询效 ...
最新文章
- 优化系统后VS启动不了问题的一种解决方案
- ​计算产业如何加速突破?鲲鹏开发者技术沙龙带来新答案
- Math类(工具类)
- 基于Hi3559A ARM64位嵌入式平台的OpenCV2.4.9+ffmpeg2.0.7移植
- Docker Review - dockerfile 实战_给基础镜像增加功能
- Maven——Maven概述
- springboot----shiro集成
- android 队列上传图片,话说android端七牛图片上传
- 华为m6升级鸿蒙,华为鸿蒙系统再传喜讯!14款华为旧旗舰喜提新系统:大幅度换血...
- C# Winform获取路径
- 设置eclipse主题风格和取消黑色主题(详细)
- JavaScript高级程序设计(第四版) 第二章 HTML中的javascript
- ASP.net校友录毕业设计(源代码+论文+开题报告+答辩PPT)ASP.NET小型证券术语解释及翻译系统的设计与开发(源代码+论文)
- 外卖行业现状分析_2020年中国外卖行业市场现状与发展前景分析
- 推荐两个软件下载网站:多特和绿盟
- buu(前三页第二弹) RSA习题与相关知识总结
- C++版本OpenCv教程(十一)多通道分离与合并
- vLang-基于模型的微信开发框架,使用Python
- 一零四一、海康威视希捷紫盘查询序列号
- 【案例分享】项目施工进度报告 - 树形报表