金蝶K3 库存收发汇总
-- 先把代码传上来 再慢慢写思路和标记
DECLARE @DATESTAR datetime
DECLARE @DATEEND datetime
DECLARE @DATEBill datetime
----##### 定义开始时间@DATESTAR 结束时间 @DATEEND,期间指定时间 @DATEBill
DECLARE @FYP INT
DECLARE @FYear INT
DECLARE @FMonth INT
----#### 定义年份、月份、期间
DECLARE @StockID INT
DECLARE @StockID2 INT
DECLARE @StockID3 INT
-- ## 定义 仓库 ,为整过程序制定对应要的 仓库
---- 18455 原料仓 18065 材料仓 18497 丝线仓
Select @DATESTAR='2021-06-15' , @DATEEND='2021-06-30' ,
@StockID=18455 , @StockID2=18497 -- ,@StockID3=18065
-------###### 为下列的查询时间 和指定仓库赋值
IF (SELECT DATEDIFF(DAY, @DATESTAR, @DATEEND))<0
BEGIN
SELECT @DATEBill=@DATEEND , @DATEEND=@DATESTAR
SELECT @DATESTAR=@DATEBill
END
-------###### 如果输入 的起始时间 大于截止时间 ,将两个时间互换。
SELECT @FYP=max(Fyear*12+Fperiod) FROM ICBal
-------###### 获取目前K3系统 最新账期
SELECT @FYear=@FYP/12, @FMonth=@FYP%12
-------###### 通过 最新账期 获取 具体的 年份 和月份 。
SELECT @DATESTAR=(CASE WHEN DATEDIFF(DAY, @DATESTAR, CONVERT(datetime ,CONVERT(char(4),@FYear)+'-'+CONVERT(char(2),@FMonth)+'-01'))>=-1*(DAY(@DATESTAR)) THEN @DATESTAR
ELSE CONVERT(datetime ,CONVERT(char(4),@FYear)+'-'+CONVERT(char(2),@FMonth)+'-01') END)
---------###### 将起始日期 与 当前账期对比,如果大于当前账期,则用当前账期期初,否则将 起始日期设置为起始月份 的1号
SELECT @FYear=YEAR(@DATESTAR) , @FMonth=MONTH(@DATESTAR)
SELECT @DATEBill=CONVERT(datetime ,CONVERT(char(4),@FYear)+'-'+CONVERT(char(2),@FMonth)+'-01')
-------###### 将指定日期 设置 为 起始时间 当月的1号( 屏蔽上句就能获取指定日期数据,不屏-------###### 蔽就自动已当月1号为起点)
-------###### “结账期初”---“起始时间当月1号”-----“起始时间”--------“截止时间”
-------######
-----####################################################################-------------########### 系统查询期间内出现的物料及仓库 #######################---------------
-----##################################################################-----------
-----#############################################################------------
SELECT Pro1.FItemID , Pro1.FStockID
INTO #TPro1 -----### 获取 查询期间 当月 1号 至 截止时间 所有单据相关联的物料、仓库
FROM (
SELECT FItemID , FStockID
FROM ICinvBal
WHERE FYear=@FYear AND FPeriod=@FMonth AND FStockID IN (@StockID,@StockID2)
UNION ALL
SELECT b2.FItemID , b2.FDCStockID
FROM ICStockBill AS a1
LEFT OUTER JOIN ICStockBillEntry AS b2
ON a1.FInterID=b2.FInterID
WHERE a1.FDate BETWEEN @DATEBill AND @DATEEND
AND a1.FStatus>0
AND a1.FTranType IN (1,2,5,6,10,40,41) -- 入库单 单据类型
AND b2.FDCStockID IN (@StockID,@StockID2)
UNION ALL
SELECT b2.FItemID , b2.FDCStockID
FROM ICStockBill AS a1
LEFT OUTER JOIN ICStockBillEntry AS b2
ON a1.FInterID=b2.FInterID
WHERE a1.FDate BETWEEN @DATEBill AND @DATEEND
AND a1.FStatus>0
AND a1.FTranType IN (21,26,29,28,43) -- 出库单 单据类型
AND b2.FDCStockID IN (@StockID,@StockID2)
UNION ALL
SELECT b2.FItemID , b2.FSCStockID
FROM ICStockBill AS a1
LEFT OUTER JOIN ICStockBillEntry AS b2
ON a1.FInterID=b2.FInterID
WHERE a1.FDate BETWEEN @DATEBill AND @DATEEND
AND a1.FStatus>0
AND a1.FTranType IN (24,41) -- 出库单 单据类型
AND b2.FSCStockID IN (@StockID,@StockID2)
) AS Pro1 GROUP BY Pro1.FItemID ,Pro1.FStockID
-----####################################################################---------
-----############# 系统期初数量 、金额 ############################---------------------------------######################################---------------
-----#####################################################---------------
SELECT FYear , FPeriod , FItemID , FStockID , SUM(FBegQty) AS 'FBegQty' , SUM(FBegBal) AS 'FBegBal' --,FBatchNo , FAuxPropID , FStockGroupID
INTO #TICBeBal ----### 获取 当前 期间 期初余额,统计各仓库各物料存货及金额 明细
FROM ICinvBal
WHERE FYear=@FYear AND FPeriod=@FMonth
AND FStockID IN (@StockID,@StockID2)
GROUP BY FYear , FPeriod , FItemID ,FStockID
-----###############################################################------------
-----######## 系统期初时间 至 查询起始时间 之间的数量 金额 ###########---------------
-----#########################################################---------------
-----###############################################################---------------
SELECT FQC2.FItemID , FQC2.FDCStockID ,SUM(FQC2.InFQty) AS 'FInSumQty' ,SUM(FQC2.OutFQty) AS 'FOutSumQty' ,
SUM(FQC2.InFAmount) AS 'InFAmount' , SUM(FQC2.OutFAmount) AS 'OutFAmount'
INTO #TIOBeBal -- 查询 “当月1号” 至“指定时间” 的出入库 数量 和金额 明细。
FROM (
SELECT a1.FTranType , a1.FDate , a1.FBillNo ,a1.FDeptID ,b2.FItemID , b2.FAuxPropID , b2.FBatchNo , b2.FDCStockID ,
b2.FQty AS 'InFQty',0 AS 'OutFQty' ,b2.FAmount AS 'InFAmount' , 0 AS 'OutFAmount'
FROM ICStockBill AS a1
LEFT OUTER JOIN ICStockBillEntry AS b2
ON a1.FInterID=b2.FInterID
WHERE a1.FDate>=@DATEBill AND a1.FDate<@DATESTAR
AND a1.FStatus>0
AND a1.FTranType IN (1,2,5,6,10,40,41) -- 入库单 单据类型
AND b2.FDCStockID IN (@StockID,@StockID2)
UNION ALL
SELECT a1.FTranType , a1.FDate , a1.FBillNo ,a1.FDeptID ,b2.FItemID , b2.FAuxPropID , b2.FBatchNo , b2.FDCStockID ,
0 , b2.FQty*-1 ,0 AS 'InFAmount' , b2.FAmount*-1 AS 'OutFAmount'
FROM ICStockBill AS a1
LEFT OUTER JOIN ICStockBillEntry AS b2
ON a1.FInterID=b2.FInterID
WHERE a1.FDate>=@DATEBill AND a1.FDate<@DATESTAR
AND a1.FStatus>0
AND a1.FTranType IN (21,26,29,28,43) -- 出库单 单据类型
AND b2.FDCStockID IN (@StockID,@StockID2)
UNION ALL
SELECT a1.FTranType , a1.FDate , a1.FBillNo ,a1.FDeptID ,b2.FItemID , b2.FAuxPropID , b2.FBatchNo , b2.FSCStockID ,
0 , b2.FQty*-1 ,0 AS 'InFAmount' , b2.FAmount*-1 AS 'OutFAmount'
FROM ICStockBill AS a1
LEFT OUTER JOIN ICStockBillEntry AS b2
ON a1.FInterID=b2.FInterID
WHERE a1.FDate>=@DATEBill AND a1.FDate<@DATESTAR
AND a1.FStatus>0
AND a1.FTranType IN (24,41) -- 出库单 单据类型
AND b2.FSCStockID IN (@StockID,@StockID2)
) AS FQC2
GROUP BY FQC2.FItemID , FQC2.FDCStockID
-----####################################################################---------------######### 查询起始时间 至 查询截止时间 数量 金额 ##################---------------
-----#####################################################################--------------################################################################---------------
----- 查询 入库单据 以及 调拨单 退回的部分
SELECT FQC2.FTranType ,FQC2.FItemID , FQC2.FDCStockID ,ISNULL(SUM(FQC2.InFQty),0) AS 'FInSumQty' ,ISNULL(SUM(FQC2.OutFQty),0) AS 'FOutSumQty' ,
ISNULL(SUM(FQC2.InFAmount),0) AS 'InFAmount' , ISNULL(SUM(FQC2.OutFAmount),0) AS 'OutFAmount'
INTO #TQJIO -- 临时表 #TQJIO 中的OUTQty和 QutFAmount 未退回数据 主要作为 仓库 入库数据统计
FROM (
SELECT a1.FTranType , a1.FDate , a1.FBillNo ,a1.FDeptID ,b2.FItemID , b2.FAuxPropID , b2.FBatchNo , b2.FDCStockID ,
b2.FQty AS 'InFQty',0 AS 'OutFQty' ,b2.FAmount AS 'InFAmount' , 0 AS 'OutFAmount'
FROM ICStockBill AS a1
LEFT OUTER JOIN ICStockBillEntry AS b2
ON a1.FInterID=b2.FInterID
WHERE a1.FDate BETWEEN @DATESTAR AND @DATEEND
AND a1.FStatus>0
AND a1.FTranType IN (1,2,5,6,10,40,41) -- 入库单 单据类型
AND b2.FDCStockID IN (@StockID,@StockID2)
UNION ALL
SELECT a1.FTranType , a1.FDate , a1.FBillNo ,a1.FDeptID ,b2.FItemID , b2.FAuxPropID , b2.FBatchNo , b2.FDCStockID ,
0 , b2.FQty*-1 ,0 AS 'InFAmount' , b2.FAmount*-1 AS 'OutFAmount'
FROM ICStockBill AS a1
LEFT OUTER JOIN ICStockBillEntry AS b2
ON a1.FInterID=b2.FInterID
WHERE a1.FDate BETWEEN @DATESTAR AND @DATEEND
AND a1.FStatus>0
AND a1.FTranType IN (21,26,29,28,43) -- 出库单 单据类型
AND b2.FDCStockID IN (@StockID,@StockID2)
UNION ALL
--------------------------------------------------------------------------------------------------------
-------- 此处 调拨单 为退回数据 即产品退回 与上面的入库数据冲减 得出当期 入库数据------
--------------------------------------------------------------------------------------------------------
SELECT a1.FTranType , a1.FDate , a1.FBillNo ,a1.FDeptID ,b2.FItemID , b2.FAuxPropID , b2.FBatchNo , b2.FSCStockID ,
0 , b2.FQty*-1 ,0 AS 'InFAmount' , b2.FAmount*-1 AS 'OutFAmount'
FROM ICStockBill AS a1
LEFT OUTER JOIN ICStockBillEntry AS b2
ON a1.FInterID=b2.FInterID
WHERE a1.FDate BETWEEN @DATESTAR AND @DATEEND
AND a1.FStatus>0
AND a1.FTranType IN (24,41) -- 出库单 单据类型
AND b2.FSCStockID IN (@StockID,@StockID2)
) AS FQC2
GROUP BY FQC2.FTranType , FQC2.FItemID , FQC2.FDCStockID
-----################################################################---------------
-----######### 查询起始时间 至 查询截止时间 除调拨单之外的出库 数量 金额 ##---------------
-----####### 普通单据 包括生产领料单等 #################################---------------
-----############################################################---------------
-------- 普通出库是从 FDCStockID 发出数量 ,调拨单和领料单是 从 FSCStockID 发出数量
SELECT FQC2.FTranType ,FQC2.FItemID , FQC2.FDCStockID ,FQC2.FDeptID ,ISNULL(SUM(FQC2.InFQty),0) AS 'FInSumQty' ,ISNULL(SUM(FQC2.OutFQty),0) AS 'FOutSumQty' ,
ISNULL(SUM(FQC2.InFAmount),0) AS 'InFAmount' , ISNULL(SUM(FQC2.OutFAmount),0) AS 'OutFAmount'
INTO #TQJOut
FROM ( SELECT a1.FTranType , a1.FDate , a1.FBillNo ,a1.FDeptID ,b2.FItemID , b2.FAuxPropID , b2.FBatchNo , b2.FDCStockID ,
0 AS InFQty , b2.FQty*-1 AS OutFQty ,0 AS 'InFAmount' , b2.FAmount*-1 AS 'OutFAmount'
FROM ICStockBill AS a1
LEFT OUTER JOIN ICStockBillEntry AS b2
ON a1.FInterID=b2.FInterID
WHERE a1.FDate BETWEEN @DATESTAR AND @DATEEND
AND a1.FStatus>0
AND a1.FTranType IN (21,26,29,28,43) -- 出库单 单据类型
AND b2.FDCStockID IN (@StockID,@StockID2)
UNION ALL
SELECT a1.FTranType , a1.FDate , a1.FBillNo ,a1.FDeptID ,b2.FItemID , b2.FAuxPropID , b2.FBatchNo , b2.FSCStockID ,
0 , b2.FQty*-1 ,0 AS 'InFAmount' , b2.FAmount*-1 AS 'OutFAmount'
FROM ICStockBill AS a1
LEFT OUTER JOIN ICStockBillEntry AS b2
ON a1.FInterID=b2.FInterID
WHERE a1.FDate BETWEEN @DATESTAR AND @DATEEND
AND a1.FStatus>0
AND a1.FTranType=24 -- 出库单 单据类型
AND b2.FSCStockID IN (@StockID,@StockID2)
) AS FQC2
GROUP BY FQC2.FTranType , FQC2.FItemID , FQC2.FDCStockID , FQC2.FDeptID
-----#################################################################---------------
-----#### 查询起始时间 至 查询截止时间 调拨单据 数量 金额 #############---------------
-----########### 调拨单 调出仓库 ###############################---------------
-----##########################################################---------------
SELECT b2.FItemID , b2.FSCStockID , b2.FDCStockID ,
ISNULL(SUM(b2.FQty),0) AS InFQty , ISNULL(SUM(b2.FAmount),0) AS 'InFAmount' , ISNULL(SUM(b2.FQty),0)*-1 AS OutFQty , ISNULL(SUM(b2.FAmount),0)*-1 AS 'OutFAmount'
INTO #TDB -- 查询期间调拨单数据
FROM ICStockBill AS a1
LEFT OUTER JOIN ICStockBillEntry AS b2
ON a1.FInterID=b2.FInterID
WHERE a1.FDate BETWEEN @DATESTAR AND @DATEEND
AND a1.FStatus>0
AND a1.FTranType=41 -- 调拨单 单据类型
AND (b2.FSCStockID IN (@StockID,@StockID2) OR b2.FDCStockID IN (@StockID,@StockID2))
GROUP BY b2.FItemID , b2.FSCStockID , b2.FDCStockID
-- FSCStockID 为调出仓库 , FDCStockID 为调入仓库
-----##############################################################---------------
-----### 查询起始时间 至 查询截止时间 成本调整单 金额 #############---------------
-----##### 2021-07-03 增加期间 成本调整单据 将金额汇总并关联 调拨临时表#TDB 和普通出库临时表##TQJOut ####---------------
-----#############################################################---------------
SELECT cb1.FItemID , cb1.FDCStockID ,cb1.FQty , cb1.FAmount ,db1.OutFQty , db1.OutFAmount AS 'DBFAmount' ,jt1.FOutSumQty , jt1.OutFAmount AS 'JTFAmount' ,
jq1.FOutSumQty AS 'FJQOutQty' , jq1.OutFAmount AS 'JQOutFAmount' ,
tbe1.FOutSumQty AS 'FBeOutQty' , tbe1.OutFAmount AS 'FBeAmount' ,
ISNULL(tbe1.OutFAmount,0)+ISNULL(db1.OutFAmount,0)+ISNULL(jt1.OutFAmount,0)+ISNULL(cb1.FAmount,0) AS 'ChangeFAmount' ,
CAST(0.00 as FLOAT) AS 'DBChangeFAmount' , CAST(0.00 AS FLOAT) AS 'JTChangeFAmount' ,
CAST(0.00 AS FLOAT) AS 'JQCHFAmount' , CAST(0.00 AS FLOAT) AS 'FBeOutFAmount' ,
(CASE WHEN ISNULL(tbe1.FOutSumQty,0)+ISNULL(db1.OutFQty,0)+ISNULL(jt1.FOutSumQty,0)=0 THEN 1
WHEN ISNULL(tbe1.OutFAmount,0)+ISNULL(db1.OutFAmount,0)+ISNULL(jt1.OutFAmount,0)=0 then 2 ELSE 3 END) AS 'FZero'
---- FZero标识 完全没有出库数量的物料标识为1,有数量无金额的标识为2 ,正常为3
INTO #TCBTZ ------- 成本调整单 对应的 金额和对应的仓库
FROM (
SELECT b2.FItemID , b2.FDCStockID , SUM(b2.FQty)*-1 AS FQty , SUM(b2.FAmount)*-1 AS 'FAmount'
FROM ICStockBill AS a1
LEFT OUTER JOIN ICStockBillEntry AS b2
ON a1.FInterID=b2.FInterID
WHERE a1.FDate BETWEEN @DATEBill AND @DATEEND
AND a1.FStatus>0
AND a1.FTranType=100 -- 成本单 单据类型
AND b2.FDCStockID IN (@StockID,@StockID2)
GROUP BY b2.FItemID , b2.FDCStockID ) AS cb1
LEFT OUTER JOIN #TDB AS db1 -- 需要调整的 调拨单 调出数据
ON cb1.FItemID=db1.FItemID AND cb1.FDCStockID=db1.FSCStockID
LEFT OUTER JOIN #TQJOut AS jt1 -- 需要调整的 期间“普通出库” 数据
ON cb1.FItemID=jt1.FItemID AND cb1.FDCStockID=jt1.FDCStockID
LEFT OUTER JOIN ( SELECT FQC2.FItemID , FQC2.FDCStockID ,SUM(FQC2.FOutSumQty) AS 'FOutSumQty' , SUM(FQC2.OutFAmount) AS 'OutFAmount'
FROM #TQJIO AS FQC2 WHERE FQC2.FOutSumQty<>0 GROUP BY FQC2.FItemID , FQC2.FDCStockID ) AS jq1 ------ 临时表为明细数据,需要先进行统计
ON cb1.FItemID=jq1.FItemID AND cb1.FDCStockID=jq1.FDCStockID
LEFT OUTER JOIN #TIOBeBal AS tbe1 ---- 期初 至 制定时间发生出库的数量
ON cb1.FItemID=tbe1.FItemID AND cb1.FDCStockID=tbe1.FDCStockID
UPDATE #TCBTZ SET
-- EG:成本调整金额 C 、 调拨出库金额 A 、普通出库金额 B 。 调整后的 调拨出库金额 X=A+(C*(A/(A+B)))
DBChangeFAmount=ISNULL(DBFAmount,0)+(CASE WHEN ISNULL(FBeAmount,0)+ISNULL(DBFAmount,0)+ISNULL(JTFAmount,0)=0 THEN
ISNULL(FAmount,0)*(ISNULL(OutFQty,0)/(ISNULL(FBeOutQty,0)+ISNULL(OutFQty,0)+ISNULL(FOutSumQty,0)))
ELSE ISNULL(FAmount,0)*(ISNULL(DBFAmount,0)/(ISNULL(FBeAmount,0)+ISNULL(DBFAmount,0)+ISNULL(JTFAmount,0))) END)
-- EG:成本调整金额 C 、 调拨出库金额 A 、普通出库金额 B 。 调整后的 调拨出库金额 X=B+(C*(B/(A+B)))
, JTChangeFAmount=ISNULL(JTFAmount,0)+(CASE WHEN ISNULL(FBeAmount,0)+ISNULL(DBFAmount,0)+ISNULL(JTFAmount,0)=0 THEN
ISNULL(FAmount,0)*(ISNULL(FOutSumQty,0)/(ISNULL(FBeOutQty,0)+ISNULL(OutFQty,0)+ISNULL(FOutSumQty,0)))
ELSE ISNULL(FAmount,0)*(ISNULL(JTFAmount,0)/(ISNULL(FBeAmount,0)+ISNULL(DBFAmount,0)+ISNULL(JTFAmount,0))) END)
, JQCHFAmount=ISNULL(JQOutFAmount,0)+(CASE WHEN ISNULL(FBeAmount,0)+ISNULL(JQOutFAmount,0)=0 THEN
ISNULL(FAmount,0)*(ISNULL(FJQOutQty,0)/(ISNULL(FBeOutQty,0)+ISNULL(FJQOutQty,0)))
ELSE ISNULL(FAmount,0)*(ISNULL(JQOutFAmount,0)/(ISNULL(FBeAmount,0)+ISNULL(JQOutFAmount,0))) END)
, FBeOutFAmount=ISNULL(FBeAmount,0)+(CASE WHEN ISNULL(FBeAmount,0)+ISNULL(JQOutFAmount,0)=0 THEN
ISNULL(FAmount,0)*(ISNULL(FBeOutQty,0)/(ISNULL(FBeOutQty,0)+ISNULL(FJQOutQty,0)))
ELSE ISNULL(FAmount,0)*(ISNULL(FBeAmount,0)/(ISNULL(FBeAmount,0)+ISNULL(JQOutFAmount,0))) END)
WHERE ISNULL(FAmount,0)<>0 AND FZero<>1
----- 更改 调拨临时表中 的出库金额 修改为调整成本后的金额
UPDATE db1 SET OutFAmount=ISNULL(cb1.DBChangeFAmount,0)
FROM #TDB AS db1 , #TCBTZ AS cb1
WHERE cb1.FItemID=db1.FItemID AND cb1.FDCStockID=db1.FSCStockID AND cb1.FZero<>1
----- 更改 普通出库临时表中 的出库金额 修改为调整成本后的金额
UPDATE jt1 SET OutFAmount=ISNULL(cb1.JTChangeFAmount,0)
FROM #TQJOut AS jt1 , #TCBTZ AS cb1
WHERE cb1.FItemID=jt1.FItemID AND cb1.FDCStockID=jt1.FDCStockID AND cb1.FZero<>1
UPDATE jq1 SET OutFAmount=ISNULL(cb1.JQCHFAmount,0)*(ISNULL(jq1.FOutSumQty,0)/ISNULL(FJQOutQty,0))
FROM #TQJIO AS jq1 , #TCBTZ AS cb1
WHERE cb1.FItemID=jq1.FItemID AND cb1.FDCStockID=jq1.FDCStockID AND cb1.FZero<>1 AND cb1.FJQOutQty<>0
UPDATE tbe1 SET OutFAmount=ISNULL(cb1.FBeOutFAmount,0)
FROM #TIOBeBal tbe1 , #TCBTZ AS cb1
WHERE cb1.FItemID=tbe1.FItemID AND cb1.FDCStockID=tbe1.FDCStockID AND cb1.FZero<>1 --AND tbe1.FOutSumQty<>0
-----###########################################################---------------
-----#################################################################---------------
-----################################################################---------------
-----################################################################---------------
SELECT Pro1.FItemID ,ic1.FNumber ,ic1.FName ,ic1.F_121 AS 'FLineID' ,Pro1.FStockID ,st1.FName AS FStockName ,
ISNULL(QCBal.FBegQty,0)+ISNULL(IPBal.FInSumQty,0)+ISNULL(IPBal.FOutSumQty,0) AS FBegQty ,
(CASE WHEN (ISNULL(QCBal.FBegQty,0)+ISNULL(IPBal.FInSumQty,0)+ISNULL(IPBal.FOutSumQty,0))=0 THEN 0
ELSE (ISNULL(QCBal.FBegBal,0)+ISNULL(IPBal.InFAmount,0)+ISNULL(IPBal.OutFAmount,0))/
(ISNULL(QCBal.FBegQty,0)+ISNULL(IPBal.FInSumQty,0)+ISNULL(IPBal.FOutSumQty,0)) END ) AS FBegPrice ,
ISNULL(QCBal.FBegBal,0)+ISNULL(IPBal.InFAmount,0)+ISNULL(IPBal.OutFAmount,0) AS FBegAmount,
-- ISNULL(QCBal.FBegQty,0),ISNULL(IPBal.FInSumQty,0),ISNULL(IPBal.FOutSumQty,0) ,
-- ISNULL(QCBal.FBegBal,0),ISNULL(IPBal.InFAmount,0),ISNULL(IPBal.OutFAmount,0) ,
ISNULL(QJIN.FInSumQty,0)+ISNULL(QJIN.FOutSumQty,0) AS QJINFQty ,
(CASE WHEN (ISNULL(QJIN.FInSumQty,0)+ISNULL(QJIN.FOutSumQty,0))=0 THEN 0
ELSE (ISNULL(QJIN.InFAmount,0)+ISNULL(QJIN.OutFAmount,0))/(ISNULL(QJIN.FInSumQty,0)+ISNULL(QJIN.FOutSumQty,0)) END ) AS QJINPrice ,
ISNULL(QJIN.InFAmount,0)+ISNULL(QJIN.OutFAmount,0) AS QJINFAmount ,
ISNULL(QJOUT.FInSumQty,0)+ISNULL(QJOUT.FOutSumQty,0) AS QJOUTFQty ,
(CASE WHEN (ISNULL(QJOUT.FInSumQty,0)+ISNULL(QJOUT.FOutSumQty,0))=0 THEN 0
ELSE (ISNULL(QJOUT.InFAmount,0)+ISNULL(QJOUT.OutFAmount,0))/(ISNULL(QJOUT.FInSumQty,0)+ISNULL(QJOUT.FOutSumQty,0)) END ) AS QJOUTPrice ,
ISNULL(QJOUT.InFAmount,0)+ISNULL(QJOUT.OutFAmount,0) AS QJOUTFAmount ,
ISNULL(INCS.InFQty,0) AS INCSFQty ,(CASE WHEN ISNULL(INCS.InFQty,0)=0 THEN 0 ELSE ISNULL(INCS.InFAmount,0)/ISNULL(INCS.InFQty,0) END) AS INCSPrice , ISNULL(INCS.InFAmount,0) AS INCSFAmount ,
ISNULL(OutCS.OutFQty,0) AS OutCSFQty ,(CASE WHEN ISNULL(OutCS.OutFQty,0)=0 THEN 0 ELSE ISNULL(OutCS.OutFAmount,0)/ISNULL(OutCS.OutFQty,0) END) AS OutCSPrice , ISNULL(OutCS.OutFAmount,0) AS OutCSFAmount ,
ISNULL(INBZ.InFQty,0) AS INBZFQty ,(CASE WHEN ISNULL(INBZ.InFQty,0)=0 THEN 0 ELSE ISNULL(INBZ.InFAmount,0)/ISNULL(INBZ.InFQty,0) END) AS INBZPrice ,ISNULL(INBZ.InFAmount,0) AS INBZFAmount ,
ISNULL(OutBZ.OutFQty,0) AS OutBZFQty ,(CASE WHEN ISNULL(OutBZ.OutFQty,0)=0 THEN 0 ELSE ISNULL(OutBZ.OutFAmount,0)/ISNULL(OutBZ.OutFQty,0) END) AS OutBZPrice , ISNULL(OutBZ.OutFAmount,0) AS OutBZFAmount ,
ISNULL(INAnB.InFQty,0) AS INAnBFQty ,(CASE WHEN ISNULL(INAnB.InFQty,0)=0 THEN 0 ELSE ISNULL(INAnB.InFAmount,0)/ISNULL(INAnB.InFQty,0) END) AS INAnBPrice , ISNULL(INAnB.InFAmount,0) AS INAnBFAmount ,
ISNULL(OutAnB.OutFQty,0) AS OutAnBFQty ,(CASE WHEN ISNULL(OutAnB.OutFQty,0)=0 THEN 0 ELSE ISNULL(OutAnB.OutFAmount,0)/ISNULL(OutAnB.OutFQty,0) END) AS OutAnBPrice , ISNULL(OutAnB.OutFAmount,0) AS OutAnBFAmount ,
ISNULL(INCC.InFQty,0) AS INCCFQty ,(CASE WHEN ISNULL(INCC.InFQty,0)=0 THEN 0 ELSE ISNULL(INCC.InFAmount,0)/ISNULL(INCC.InFQty,0) END) AS INCCPrice , ISNULL(INCC.InFAmount,0) AS INCCFAmount ,
ISNULL(OutCC.OutFQty,0) AS OutCCFQty ,(CASE WHEN ISNULL(OutCC.OutFQty,0)=0 THEN 0 ELSE ISNULL(OutCC.OutFAmount,0)/ISNULL(OutCC.OutFQty,0) END) AS OutCCPrice , ISNULL(OutCC.OutFAmount,0) AS OutCCFAmount ,
ISNULL(QJSUM.FInSumQty,0)+ISNULL(QJSUM.FOutSumQty,0) AS QJSUMFQty ,
(CASE WHEN (ISNULL(QJSUM.FInSumQty,0)+ISNULL(QJSUM.FOutSumQty,0))=0 THEN 0
ELSE (ISNULL(QJSUM.InFAmount,0)+ISNULL(QJSUM.OutFAmount,0))/(ISNULL(QJSUM.FInSumQty,0)+ISNULL(QJSUM.FOutSumQty,0)) END ) AS QJSUMPrice ,
ISNULL(QJSUM.InFAmount,0)+ISNULL(QJSUM.OutFAmount,0) AS QJSUMFAmount ,
ISNULL(QCBal.FBegQty,0)+ISNULL(IPBal.FInSumQty,0)+ISNULL(IPBal.FOutSumQty,0)+
ISNULL(QJSUM.FInSumQty,0)+ISNULL(QJSUM.FOutSumQty,0) AS FQtyEndBal ,
(CASE WHEN (ISNULL(QCBal.FBegQty,0)+ISNULL(IPBal.FInSumQty,0)+ISNULL(IPBal.FOutSumQty,0)+
ISNULL(QJSUM.FInSumQty,0)+ISNULL(QJSUM.FOutSumQty,0))=0 THEN 0
ELSE (ISNULL(QCBal.FBegBal,0)+ISNULL(IPBal.InFAmount,0)+ISNULL(IPBal.OutFAmount,0)+
ISNULL(QJSUM.InFAmount,0)+ISNULL(QJSUM.OutFAmount,0))/(ISNULL(QCBal.FBegQty,0)+ISNULL(IPBal.FInSumQty,0)+ISNULL(IPBal.FOutSumQty,0)+
ISNULL(QJSUM.FInSumQty,0)+ISNULL(QJSUM.FOutSumQty,0)) END ) AS FPriceEndBal ,
ISNULL(QCBal.FBegBal,0)+ISNULL(IPBal.InFAmount,0)+ISNULL(IPBal.OutFAmount,0)+
ISNULL(QJSUM.InFAmount,0)+ISNULL(QJSUM.OutFAmount,0) AS FAmountEndBal
INTO #TempReport
----- 根据要求 显示 期初数、期初至指定时间发生的数量合计为报表期初数 ,其他根据要求单独------- 从调拨单和领用单据中统计获取
FROM #TPro1 AS Pro1
LEFT OUTER JOIN #TICBeBal AS QCBal -- 系统期初数
ON Pro1.FItemID=QCBal.FItemID AND Pro1.FStockID=QCBal.FStockID
LEFT OUTER JOIN #TIOBeBal AS IPBal -- 系统期初至 查询起始期间
ON Pro1.FItemID=IPBal.FItemID AND Pro1.FStockID=IPBal.FDCStockID
LEFT OUTER JOIN t_ICItem AS ic1 -- 物料资料
ON Pro1.FItemID=ic1.FItemID
LEFT OUTER JOIN t_Stock AS st1 -- 仓库名称
ON Pro1.FStockID=st1.FItemID
LEFT OUTER JOIN #TQJIO AS QJIN -- 查询期间 数量 金额
ON Pro1.FItemID=QJIN.FItemID AND Pro1.FStockID=QJIN.FDCStockID AND QJIN.FTranType IN (1,2,5,6,10,40)
LEFT OUTER JOIN #TQJIO AS QJOUT -- 查询期间 数量 金额
ON Pro1.FItemID=QJOUT.FItemID AND Pro1.FStockID=QJOUT.FDCStockID AND QJOUT.FTranType IN (21,26,29,28,43,24)
LEFT OUTER JOIN #TDB AS INCS
ON Pro1.FItemID=INCS.FItemID AND Pro1.FStockID=INCS.FDCStockID AND INCS.FSCStockID=18557 -- 从抽丝车间 退回 到目标仓库 18557 抽丝车间仓
LEFT OUTER JOIN ( SELECT FCS.FItemID , FCS.FDCStockID ,SUM(FCS.OutFQty)*-1 AS 'OutFQty' ,SUM(FCS.OutFAmount)*-1 AS 'OutFAmount'
FROM (
SELECT a.FItemID , a.FDCStockID , a.FOutSumQty AS OutFQty ,a.OutFAmount
FROM #TQJOut AS a LEFT OUTER JOIN t_Department AS d on a.FDeptID=d.FItemID
WHERE d.FNumber LIKE '03.01%'
UNION ALL
SELECT c.FItemID , c.FSCStockID , c.OutFQty ,c.OutFAmount FROM #TDB AS c WHERE c.FDCStockID=18557 ) AS FCS
GROUP BY FCS.FItemID , FCS.FDCStockID
) AS OutCS
ON Pro1.FItemID=OutCS.FItemID AND Pro1.FStockID=OutCS.FDCStockID --AND OutCS.FDCStockID=18557 -- 从目的仓库调出 调入到抽丝车间 18557 抽丝车间仓
LEFT OUTER JOIN #TDB AS INBZ
ON Pro1.FItemID=INBZ.FItemID AND Pro1.FStockID=INBZ.FDCStockID AND INBZ.FSCStockID=18558 -- 从编织车间 退回 到目标仓库 18588 编织车间仓
LEFT OUTER JOIN ( SELECT FCS.FItemID , FCS.FDCStockID ,SUM(FCS.OutFQty)*-1 AS 'OutFQty' ,SUM(FCS.OutFAmount)*-1 AS 'OutFAmount'
FROM (
SELECT a.FItemID , a.FDCStockID , a.FOutSumQty AS OutFQty ,a.OutFAmount
FROM #TQJOut AS a LEFT OUTER JOIN t_Department AS d on a.FDeptID=d.FItemID
WHERE d.FNumber LIKE '03.02%'
UNION ALL
SELECT c.FItemID , c.FSCStockID , c.OutFQty ,c.OutFAmount FROM #TDB AS c WHERE c.FDCStockID=18558 ) AS FCS
GROUP BY FCS.FItemID , FCS.FDCStockID
) AS OutBZ
ON Pro1.FItemID=OutBZ.FItemID AND Pro1.FStockID=OutBZ.FDCStockID -- AND OutBZ.FDCStockID=18558 -- 从目的仓库调出 调入到编织车间 18588 编织车间仓
LEFT OUTER JOIN #TDB AS INAnB
ON Pro1.FItemID=INAnB.FItemID AND Pro1.FStockID=INAnB.FDCStockID AND INAnB.FSCStockID IN (18559,18560) -- 18559 后A车间仓 18560 后B车间仓
LEFT OUTER JOIN ( SELECT FCS.FItemID , FCS.FDCStockID ,SUM(FCS.OutFQty)*-1 AS 'OutFQty' ,SUM(FCS.OutFAmount)*-1 AS 'OutFAmount'
FROM (
SELECT a.FItemID , a.FDCStockID ,
a.FOutSumQty AS OutFQty ,a.OutFAmount
FROM #TQJOut AS a LEFT OUTER JOIN t_Department AS d on a.FDeptID=d.FItemID
WHERE d.FNumber LIKE '03.03%' OR d.FNumber LIKE '03.04%'
UNION ALL
SELECT c.FItemID , c.FSCStockID , c.OutFQty ,c.OutFAmount FROM #TDB AS c WHERE c.FDCStockID IN (18559,18560) ) AS FCS
GROUP BY FCS.FItemID , FCS.FDCStockID
) AS OutAnB
ON Pro1.FItemID=OutAnB.FItemID AND Pro1.FStockID=OutAnB.FDCStockID --AND OutAnB.FDCStockID IN (18559,18560) -- 18559 后A车间仓 18560 后B车间仓
LEFT OUTER JOIN #TDB AS INCC
ON Pro1.FItemID=INCC.FItemID AND Pro1.FStockID=INCC.FDCStockID AND INCC.FSCStockID=18064 -- 从抽丝车间 退回 到目标仓库 18557 抽丝车间仓
LEFT OUTER JOIN ( SELECT FCS.FItemID , FCS.FDCStockID ,SUM(FCS.OutFQty)*-1 AS 'OutFQty' ,SUM(FCS.OutFAmount)*-1 AS 'OutFAmount'
FROM (
SELECT a.FItemID , a.FDCStockID , a.FOutSumQty AS OutFQty ,a.OutFAmount
FROM #TQJOut AS a LEFT OUTER JOIN t_Department AS d on a.FDeptID=d.FItemID
WHERE d.FNumber LIKE '02.%' -- 半成品前缀编码 丝线仓中只有 丝线半成品
UNION ALL
SELECT c.FItemID , c.FSCStockID , c.OutFQty ,c.OutFAmount FROM #TDB AS c WHERE c.FDCStockID=18064 ) AS FCS
GROUP BY FCS.FItemID , FCS.FDCStockID
) AS OutCC
ON Pro1.FItemID=OutCC.FItemID AND Pro1.FStockID=OutCC.FDCStockID -- AND OutCC.FDCStockID=18064 -- 从目的仓库调出 调入到抽丝车间 18557 抽丝车间仓
LEFT OUTER JOIN ( SELECT FQC2.FItemID , FQC2.FDCStockID ,SUM(FQC2.FInSumQty) AS 'FInSumQty' ,SUM(FQC2.FOutSumQty) AS 'FOutSumQty' ,
SUM(FQC2.InFAmount) AS 'InFAmount' , SUM(FQC2.OutFAmount) AS 'OutFAmount'
FROM #TQJIO AS FQC2 GROUP BY FQC2.FItemID , FQC2.FDCStockID ) AS QJSUM
ON Pro1.FItemID=QJSUM.FItemID AND Pro1.FStockID=QJSUM.FDCStockID -- 查询期间 发出、收入 数量、金额总和
ORDER BY Pro1.FStockID , ic1.FNumber
SELECT (CASE WHEN t31.F_103='单丝' AND RIGHT(t31.FName,2)<>'PE' THEN '单丝'
WHEN t31.F_103='复丝' AND RIGHT(t31.FName,2)<>'PE' THEN '复丝'
WHEN t31.F_103='PE' OR RIGHT(t31.FName,2)='PE' THEN 'PE线'
WHEN t31.F_103='复捻单丝' AND RIGHT(t31.FName,2)<>'PE' THEN '复捻单丝' ELSE '单丝' END) AS '规格' ,-- NULL AS '仓库名称' ,
CAST(SUM(FBegQty) AS DECIMAL(18,2)) AS '期初数量' ,
CAST( (CASE WHEN SUM(FBegQty)=0 THEN 0 ELSE SUM(FBegAmount)/SUM(FBegQty) END) AS DECIMAL(18,2) ) AS '期初单价' ,
CAST(SUM(FBegAmount) AS DECIMAL(18,2)) AS '期初金额' ,
CAST(SUM(INCSFQty)+SUM(QJINFQty) AS DECIMAL(18,2)) AS '抽丝入库数量' ,
CAST( (CASE WHEN (SUM(INCSFQty)+SUM(QJINFQty))=0 THEN 0 ELSE (SUM(INCSFAmount)+SUM(QJINFAmount))/(SUM(INCSFQty)+SUM(QJINFQty)) END) AS DECIMAL(18,2) ) AS '抽丝退回单价' ,
CAST(SUM(INCSFAmount)+SUM(QJINFAmount) AS DECIMAL(18,2)) AS '抽丝入库金额' ,
-- CAST(SUM(OUTCSFQty) AS DECIMAL(18,2)) AS '抽丝领用数量' ,
-- CAST( (CASE WHEN SUM(OUTCSFQty)=0 THEN 0 ELSE SUM(OUTCSFAmount)/SUM(OUTCSFQty) END) AS DECIMAL(18,2) ) AS '抽丝领用单价' ,
-- CAST(SUM(OUTCSFAmount) AS DECIMAL(18,2)) AS '抽丝领用金额' ,
CAST(SUM(INBZFQty) AS DECIMAL(18,2)) AS '编织退回数量' ,
CAST( (CASE WHEN SUM(INBZFQty)=0 THEN 0 ELSE SUM(INBZFAmount)/SUM(INBZFQty) END) AS DECIMAL(18,2) ) AS '编织退回单价' ,
CAST(SUM(INBZFAmount) AS DECIMAL(18,2)) AS '编织退回金额' ,
CAST(SUM(OUTBZFQty) AS DECIMAL(18,2)) AS '编织领用数量' ,
CAST( (CASE WHEN SUM(OUTBZFQty)=0 THEN 0 ELSE SUM(OUTBZFAmount)/SUM(OUTBZFQty) END) AS DECIMAL(18,2) ) AS '编织领用单价' ,
CAST(SUM(OUTBZFAmount) AS DECIMAL(18,2)) AS '编织领用金额' ,
CAST(SUM(OUTCCFQty) AS DECIMAL(18,2)) AS '市场领用数量' ,
CAST( (CASE WHEN SUM(OUTCCFQty)=0 THEN 0 ELSE SUM(OUTCCFAmount)/SUM(OUTCCFQty) END) AS DECIMAL(18,2) ) AS '市场领用单价' ,
CAST(SUM(OUTCCFAmount) AS DECIMAL(18,2)) AS '市场领用金额' ,
-- CAST(SUM(QJSUMFQty) AS DECIMAL(18,2)) AS '期间发生数量' , NULL AS '期间发生单价' , CAST(SUM(QJSUMFAmount) AS DECIMAL(18,2)) AS '期间发生金额' ,
CAST(SUM(FQtyEndBal) AS DECIMAL(18,2)) AS '期末余额数量' ,
CAST( (CASE WHEN SUM(FQtyEndBal)=0 THEN 0 ELSE SUM(FAmountEndBal)/SUM(FQtyEndBal) END) AS DECIMAL(18,2) ) AS '期末余额单价' ,
CAST(SUM(FAmountEndBal) AS DECIMAL(18,2)) AS '期末余额金额'
FROM #TempReport AS a LEFT OUTER JOIN t_Item_3001 AS t31 ON a.FLineID=t31.FItemID
WHERE a.FNumber LIKE '2.1.%'
GROUP BY (CASE WHEN t31.F_103='单丝' AND RIGHT(t31.FName,2)<>'PE' THEN '单丝'
WHEN t31.F_103='复丝' AND RIGHT(t31.FName,2)<>'PE' THEN '复丝'
WHEN t31.F_103='PE' OR RIGHT(t31.FName,2)='PE' THEN 'PE线'
WHEN t31.F_103='复捻单丝' AND RIGHT(t31.FName,2)<>'PE' THEN '复捻单丝' ELSE '单丝' END)
UNION ALL
SELECT '合计: ' AS '规格' ,-- NULL AS '仓库名称' ,
CAST(SUM(FBegQty) AS DECIMAL(18,2)) AS '期初数量' ,
CAST( (CASE WHEN SUM(FBegQty)=0 THEN 0 ELSE SUM(FBegAmount)/SUM(FBegQty) END) AS DECIMAL(18,2) ) AS '期初单价' ,
CAST(SUM(FBegAmount) AS DECIMAL(18,2)) AS '期初金额' ,
CAST(SUM(INCSFQty)+SUM(QJINFQty) AS DECIMAL(18,2)) AS '抽丝入库数量' ,
CAST( (CASE WHEN (SUM(INCSFQty)+SUM(QJINFQty))=0 THEN 0 ELSE (SUM(INCSFAmount)+SUM(QJINFAmount))/(SUM(INCSFQty)+SUM(QJINFQty)) END) AS DECIMAL(18,2) ) AS '抽丝入库单价' ,
CAST(SUM(INCSFAmount)+SUM(QJINFAmount) AS DECIMAL(18,2)) AS '抽丝入库金额' ,
CAST(SUM(INBZFQty) AS DECIMAL(18,2)) AS '编织退回数量' ,
CAST( (CASE WHEN SUM(INBZFQty)=0 THEN 0 ELSE SUM(INBZFAmount)/SUM(INBZFQty) END) AS DECIMAL(18,2) ) AS '编织退回单价' ,
CAST(SUM(INBZFAmount) AS DECIMAL(18,2)) AS '编织退回金额' ,
CAST(SUM(OUTBZFQty) AS DECIMAL(18,2)) AS '编织领用数量' ,
CAST( (CASE WHEN SUM(OUTBZFQty)=0 THEN 0 ELSE SUM(OUTBZFAmount)/SUM(OUTBZFQty) END) AS DECIMAL(18,2) ) AS '编织领用单价' ,
CAST(SUM(OUTBZFAmount) AS DECIMAL(18,2)) AS '编织领用金额' ,
CAST(SUM(OUTCCFQty) AS DECIMAL(18,2)) AS '市场领用数量' ,
CAST( (CASE WHEN SUM(OUTCCFQty)=0 THEN 0 ELSE SUM(OUTCCFAmount)/SUM(OUTCCFQty) END) AS DECIMAL(18,2) ) AS '市场领用单价' ,
CAST(SUM(OUTCCFAmount) AS DECIMAL(18,2)) AS '市场领用金额' ,
-- CAST(SUM(QJSUMFQty) AS DECIMAL(18,2)) AS '期间发生数量' , NULL AS '期间发生单价' , CAST(SUM(QJSUMFAmount) AS DECIMAL(18,2)) AS '期间发生金额' ,
CAST(SUM(FQtyEndBal) AS DECIMAL(18,2)) AS '期末余额数量' ,
CAST( (CASE WHEN SUM(FQtyEndBal)=0 THEN 0 ELSE SUM(FAmountEndBal)/SUM(FQtyEndBal) END) AS DECIMAL(18,2) ) AS '期末余额单价' ,
CAST(SUM(FAmountEndBal) AS DECIMAL(18,2)) AS '期末余额金额'
FROM #TempReport AS a LEFT OUTER JOIN t_Item_3001 AS t31 ON a.FLineID=t31.FItemID
WHERE a.FNumber LIKE '2.1.%'
UNION ALL
------ 如遇到没有出库数量、没有金额 的成本调整单,在次显示具体物料提示
SELECT ic1.FNumber+' 无出库记录' AS '规格' ,-- NULL AS '仓库名称' ,
NULL AS '期初数量' ,
NULL AS '期初单价' ,
NULL AS '期初金额' ,
NULL AS '抽丝入库数量' ,
NULL AS '抽丝入库单价' ,
NULL AS '抽丝入库金额' ,
NULL AS '编织退回数量' ,
NULL AS '编织退回单价' ,
NULL AS '编织退回金额' ,
NULL AS '编织领用数量' ,
NULL AS '编织领用单价' ,
NULL AS '编织领用金额' ,
NULL AS '市场领用数量' ,
NULL AS '市场领用单价' ,
NULL AS '市场领用金额' ,
NULL AS '期末余额数量' ,
NULL AS '期末余额单价' ,
NULL AS '期末余额金额'
FROM #TCBTZ AS a LEFT OUTER JOIN t_ICItem as ic1 on ic1.fitemid=a.fitemid
LEFT OUTER JOIN #TPro1 AS tp1 ON a.FItemID=tp1.FItemID AND a.FDCStockID=tp1.FStockID
WHERE a.FZero=1 AND ic1.FNumber LIKE '2.1.%'
-- SELECT * FROM #TempReport
-- SELECT * FROM #TICBeBal
-- SELECT * FROM #TIOBeBal
-- SELECT * FROM #TQJIO
-- SELECT * FROM #TDB
-- SELECT * FROM #TQJOut
-- SELECT * FROM #TPro1
-- SELECT * FROM #TCBTZ
DROP TABLE #TICBeBal -- 系统期间结算 期初数据
DROP TABLE #TPro1 -- 系统查询期间内出现的 物料及对应仓库
DROP TABLE #TIOBeBal -- 系统期初 与日期前的期初数据
DROP TABLE #TQJIO -- 查询期间 发出、收入 的 数量 金额
DROP TABLE #TDB -- 查询期间 调拨仓库 数量、金额 汇总
DROP TABLE #TQJOut -- 查询期间 除调拨单外的出库数据
DROP TABLE #TempReport -- 查询结果
DROP table #TCBTZ -- 查询成数量结果
------ 写在最后,由于金蝶自带的收发汇总无法查询所需数据,只能工作这样繁复的方式来实现对------- 应的功能。好处是只要理清基本思路就可以写出需要的报表。
------ 1、确定 期间 获取 期初数据 ,将指定时间至期初1号日期数据 获取就能实现任意时间查询。------- 也能与系统自带的收发汇总表进行对照。
------ 2、将期初、期间、起始时间-截止时间、发生的明细数据分门别类 收集有利于 编写过程中查------- 找对应 问题及原因。
------ 3、将过程中需要修正数据 在各原始数据汇总临时表中修改,就不必对繁复的报表进行修改。
金蝶K3 库存收发汇总相关推荐
- 金蝶 K3 库存账龄分析表 数据不一致
用户反馈某个物料在库存账龄分析表内的统计后存在超过1080天的数量,但实际该料只是在一年前导入,故不可能存在超过1080天的数据. 原因分析:用户没勾选包含调拨单的数据,报表统计时将调拨单排除在外.造 ...
- 金蝶k3库存账龄分析报表(带参数)
单价取最近的结账账期加权平均单价:数量根据传入参数确定. 传入参数: 年份:如2017 账期:如11 SQL直接使用时执行存储过程: execute [huwei_sp_stock_Age] 2017 ...
- 金蝶K3出入库单据制单日期误填到未来的日期,如何进行账务调整?
接到一个比较棘手的情况,先描述下现状和遇到的问题: 1.仓库2019-04-11手工制作了一张产品入库单,单据日期误填到了2020-04-11,当时没发现,审核也通过了(审核更新库存): 2.这个入库 ...
- 金蝶K3供应链与总账对账的思路及方法
本文档适用于 K/3V12.0及以上版本: 学习完本文档以后,能够对供应链与总账对账的思路和方法有个清晰的了解,并且 掌握对账不平的原因以及查找方法,解决对账不平的困扰. 背景 一到期末结账时就会接到 ...
- Excel+MSSQL开发金蝶K3欠料报表
将K3所有订单需求.MRP运算.库存及在途数据等数据整体展示,适合计划部门根据报表数据统筹考量物料供给情况,特制作此报表及Excel集成工具,以减少手工汇总统计的工作量. 本代码适用于金蝶K3 WIS ...
- 金蝶k3单据编码规则_金蝶K3存货跌价案例教程
目录 案例介绍 后台设置 计提存货跌价准备 显示计提表 计提凭证模板设置 计提凭证生成 手工结转跌价准备 案例介绍 关于存货跌价准备,企业会计准则第1号存货相关规定如下: 第十五条 资产负债表日,存货 ...
- 金蝶K3案例实验实际成本前台操作
目录 投入产量录入 完工产量录入 在制品盘点产量录入 材料费用录入 人工费用录入 折旧费用录入 其它费用录入 材料出库核算 产成品出库核算 材料费用分配 其它费用分配 成本计算合法性检查 产品成本计算 ...
- 金蝶K3物料生效流程+物料批量导入功能开发
开发工具:IMS信息化平台+Excel+MSSQL+K3 WISE版本. 原理: 1.使用IMS信息化平台搭建线上的物料生效流程,定义各物料维护节点和流程走向,流程完结后数据存放在平台后台数据库表中: ...
- 金蝶K3存货跌价准备案例专题
目录 案例介绍 后台设置 计提存货跌价准备 显示计提表 计提凭证模板设置 计提凭证生成 手工结转跌价准备 案例介绍 关于存货跌价准备,企业会计准则第1号存货相关规定如下: 第十五条 资产负债表日,存货 ...
最新文章
- html怎么制作固定背景,使用CSS制作的页面背景固定和滚动效果
- 基于深度学习的口罩规范佩戴检测【树莓派+PC训练、测试】
- PIL应用之生成验证码图片
- Qt 实现桌面右下角消息弹窗提示
- eclipse启动tomcat错误:A Java Exception has occurred(转)
- 小米拒绝权限_小米手机MIUI12真有那么好吗?
- C++ stringstream输入方式
- 【转】Go Micro(2)——微服务工具箱
- gpedit msc组策略面板 win10在哪里_Win10系统gpedit.msc在哪?Win10系统gpedit.msc组策略打不开怎么办?...
- 互联网时代,还有闷声发大财的吗?
- VIRTUALBOX无法加载USB移动设备的解决方法
- win7安装VScode(Visual Studio Code)
- 编写函数trans(str)实现字符串中数字转化为大写汉字。例如 “0123456789“转化为 “零壹贰叁肆伍陆柒捌玖“。
- 在matlab中怎么把点链接,怎么样把所有点连接起来?
- 超级计算机作文230字,我想养小兔子二年级作文230字
- CAD数据在柔性制造中的重要作用
- 前端JS校验银行卡卡号和身份证号码(附ES6版方法)
- 从SPS帧解析视频分辨率
- Eigen::aligned_allocator
- Qt学习 第21节:窗口初始化EVENT