阳光网驿-企业信息化交流平台【DTC零售连锁全渠道解决方案】

 找回密码
 注册

QQ登录

只需一步,快速开始

扫描二维码登录本站

手机号码,快捷登录

老司机
楼主: idctop

[原创] 金蝶k3即时库存外挂,解决即时库存不能分类汇总功能

  [复制链接]
  • TA的每日心情
    开心
    2015-4-14 00:03
  • 签到天数: 25 天

    [LV.4]偶尔看看III

    发表于 2012-9-9 09:58:06 | 显示全部楼层
    好资源 齐分享 看帖一定要回帖               
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    2015-5-13 16:11
  • 签到天数: 120 天

    [LV.7]常住居民III

    发表于 2012-9-10 22:54:48 | 显示全部楼层
    楼主帮忙改下嘛,自己改老改错,就不要那个t_Item_3009及和他关联的东西。


    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    go


    --exec lookforFitemQty 'and t1.FDate>=''2012-07-01'' and t1.FDate<=''2012-08-01'' and t2.FBatchNo like ''%1%''' ,',t5.FName ','t5.FName as 仓库,',' and t1.仓库=t2.仓库'
    ALTER proc [dbo].[lookforFitemQty2] --@FDate=@where @" exec lookforFitemQty '%FDate%', '%FNumber%','%OTHERS%','%condition%','%where%'",
    @FDate as nvarchar(500) ,@FNumber nvarchar(500),@groupby as nvarchar(2000),@condition as nvarchar(500),@where as nvarchar(2000)
    as
    begin
    --数据建立分2张表:1 出入库流水账 2 即时库存
    --1 出入库流水账
    declare @sqlstring1 nvarchar(4000)
    declare @sqlstring2 nvarchar(4000)
    declare @sqlstring3 nvarchar(4000)
    declare @sqlstring4 nvarchar(4000)
    declare @sqlstring5 nvarchar(4000)
    declare @FNumbertemp nvarchar(500)
    set @FNumbertemp=@FNumber
    --创建出入库单据的临时表
    --select t6.FNumber 物料代码,t6.FName 物料名称,t6.FModel 规格, t1.FDate 日期,
    --t2.FBatchNo 批号,t4.F_101 客户, t4.F_102 品牌, t4.F_103 其他, t4.F_104 琴号,t5.FName as 仓库,
    --CAST( sum(case when t1.FTranType=1 then t2.FQty else 0 end) as decimal(18,1)) 外购入库,
    --CAST( sum(case when t1.FTranType=2 then t2.FQty else 0 end) as decimal(18,1)) 产品入库,
    --CAST( sum(case when t1.FTranType=10 then t2.FQty else 0 end) as decimal(18,1)) 其他入库,
    --CAST( sum(case when t1.FTranType=5 then t2.FQty else 0 end) as decimal(18,1)) 委外加工入库,
    --CAST( sum(case when t1.FTranType in (1,2,10,5) then t2.FQty else 0 end) as decimal(18,1)) 入库合计,
    --CAST( sum(case when t1.FTranType=21 then t2.FQty else 0 end) as decimal(18,1)) 销售出库,
    --CAST( sum(case when t1.FTranType=29 then t2.FQty else 0 end) as decimal(18,1)) 其他出库单,
    --CAST( sum(case when t1.FTranType=24 then t2.FQty else 0 end) as decimal(18,1)) 生产领料单,
    --CAST( sum(case when t1.FTranType=28 then t2.FQty else 0 end) as decimal(18,1)) 委外加工出库单,
    --CAST( sum(case when t1.FTranType in (21,29,24,28) then t2.FQty else 0 end) as decimal(18,1)) 出库合计
    create table #temp1(物料代码 varchar(50),物料名称 varchar(50),规格 varchar(50),日期 datetime,批号 varchar(50),客户 varchar(50),品牌 varchar(50),
    其他 varchar(50),琴号 varchar(50),仓库 varchar(50),外购入库 decimal(18,1),产品入库 decimal(18,1),其他入库 decimal(18,1),委外加工入库 decimal(18,1)
    ,入库合计 decimal(18,1),销售出库 decimal(18,1),其他出库单 decimal(18,1),生产领料单 decimal(18,1),委外加工出库单 decimal(18,1),出库合计 decimal(18,1))

    --根据条件插入出入库单据的(汇总)数据
    --改写条件中的对应表字段
    select @FDate=REPLACE(@FDate,'日期','t1.FDate')
    select @FNumber = REPLACE(@FNumber,'物料代码','t6.FNumber')
    Set @sqlstring1='insert into #temp1
    select t6.FNumber 物料代码,t6.FName 物料名称,t6.FModel 规格, t1.FDate 日期,
    t2.FBatchNo 批号,t4.F_101 客户, t4.F_102 品牌, t4.F_103 其他, t4.F_104 琴号,t5.FName as 仓库,
    CAST( sum(case when t1.FTranType=1 then t2.FQty else 0 end) as decimal(18,1)) 外购入库,
    CAST( sum(case when t1.FTranType=2 then t2.FQty else 0 end) as decimal(18,1)) 产品入库,
    CAST( sum(case when t1.FTranType=10 then t2.FQty else 0 end) as decimal(18,1)) 其他入库,
    CAST( sum(case when t1.FTranType=5 then t2.FQty else 0 end) as decimal(18,1)) 委外加工入库,
    CAST( sum(case when t1.FTranType in (1,2,10,5) then t2.FQty else 0 end) as decimal(18,1)) 入库合计,
    CAST( sum(case when t1.FTranType=21 then t2.FQty else 0 end) as decimal(18,1)) 销售出库,
    CAST( sum(case when t1.FTranType=29 then t2.FQty else 0 end) as decimal(18,1)) 其他出库单,
    CAST( sum(case when t1.FTranType=24 then t2.FQty else 0 end) as decimal(18,1)) 生产领料单,
    CAST( sum(case when t1.FTranType=28 then t2.FQty else 0 end) as decimal(18,1)) 委外加工出库单,
    CAST( sum(case when t1.FTranType in (21,29,24,28) then t2.FQty else 0 end) as decimal(18,1)) 出库合计
    from ICStockBill t1
    left join ICStockBillEntry t2 on t1.FInterID=t2.FInterID
    left join t_AuxItem t3 on t2.FAuxPropID=t3.FItemID
    left join t_Item_3009 t4 on t4.FItemID=t3.FItemID
    left join t_ICItem t6 on t6.FItemID=t2.FItemID
    left join t_stock t5 on t5.FItemID=ISNULL( t2.FDCStockID,0 )+ isnull(t2.FSCStockID ,0)
    where t1.FTranType in (1,2,10,21,29,24) and t1.FCheckerID>0 '+@FDate+ @FNumber +@where+'
    group by t6.FNumber,t6.FName,t6.FModel,t1.FDate , t2.FBatchNo ,t4.F_101 , t4.F_102 , t4.F_103 , t4.F_104 ,t5.FName '

    exec sp_executesql @sqlstring1
    ----------------------------------------
    set @sqlstring2=
    'select 物料代码, 物料名称,规格,
    sum(外购入库) as 外购入库,
    sum(产品入库) as 产品入库,
    sum(其他入库) as 其他入库,
    sum(委外加工入库) as 委外加工入库,
    sum(销售出库) as 销售出库,
    sum(其他出库单) as 其他出库单,
    sum(生产领料单) as 生产领料单,
    sum(委外加工出库单) as 委外加工出库单,
    sum(入库合计) as 入库合计,sum(出库合计) as 出库合计 '
    +@groupby+
    ' into #temp3 from #temp1
    group by 物料代码, 物料名称,规格'+@groupby

    -------------------------批号, 客户, 品牌, 其他, 琴号, 仓库,------------------------------------------------
    ---------------------------------------即时库存信息表 ----------------------------------------------------------
    --建立即时库存临时表
    create table #temp2 (物料代码 varchar(50),物料名称 varchar(50),规格 varchar(50),批号 varchar(50),客户 varchar(50),品牌 varchar(50),其他 varchar(50),琴号 varchar(50),仓库 varchar(50),即时库存 decimal(18,1))

    Set @sqlstring5='
    insert into #temp2
    select t22.FNumber 物料代码,t22.FName as 物料名称,t22.FModel as 规格,
    t2.FBatchNo 批号,t4.F_101 客户, t4.F_102 品牌, t4.F_103 其他, t4.F_104 琴号,t5.FName 仓库,
    cast(sum(t2.FQty) as decimal(18,1)) 即时库存
    from ICInventory t2
    left join t_ICItem t22 on t2.FItemID=t22.FItemID
    left join t_Item_3009 t4 on t4.FItemID=t2.FAuxPropID
    left join t_stock t5 on t5.FItemID=t2.FStockID where 1=1 '
    +@where+'
    group by t22.FNumber,t2.FBatchNo,t4.F_101,t4.F_102 ,t4.F_103 , t4.F_104 ,t5.FName,t22.FName,t22.FModel'

    exec sp_executesql @sqlstring5

    set @sqlstring3='
    select 物料代码,物料名称,规格,sum(即时库存) as 即时库存 '+@groupby +
    ' into #temp4 from #temp2 '
    +' group by 物料代码,物料名称,规格 '+@groupby+
    '
    select t2.*,
    t1.外购入库,t1.产品入库,t1.其他入库,t1.委外加工入库,t1.销售出库,t1.其他出库单,t1.生产领料单,t1.委外加工出库单,t1.入库合计,t1.出库合计,
    t2.即时库存-(t1.入库合计-t1.出库合计) as 期初 into #temp5 from #temp4 t2
    left join #temp3 t1 on t1.物料代码=t2.物料代码 where 1=1 '
    +@condition
    -----------------------------------------------------------------------------
    set @sqlstring4='
    select * from #temp5 where 1=1 '
    +@FNumbertemp +
    ' order by 物料代码'

    ---------------------
    --'select 物料代码, 物料名称,规格,
    --sum(外购入库) as 外购入库,
    --sum(产品入库) as 产品入库,
    --sum(其他入库) as 其他入库,
    --sum(委外加工入库) as 委外加工入库,
    --sum(销售出库) as 销售出库,
    --sum(其他出库单) as 其他出库单,
    --sum(生产领料单) as 生产领料单,
    --sum(委外加工出库单) as 委外加工出库单,
    --sum(入库合计) as 入库合计,sum(出库合计) as 出库合计 '

    declare @sql nvarchar(4000)
    set @sql = @sqlstring2 + @sqlstring3+@sqlstring4
    exec sp_executesql @sql
    end
    --exec lookforFitemQty '','',''
    --exec lookforFitemQty ' where 1=1 and 物料代码 >= ''01.01.01.01.1001'' and 物料代码 <= ''01.01.01.01.1001''','',''
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    2015-5-13 16:11
  • 签到天数: 120 天

    [LV.7]常住居民III

    发表于 2012-9-18 09:45:21 | 显示全部楼层
    楼主:你就不能改好呀,我们这些菜鸟根本改不了, 不是这错就是没有数据啥的,你给改好行不?
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    昨天 11:54
  • 签到天数: 1898 天

    [LV.Master]伴坛终老

    发表于 2012-9-19 17:16:05 | 显示全部楼层
    下载了看看怎么样1111111111111111111111111111
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    前天 08:12
  • 签到天数: 1512 天

    [LV.Master]伴坛终老

    发表于 2013-3-13 19:26:14 | 显示全部楼层
    查询无效,不能用呀,K3控制台添加进去后,没法查询呀,一查就报错!!!
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    2018-7-23 17:24
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2013-4-26 10:15:18 | 显示全部楼层
    相当不错,能提供源代码多好相当不错,能提供源代码多好
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    前天 08:12
  • 签到天数: 1512 天

    [LV.Master]伴坛终老

    发表于 2013-5-27 10:59:26 | 显示全部楼层
    冒视12.x的版本不能用..报错的呀!!!
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    郁闷
    2022-10-10 14:56
  • 签到天数: 20 天

    [LV.4]偶尔看看III

    发表于 2013-6-9 14:16:58 | 显示全部楼层
    这个东东正是需要的,很好很强大!
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    2013-9-23 08:31
  • 签到天数: 52 天

    [LV.5]常住居民I

    发表于 2013-6-11 19:44:42 | 显示全部楼层
    好东西,以后建议多发这类技术性资源啊!
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    擦汗
    2022-11-24 10:14
  • 签到天数: 1425 天

    [LV.10]以坛为家III

    发表于 2013-6-11 20:40:04 | 显示全部楼层
    不错的东西,就是太贵了!!!
    启用邀请码注册,提高发帖质量,建设交流社区
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    快速回复 返回顶部 返回列表