1、创建供应商应付预付账款明细总表存储过程:sp_getAccount_detail,代码如下:

create procedure [dbo].[sp_getAccount_detail]@StartYear int,@StartPeriod int,@EndYear int,@EndPeriod int,@FAcctNumber nvarchar(20),@FItemNumber nvarchar(200)
as
set nocount ondeclare @curYear int
declare @curPeriod intselect @curYear=FValue from t_SystemProfile where Fkey='CurrentYear' and FCategory='GL'
select @curPeriod=FValue from t_SystemProfile where Fkey='CurrentPeriod' and FCategory='GL'create table #report_sum
(
FID int identity(1,1),
FSuppID int,
FAcctountID int,
FDC int,
FIndex int,
FYear int,
FPeriod int,
FDate datetime,
FTrnasDate datetime,
FVoucherID int,
FExplanation nvarchar(1000),
FDebit decimal(21,10),
FCredit decimal(21,10),
FEndBalance decimal(21,10)
)insert into #report_sum
(FSuppID,FAcctountID,FDC,FIndex,FYear,FPeriod,FEndBalance)
select
F8,u1.FAccountID,t3.FDC,-1,u1.FYear,u1.FPeriod,u1.FBeginBalance*t3.FDC
from t_Balance u1
inner join t_ItemDetail t1 on u1.FDetailID=t1.FDetailID
inner join t_Item t2 on t2.FItemID=t1.F8
inner join t_Account t3 on t3.FAccountID=u1.FAccountID
where u1.FCurrencyID=0
and u1.FYear*12+u1.FPeriod>=@StartYear*12+@StartPeriod
and u1.FYear*12+u1.FPeriod<=@EndYear*12+@EndPeriod
and u1.FYear*12+u1.FPeriod<=@curYear*12+@curPeriod
and t2.FNumber=@FItemNumber
and t3.FNumber like @FAcctNumber
and t3.FDetail=1insert into #report_sum
(FSuppID,FAcctountID,FDC,FIndex,FYear,FPeriod,FEndBalance)
select
F8,u1.FAccountID,t3.FDC,1,u1.FYear,u1.FPeriod,u1.FEndBalance*t3.FDC
from t_Balance u1
inner join t_ItemDetail t1 on u1.FDetailID=t1.FDetailID
inner join t_Item t2 on t2.FItemID=t1.F8
inner join t_Account t3 on t3.FAccountID=u1.FAccountID
where u1.FCurrencyID=0
and u1.FYear*12+u1.FPeriod>=@StartYear*12+@StartPeriod
and u1.FYear*12+u1.FPeriod<@EndYear*12+@EndPeriod
and u1.FYear*12+u1.FPeriod<@curYear*12+@curPeriod
and t2.FNumber=@FItemNumber
and t3.FNumber like @FAcctNumber
and t3.FDetail=1insert into #report_sum
(FSuppID,FAcctountID,FDc,FIndex,FYear,FPeriod,FDate,FTrnasDate,FVoucherID,FExplanation,FDebit,FCredit)
select
F8,t1.FAccountID,t4.FDC,0,u1.FYear,u1.FPeriod,u1.FDate,u1.FTransDate,u1.FVoucherID,t1.FExplanation,
CASE WHEN t1.FDC=1 THEN t1.FAmount ELSE 0 END as FDebit, CASE WHEN t1.FDC=0 THEN t1.FAmount ELSE 0 END as FCredit
from t_Voucher u1
inner join t_VoucherEntry t1 on u1.FVoucherID=t1.FVoucherID
inner join t_ItemDetail t2 on t2.FDetailID=t1.FDetailID
inner join t_Item t3 on t3.FItemID=t2.F8
inner join t_Account t4 on t4.FAccountID=t1.FAccountID
where u1.FYear*12+u1.FPeriod>=@StartYear*12+@StartPeriod
and u1.FYear*12+u1.FPeriod<=@EndYear*12+@EndPeriod
and t4.FNumber like @FAcctNumberand t3.FNumber=@FItemNumberand t4.FDetail=1
order by u1.FYear,u1.FPeriod,u1.Fdate,u1.FVoucherIDdeclare @FID int, @Findex int,@FDC int,@FYear int,@FPeriod int,@FDebit decimal(21,10),
@FCredit decimal(21,10),@FEndBalance decimal(21,10),@FCurBanalce decimal(21,10),
@FOldAccountID int,@FCurAccountID intset @FCurBanalce=0
set @FEndBalance=0
set @FOldAccountID=0declare cur_list cursor for
select FAcctountID,FID,FIndex,FDC,FYear,FPeriod,isnull(FDebit,0),isnull(FCredit,0),FEndBalance from #report_sum order by FAcctountID,FYear,FPeriod,FIndex,FIDopen cur_listfetch next from cur_list
into @FCurAccountID,@FID,@Findex, @FDC,@FYear,@FPeriod,@FDebit,@FCredit,@FEndBalancewhile @@FETCH_STATUS=0
beginif @FOldAccountID<>@FCurAccountIDbeginset @FCurBanalce=0set @FOldAccountID=@FCurAccountIDendif @Findex=-1beginset @FCurBanalce=@FEndBalanceendif @Findex=0beginset @FCurBanalce=@FCurBanalce+@FDC*@FDebit-@FDC*@FCreditupdate u1set u1.FEndBalance=@FCurBanalcefrom #report_sum u1where u1.FID=@FIDendfetch next from cur_listinto @FCurAccountID,@FID,@Findex, @FDC,@FYear,@FPeriod,@FDebit,@FCredit,@FEndBalance
end
close cur_list
deallocate cur_listselect
t4.FNumber 供应商代码,
t4.FName 供应商名称,
u1.FYear 年度,
u1.FPeriod  期间,
t1.FNumber 科目代码,
t1.FName 科目名称,
u1.FDate 凭证日期,
u1.FTrnasDate 业务日期,
t3.FName+'-'+convert(nvarchar(20),t2.FNumber) 凭证字号,
isnull(u1.FExplanation,'')+(case when u1.FIndex=-1 then '期初' when u1.FIndex=1 then '结存' else '' end ) 摘要,
u1.FDebit 借方金额,
u1.FCredit 贷方金额,
u1.FEndBalance 余额
from #report_sum u1
inner join t_account t1 on u1.FAcctountID=t1.FAccountID
left join t_Voucher t2 on t2.FVoucherID=u1.FVoucherID
left join t_VoucherGroup t3 on t3.FGroupID=t2.FGroupID
left join t_Item t4 on t4.FItemID=u1.FSuppID
order by u1.FAcctountID,u1.FYear,u1.FPeriod,u1.FIndex,u1.FIDdrop table #report_sum

2、创建供应商应付明细账存储过程:sp_getAccount_detail_2202,代码如下:

create procedure [dbo].[sp_getAccount_detail_2202]@StartYear int,@StartPeriod int,@EndYear int,@EndPeriod int,@FItemNumber nvarchar(200)asbeginexec sp_getAccount_detail @StartYear,@StartPeriod,@EndYear,@EndPeriod,'2202%',@FItemNumberend

3、创建供应商预付明细账存储过程:sp_getAccount_detail_1123,代码如下:

create procedure [dbo].[sp_getAccount_detail_1123]@StartYear int,@StartPeriod int,@EndYear int,@EndPeriod int,@FItemNumber nvarchar(200)asbeginexec sp_getAccount_detail @StartYear,@StartPeriod,@EndYear,@EndPeriod,'1123%',@FItemNumberend

4、K3查询分析工具先创建如下SQL关键字:

关键字  标题  数据类型  数据来源  字段  是否允许录入
*StartYear*  开始年度  数字型  手工录入  无  允许录入
*StartPeriod*  开始期间  数字型  手工录入  无  允许录入
#EndYear#  截止年度  数字型  手工录入  无  允许录入
#EndPeriod#  截止期间  数字型  手工录入  无  允许录入
@SuppNumber@  供应商代码  字符串  供应商  代码 允许录入

5、K3查询分析工具创建供应商应付账款明细表,sql语句为:

exec sp_getAccount_detail_2202 *StartYear*,*StartPeriod*,#EndYear#,#EndPeriod#,'@SuppNumber@'

6、K3查询分析工具创建供应商预付账款明细表,sql语句为:

exec sp_getAccount_detail_1123 *StartYear*,*StartPeriod*,#EndYear#,#EndPeriod#,'@SuppNumber@'

开发完毕。
















												

金蝶K3 SQL报表系列-供应商应付/预付账款明细表相关推荐

  1. 金蝶K3 SQL报表系列-供应商科目余额表

    创建存储过程:exec sp_get_supply_balance 代码如下: create procedure [dbo].[sp_get_supply_balance] as set nocoun ...

  2. 金蝶K3 SQL报表系列-BOM成本汇总表

    1.创建供应商维护价格视图z_view_SupplyRatePrice,代码如下: create view [dbo].[z_view_SupplyRatePrice] as select u1.*, ...

  3. 金蝶K3 SQL报表系列-委外核销检查表

    1.创建存储过程:sp_ICStockBill_Check create procedure [dbo].[sp_ICStockBill_Check] as set nocount on declar ...

  4. 金蝶K3 SQL报表系列-库存账龄分析

    1.创建存储过程:sql代码如下: create procedure [dbo].[rk_sp_stock_Age] @paraYear int, @parePeriod int as declare ...

  5. 金蝶K3 SQL报表系列-委外未勾稽明细表金蝶K3 SQL报表系列-委外未勾稽明细表

    select u1.FBillNo 单据编号, u1.FDate 日期, t3.FNumber as 供应商代码, t3.FName as 供应商, t4.FNumber 物料代码, t4.FName ...

  6. 金蝶K3 SQL报表系列-委外未勾稽明细表

    select u1.FBillNo 单据编号, u1.FDate 日期, t3.FNumber as 供应商代码, t3.FName as 供应商, t4.FNumber 物料代码, t4.FName ...

  7. 金蝶K3 SQL报表系列-客户科目余额表(可用于生成客户保证金查询报表等)

    select k3.FNumber 客户代码, k3.FName 客户名称, k2.FNumber 科目代码, k2.FFullName 科目名称, k.FEndBalance 余额from (sel ...

  8. 金蝶K3直接SQL报表实现动态行转列报表

    我们知道,在BOS开发中,想实现动态行转列报表,可以使用交叉分析表来实现,但交叉分析表不太灵活,比如当动态列中有需要复杂的逻辑运算来实现时就无能为力了,下面介绍使用直接SQL报表来实现,也许能给你一点 ...

  9. Excel+MSSQL开发金蝶K3欠料报表

    将K3所有订单需求.MRP运算.库存及在途数据等数据整体展示,适合计划部门根据报表数据统筹考量物料供给情况,特制作此报表及Excel集成工具,以减少手工汇总统计的工作量. 本代码适用于金蝶K3 WIS ...

最新文章

  1. 图像超分辨率与天气预报
  2. 必会重构技巧:使用多态替换条件
  3. docker 容器互访三种方式
  4. Hadoop学习(二)——MapReduce\Yarn架构
  5. 5行Python 代码就能让你的电脑永不息屏
  6. 神经网络用作分类器(附代码matlab)
  7. 18. web robot
  8. rocketmq双主双从----四台服务器
  9. 告别内卷,扬帆出海,小鹏汽车们找到破局最优解?
  10. PDF文件怎么打印?分享两种打印方法
  11. python获取虎牙弹幕_python实现虎牙直播弹幕
  12. 华为普工一个月的工资是多少?
  13. 2021-3-21-第三周
  14. 用Android和node.js实现扫码登录
  15. Flink批流一体的理解
  16. 第一次vscode 推送已有代码 到gitee新仓库
  17. Camera详解(附身份证扫描示例)
  18. python调用百度地图API爬取西安市POI数据
  19. Ajax XHR请求
  20. 第五节 树莓派EC20自动拨号脚本编写

热门文章

  1. Python学习笔记Task11.魔法方法
  2. MP4格式基本概念——非常详细,神文
  3. AspectJ 使用介绍
  4. 有关操作系统进程通信的选择题
  5. python实现企查猫的自动化注册
  6. 优化js设计,防止浏览器假死(转)
  7. 2017年网络流行语TOP20 , 没用过算我输!
  8. 多个DHL快递物流怎么同时查询最方便
  9. 消毒走道行业调研报告 - 市场现状分析与发展前景预测
  10. PCB Design Rules﹣Routing Corners