金蝶专业版12.3帐套迁移至旗舰版2.0错误
金蝶云社区-张贤云
张贤云
0人赞赏了该文章 811次浏览 未经作者许可,禁止转载编辑于2016年05月04日 22:23:50

将专业版12.3帐套迁移到旗舰版2.0不成功,报如下错误提示:
"语句已终止。
不能将值 NULL 插入列 'FSRCFieldName',表 'KISTOAIS20160320212208.dbo.ICClassTableInfo';列不允许有空值。INSERT 失败。--2012-2-27-begin-BT638870-
--KIS采购发票(专用)自定义字段升级为K3采购增值税发票自定义字段
--销售报价单自定义字段迁移BOS处理
DECLARE @HeadTempTable TABLE
(
FIndex INT IDENTITY(1, 1) ,
FKey NVARCHAR(50)
)
DECLARE @EntryTempTable TABLE
(
FIndex INT IDENTITY(1, 1) ,
FKey NVARCHAR(50)
)
DECLARE @MaxListIndex INT
DECLARE @MaxHeadTabIndex INT
DECLARE @MaxEntryTabIndex INT
--单据头自定义字段升级
IF EXISTS ( SELECT 11
FROM KIS_ICTemplate t1
WHERE t1.FID = 'I02'
AND t1.FFieldName LIKE 'FHeadSelf%' )
BEGIN
--删除原有自定义字段,支持多次升级
DELETE FROM ICClassTableInfo
WHERE FClassTypeID = 1000004
AND FUserDefine = 1
AND FPage = 1 --单据头用户自定义字段
AND FFieldName <> 'FSysStatus'
INSERT INTO @HeadTempTable
( FKey
)
SELECT FFieldName
FROM KIS_ICTemplate
WHERE FID = 'I02'
AND FFieldName LIKE 'FHeadSelf%'
AND FDefaultCtl = 0
AND FNeedSave = 1 --只同步自定义且保存字段
SELECT @MaxListIndex = MAX(FListIndex)
FROM ICClassTableInfo
WHERE FClassTypeID = 1000004
SELECT @MaxHeadTabIndex = MAX(FTabIndex)
FROM ICClassTableInfo
WHERE FClassTypeID = 1000004
AND FPage = 1 --去单据头最大序号
INSERT INTO ICClassTableInfo
( FClassTypeID ,
FPage ,
FCaption_CHS ,
FCaption_CHT ,
FCaption_EN ,
FKey ,
FFieldName ,
FTableName ,
FTableNameAs ,
FListIndex ,
FListClassName ,
FVisible ,
FEnable ,
FNeedSave ,
FMustInput ,
FCtlType ,
FProperty ,
FLookUpType ,
FLookUpClassID ,
FLookUpList ,
FSRCFieldName ,
FSRCTableName ,
FSRCTableNameAs ,
FDSPFieldName ,
FFNDFieldName ,
FValueLocation ,
FFilter ,
FFilterGroup ,
FValueType ,
FDspColType ,
FEditlen ,
FValuePrecision ,
FSaveRule ,
FDefValue ,
FAction ,
FUserDefine ,
FNote ,
FKeyWord ,
FLeft ,
FTop ,
FHeight ,
FWidth ,
FCondition ,
FTabIndex ,
FLock ,
FSum ,
FPrec ,
FScale ,
FLayer ,
FLoadAction ,
FUnControl ,
FFont ,
FSourceType ,
FSubKey ,
FParentKey ,
FConditionExt ,
FFrameBorder ,
FFrameBorderColor ,
FLabelWidth ,
FLabelColor ,
FTextColor ,
FIsF7 ,
FContainer ,
FStyle
)
SELECT 1000004 ,
1 ,
t1.FCaption ,
t1.FCaption_CHT ,
t1.FCaption_EN ,
t1.FFieldName ,
t1.FFieldName ,
'ICPurchase' ,
'' ,
@MaxListIndex + t3.FIndex ,
CASE WHEN t1.FCtlType = 2
OR t1.FCtlType = 5 THEN 2
ELSE 0
END ,
12 + CASE WHEN t1.FVisForBillType >= 2 THEN 1
ELSE 0
END + CASE WHEN t2.FVisible > 0 THEN 2
ELSE 0
END
+ CASE WHEN t1.FVisForBillType & 32 = 32 THEN 2048
ELSE 0
END + CASE WHEN t1.FVisForBillType & 16 = 16 THEN 64
ELSE 0
END
+ CASE WHEN t1.FVisForBillType & 8 = 8 THEN 128
ELSE 0
END + CASE WHEN t1.FVisForBillType & 4 = 4 THEN 32
ELSE 0
END
+ CASE WHEN t1.FVisForBillType & 2 = 2 THEN 16
ELSE 0
END + CASE WHEN t2.FVisible & 2 = 2 THEN 1024
ELSE 0
END + CASE WHEN t2.FVisForQuest = 1 THEN 256
ELSE 0
END
+ CASE WHEN t2.FVisForOrder = 1 THEN 512
ELSE 0
END ,
0 ,
t1.FNeedSave ,
t1.FMustInput ,
CASE t1.FCtlType
WHEN 30 THEN 1
WHEN 31 THEN 2
WHEN 3 THEN 2
WHEN 11 THEN 2
WHEN 12 THEN 2
WHEN 32 THEN 0
WHEN 33 THEN 3
WHEN 2 THEN 1
WHEN 1 THEN 0
WHEN 22 THEN 3
END ,
'' ,
CASE t1.FCtlType
WHEN 14 THEN 4
WHEN 2
THEN CASE WHEN t1.FLookUpCls > 99999999 THEN 3
ELSE CASE t1.FLookUpCls
WHEN 18 THEN 8
WHEN 13 THEN 4
WHEN 12 THEN 5
WHEN -8 THEN 7
WHEN -15 THEN 14
ELSE CASE WHEN EXISTS ( SELECT
1
FROM
t_ItemClass
WHERE
FItemClassID = t1.FLookUpCls )
THEN 1
WHEN EXISTS ( SELECT
1
FROM
t_SubMesType
WHERE
FTypeID = t1.FLookUpCls )
THEN 2
ELSE 0
END
END
END
ELSE 0
END ,
t1.FLookUpCls ,
CASE ISNULL(t1.FMinValue, '')
WHEN '' THEN CASE ISNULL(t1.FMaxValue, '')
WHEN '' THEN ''
ELSE 'Min= | Max=' + t1.FMaxValue
END
ELSE CASE ISNULL(t1.FMaxValue, '')
WHEN '' THEN 'Min=' + t1.FMinValue
ELSE 'Min=' + t1.FMinValue + ' | Max='
+ t1.FMaxValue
END
END ,
isnull(CASE WHEN t2.FTableAlias = 'u1'
OR t2.FTableAlias = 'v1' THEN ''
ELSE ( SELECT TOP 1
FFieldName11
FROM ICTableRelation
WHERE FTypeID = 60
AND FTableNameAlias11 = t2.FTableAlias
)
END,'') ,
CASE WHEN t2.FTableAlias = 'u1'
OR t2.FTableAlias = 'v1' THEN ''
ELSE t2.FTableName
END ,
CASE WHEN t2.FTableAlias = 'u1'
OR t2.FTableAlias = 'v1' THEN ''
ELSE t2.FTableAlias
END ,
CASE WHEN t2.FTableAlias = 'u1'
OR t2.FTableAlias = 'v1' THEN ''
ELSE t2.FName
END ,
CASE t1.FCtlType
WHEN 2 THEN 'FNumber'
ELSE ''
END ,
CASE t1.FSaveValue
WHEN 0 THEN 3
WHEN 1 THEN 1
WHEN 2 THEN 2
END ,
t1.FFilter ,
'' ,
CASE t1.FValueType
WHEN 0 THEN 231
WHEN 1 THEN CASE WHEN t1.FCtlType = 2
AND t1.FSaveValue = 1 THEN 56
ELSE 106
END
WHEN 2 THEN 61
WHEN 3 THEN 56
END ,
CASE t1.FCtlType
WHEN 30 THEN 500
WHEN 31 THEN 9
WHEN 3 THEN 2
WHEN 11 THEN 6
WHEN 12 THEN 4
WHEN 32 THEN 0
WHEN 33 THEN 10
WHEN 2 THEN 500
WHEN 1 THEN 0
WHEN 22 THEN 500
END ,
CASE t1.FValueType
WHEN 0 THEN 510
WHEN 1 THEN CASE t1.FCtlType
WHEN 2 THEN 510
ELSE 13
END
WHEN 2 THEN 8
WHEN 3 THEN CASE t1.FCtlType
WHEN 2 THEN 510
WHEN 22 THEN 255
ELSE 10
END
END ,
CASE t1.FValueType
WHEN 0 THEN 510
WHEN 1 THEN CASE t1.FCtlType
WHEN 2 THEN 510
ELSE 13
END
WHEN 2 THEN 8
WHEN 3 THEN CASE t1.FCtlType
WHEN 2 THEN 510
ELSE 4
END
END ,
'' ,
CASE WHEN t1.FDefaultValue = '[CurrDate]'
THEN 'CURDATE'
WHEN t1.FDefaultValue = '[CurrTime]' THEN ''
ELSE t1.FDefaultValue
END ,
'' ,
1 ,
'' ,
CASE t1.FCtlType
WHEN 3 THEN 'QTY'
WHEN 11 THEN 'AMOUNT'
WHEN 12 THEN 'PRICE'
ELSE ''
END ,
t1.FLeft ,
t1.FTop ,
t1.FHeight ,
t1.FWidth ,
CASE t1.FCtlType
WHEN 30 THEN '0,13'
WHEN 31 THEN '1,13'
WHEN 32 THEN '2,13'
WHEN 33 THEN '1,13'
WHEN 3 THEN '1,13'
WHEN 11 THEN '1,13'
WHEN 12 THEN '1,13'
WHEN 2 THEN '0'
WHEN 1 THEN '2,13'
WHEN 22 THEN '9,14,15'
END ,
@MaxHeadTabIndex + t3.FIndex ,
CASE WHEN t1.FEnable & 32 = 32 THEN 0
ELSE 1
END + CASE WHEN t1.FEnable & 16 = 16 THEN 0
ELSE 2
END + CASE WHEN t1.FEnable & 4 = 4 THEN 0
ELSE 4
END ,
0 ,
CASE t1.FValueType
WHEN 1 THEN 13
ELSE 0
END ,
CASE t1.FValueType
WHEN 1 THEN t1.FFormat
ELSE 0
END ,
0 ,
'' ,
CASE t1.FAllowCopy
WHEN 1 THEN 16
ELSE 0
END ,
'' ,
0 ,
'' ,
'' ,
0 ,
2 ,
0 ,
1000 ,
0 ,
0 ,
0 ,
'' ,
0
FROM KIS_ICTemplate t1
INNER JOIN KIS_ICChatBillTitle t2 ON t1.FFieldName = t2.FColName
INNER JOIN @HeadTempTable t3 ON t1.FFieldName = t3.FKey
WHERE t1.FID = 'I02'
AND t2.FTypeID = 84
END
--单据体自定义字段升级
IF EXISTS ( SELECT 11
FROM KIS_ICTemplateEntry t1
WHERE t1.FID = 'I02'
AND t1.FFieldName LIKE 'FEntrySelf%' )
BEGIN
--删除原有自定义字段,支持多次升级
DELETE FROM ICClassTableInfo
WHERE FClassTypeID = 1000004
AND FUserDefine = 1
AND FPage = 2 --第一个单据体用户自定义字段
INSERT INTO @EntryTempTable
( FKey
)
SELECT FFieldName
FROM KIS_ICTemplateEntry
WHERE FID = 'I02'
AND FFieldName LIKE 'FEntrySelf%'
AND FDefaultCtl = 0
AND FNeedSave = 1 --只同步自定义且保存字段
SELECT @MaxListIndex = MAX(FListIndex)
FROM ICClassTableInfo
WHERE FClassTypeID = 1000004
SELECT @MaxEntryTabIndex = MAX(FTabIndex)
FROM ICClassTableInfo
WHERE FClassTypeID = 1000004
AND FPage = 2
INSERT INTO ICClassTableInfo
( FClassTypeID ,
FPage ,
FCaption_CHS ,
FCaption_CHT ,
FCaption_EN ,
FKey ,
FFieldName ,
FTableName ,
FTableNameAs ,
FListIndex ,
FListClassName ,
FVisible ,
FEnable ,
FNeedSave ,
FMustInput ,
FCtlType ,
FProperty ,
FLookUpType ,
FLookUpClassID ,
FLookUpList ,
FSRCFieldName ,
FSRCTableName ,
FSRCTableNameAs ,
FDSPFieldName ,
FFNDFieldName ,
FValueLocation ,
FFilter ,
FFilterGroup ,
FValueType ,
FDspColType ,
FEditlen ,
FValuePrecision ,
FSaveRule ,
FDefValue ,
FAction ,
FUserDefine ,
FNote ,
FKeyWord ,
FLeft ,
FTop ,
FHeight ,
FWidth ,
FCondition ,
FTabIndex ,
FLock ,
FSum ,
FPrec ,
FScale ,
FLayer ,
FLoadAction ,
FUnControl ,
FFont ,
FSourceType ,
FSubKey ,
FParentKey ,
FConditionExt ,
FFrameBorder ,
FFrameBorderColor ,
FLabelWidth ,
FLabelColor ,
FTextColor ,
FIsF7 ,
FContainer ,
FStyle
)
SELECT 1000004 ,
2 ,
t1.FHeadCaption ,
t1.FHeadCaption_CHT ,
t1.FHeadCaption_EN ,
t1.FFieldName ,
t1.FFieldName ,
'ICPurchaseEntry' ,
'' ,
@MaxListIndex + t3.FIndex ,
CASE WHEN t1.FCtlType = 2
OR t1.FCtlType = 5 THEN 2
ELSE 0
END ,
12 + CASE WHEN t1.FVisForBillType >= 2 THEN 1
ELSE 0
END + CASE WHEN t2.FVisible > 0 THEN 2
ELSE 0
END
+ CASE WHEN t1.FVisForBillType & 32 = 32 THEN 2048
ELSE 0
END + CASE WHEN t1.FVisForBillType & 16 = 16 THEN 64
ELSE 0
END
+ CASE WHEN t1.FVisForBillType & 8 = 8 THEN 128
ELSE 0
END + CASE WHEN t1.FVisForBillType & 4 = 4 THEN 32
ELSE 0
END
+ CASE WHEN t1.FVisForBillType & 2 = 2 THEN 16
ELSE 0
END + CASE WHEN t2.FVisible & 2 = 2 THEN 1024
ELSE 0
END + CASE WHEN t2.FVisForQuest = 1 THEN 256
ELSE 0
END
+ CASE WHEN t2.FVisForOrder = 1 THEN 512
ELSE 0
END ,
0 ,
t1.FNeedSave ,
t1.FMustInput ,
CASE t1.FCtlType
WHEN 30 THEN 1
WHEN 31 THEN 2
WHEN 3 THEN 2
WHEN 11 THEN 2
WHEN 12 THEN 2
WHEN 32 THEN 0
WHEN 33 THEN 3
WHEN 2 THEN 1
WHEN 1 THEN 0
WHEN 22 THEN 3
END ,
'' ,
CASE t1.FCtlType
WHEN 14 THEN 4
WHEN 2
THEN CASE WHEN t1.FLookUpCls > 99999999 THEN 3
ELSE CASE t1.FLookUpCls
WHEN 18 THEN 8
WHEN 13 THEN 4
WHEN 12 THEN 5
WHEN -8 THEN 7
WHEN -15 THEN 14
ELSE CASE WHEN EXISTS ( SELECT
1
FROM
t_ItemClass
WHERE
FItemClassID = t1.FLookUpCls )
THEN 1
WHEN EXISTS ( SELECT
1
FROM
t_SubMesType
WHERE
FTypeID = t1.FLookUpCls )
THEN 2
ELSE 0
END
END
END
ELSE 0
END ,
t1.FLookUpCls ,
CASE ISNULL(t1.FMinValue, '')
WHEN '' THEN CASE ISNULL(t1.FMaxValue, '')
WHEN '' THEN ''
ELSE 'Min= | Max=' + t1.FMaxValue
END
ELSE CASE ISNULL(t1.FMaxValue, '')
WHEN '' THEN 'Min=' + t1.FMinValue
ELSE 'Min=' + t1.FMinValue + ' | Max='
+ t1.FMaxValue
END
END ,
CASE WHEN t2.FTableAlias = 'u1'
OR t2.FTableAlias = 'v1' THEN ''
ELSE ( SELECT TOP 1
FFieldName11
FROM ICTableRelation
WHERE FTypeID = 60
AND FTableNameAlias11 = t2.FTableAlias
)
END ,
CASE WHEN t2.FTableAlias = 'u1'
OR t2.FTableAlias = 'v1' THEN ''
ELSE t2.FTableName
END ,
CASE WHEN t2.FTableAlias = 'u1'
OR t2.FTableAlias = 'v1' THEN ''
ELSE t2.FTableAlias
END ,
CASE WHEN t2.FTableAlias = 'u1'
OR t2.FTableAlias = 'v1' THEN ''
ELSE t2.FName
END ,
CASE t1.FCtlType
WHEN 2 THEN 'FNumber'
ELSE ''
END ,
CASE t1.FSaveValue
WHEN 0 THEN 3
WHEN 1 THEN 1
WHEN 2 THEN 2
END ,
t1.FFilter ,
'' ,
CASE t1.FValueType
WHEN 0 THEN 231
WHEN 1 THEN CASE WHEN t1.FCtlType = 2
AND t1.FSaveValue = 1 THEN 56
ELSE 106
END
WHEN 2 THEN 61
WHEN 3 THEN 56
END ,
CASE t1.FCtlType
WHEN 30 THEN 500
WHEN 31 THEN 9
WHEN 3 THEN 2
WHEN 11 THEN 6
WHEN 12 THEN 4
WHEN 32 THEN 0
WHEN 33 THEN 10
WHEN 2 THEN 500
WHEN 1 THEN 0
WHEN 22 THEN 500
END ,
CASE t1.FValueType
WHEN 0 THEN 510
WHEN 1 THEN CASE t1.FCtlType
WHEN 2 THEN 510
ELSE 13
END
WHEN 2 THEN 8
WHEN 3 THEN CASE t1.FCtlType
WHEN 2 THEN 510
WHEN 22 THEN 255
ELSE 10
END
END ,
CASE t1.FValueType
WHEN 0 THEN 510
WHEN 1 THEN CASE t1.FCtlType
WHEN 2 THEN 510
ELSE 13
END
WHEN 2 THEN 8
WHEN 3 THEN CASE t1.FCtlType
WHEN 2 THEN 510
ELSE 4
END
END ,
'' ,
CASE WHEN t1.FDefaultValue = '[CurrDate]'
THEN 'CURDATE'
WHEN t1.FDefaultValue = '[CurrTime]' THEN ''
ELSE t1.FDefaultValue
END ,
'' ,
1 ,
'' ,
CASE t1.FCtlType
WHEN 3 THEN 'QTY'
WHEN 11 THEN 'AMOUNT'
WHEN 12 THEN 'PRICE'
ELSE ''
END ,
0 ,
0 ,
350 ,
t1.FWidth ,
CASE t1.FCtlType
WHEN 30 THEN '0,13'
WHEN 31 THEN '1,13'
WHEN 32 THEN '2,13'
WHEN 33 THEN '1,13'
WHEN 3 THEN '1,13'
WHEN 11 THEN '1,13'
WHEN 12 THEN '1,13'
WHEN 2 THEN '0'
WHEN 1 THEN '2,13'
WHEN 22 THEN '9,14,15'
END ,
@MaxEntryTabIndex + t3.FIndex ,
CASE WHEN t1.FEnable & 32 = 32 THEN 0
ELSE 1
END + CASE WHEN t1.FEnable & 16 = 16 THEN 0
ELSE 2
END + CASE WHEN t1.FEnable & 4 = 4 THEN 0
ELSE 4
END ,
0 ,
CASE t1.FValueType
WHEN 1 THEN 13
ELSE 0
END ,
CASE t1.FValueType
WHEN 1 THEN t1.FFormat
ELSE 0
END ,
0 ,
'' ,
CASE t1.FAllowCopy
WHEN 1 THEN 16
ELSE 0
END ,
'' ,
0 ,
'' ,
'' ,
0 ,
2 ,
0 ,
1000 ,
0 ,
0 ,
0 ,
'' ,
0
FROM KIS_ICTemplateEntry t1
INNER JOIN KIS_ICChatBillTitle t2 ON t1.FFieldName = t2.FColName
INNER JOIN @EntryTempTable t3 ON t1.FFieldName = t3.FKey
WHERE t1.FID = 'I02'
AND t2.FTypeID = 84

恳请有各位高手帮忙,联系电话13008383026
AND t1.FFieldName LIKE 'FEntrySelf%'
END
"