金蝶K3 SQL报表系列-BOM成本明细表

创建函数去掉非字符的数字

drop procedure [dbo].[zp_z_BOM_FU]
drop function [dbo].[F_GetChar]

create  function [dbo].[F_GetChar]		--创建函数去掉非字符的数字
(
@No varchar(100)
)
RETURNS varchar(100)
AS
BEGIN
WHILE PATINDEX('%[^.]%',@No)>0
BEGIN
SET @No = STUFF(@No,PATINDEX('%[^.]%',@No),1,'') --删掉一个非字符的数字,循环结束,剩余的为数字部分
END
RETURN CONVERT(varchar(100),@No)
END

1、创建供应商维护价格视图z_view_SupplyRatePrice,代码如下:

/*--1、创建供应商维护价格视图z_view_SupplyRatePrice,代码如下:*/
create view [dbo].[z_view_SupplyRatePrice]
as
select 
u1.*,
t1.FValueAddRate,					--供应商表.增值税率
t2.FCoefficient,					--计量单位表.系数
t3.FExchangeRate					--币别表.汇率
from t_supplyentry u1				--供应商供货明细表
inner join t_supplier t1			--供应商表
	on t1.fitemid = u1.fsupid		--供应商表.供应商内码 = 供应商供货明细表.供应商内码
inner join t_MeasureUnit t2			--计量单位表
	on t2.FItemID = u1.Funitid		--计量单位表.单位内码 = 供应商供货明细表.单位内码
inner join t_currency t3			--币别表
	on t3.Fcurrencyid = u1.FCyID	--币别表.币别内码 = 供应商供货明细表.币别

2、创建实际入库价格视图z_view_OrderPrice,代码如下:

/*2、创建实际入库价格视图z_view_OrderPrice,代码如下:*/

create  view
[dbo].[z_view_OrderPrice]
as
select 
t1.finterid,		--出入库单据表.单据内码
t1.fdate,			--出入库单据表.单据日期
case when Forderinterid > 0 then 1 else 0 end as Forderinterid, 
-- 出入库单据分录表.订单内码 大于0 则为1 否则为 0
t2.Fitemid,			--出入库单据分录表.物料内码
case t1.ftrantype when 1 then t2.Fprice 
				  when 5 then FProcessprice end as Fprice
-- 出入库单据表.单据类型 为 1 则取 出入库单据分录表.单价 ,为 5 则取委外加工入库增加加工单价
from
ICStockBill t1							--出入库单据表
inner join ICStockBillEntry t2			--出入库单据分录表
	on t1.finterid = t2.finterid			--出入库单据表.单据内码 = 出入库单据分录表.单据内码
inner join t_MeasureUnit t3				--计量单位表
	on t3.Fitemid = t2.Funitid			--计量单位表.单位内码 = 出入库单据分录表.单位内码
where t1.ftrantype in (1,5)				--出入库单据表.单据类型
and t1.FROB = 1							--出入库单据表.红蓝字  1 蓝字,-1 红字


3、创建存储过程zp_z_ProduceCostNow,代码如下:

/*--3、创建存储过程zp_z_BOM_FU,代码如下:*/

create procedure [dbo].[zp_z_BOM2019_FU]  
@starFnumber nvarchar(50) 
--@endFNumber nvarchar(50)  
as  
set nocount on  
/*  
declare @Fitemid int  
set @Fitemid = (select top 1 Fitemid from t_icitem where Fnumber = @Fnumber)  
*/  
/**********************************************************************/  
  
   
/*********************************************************************/  
create table #Product  --创建临时表:产品  
(  
FParentID int default 1,  
sn nvarchar(100) default '1',					--层级 
FEntryID nvarchar(100) default '0' not null,	--BOM单分录号
fitemid int,									--物料内码  
Flevel nvarchar(100) default '0',				--层次  
fqty decimal(18,6) default '1',					--用量, 标准单位  
FAuxqty decimal(18,6),							--显示用量  
FunitID int,									--单位  
FErpClsID int default '0',						--物料属性
FMaterType int,									--领料类型  
FError int default 0,							--错误状态  
Fstatus int,									--审核状态  0.未审核 1.已审核  
FUseStatus int,									--使用状态  1072.已使用 1073.未使用  
FBOMSkip int,									--是否跳层  
FIsKeyItem bit,									--关键件  
FForbid int,									--禁用  
FEnterTime datetime								--最近修改时间  
)  
   
create table #ProductEntry  --创建临时表:产品分录  
(  
FParentID int default 1,  
sn nvarchar(100) default '1',					--层级 
FEntryID nvarchar(100) default '0' not null,	--BOM单分录号
fitemid int,									--物料内码  
Flevel nvarchar(100) default '0',				--层次  
fqty decimal(18,6) default '1',					--用量, 标准单位  
FAuxqty decimal(18,6),							--显示用量  
FunitID int,									--单位  
FErpClsID int default '0',						--物料属性
FMaterType int,									--领料类型  
FError int default 0,							--错误状态  
Fstatus int,									--审核状态  0.未审核 1.已审核  
FUseStatus int,									--使用状态  1072.已使用 1073.未使用  
FBOMSkip int,									--是否跳层  
FIsKeyItem bit,									--关键件  
FForbid int,									--禁用  
FEnterTime datetime								--最近修改时间  
)

create table #z_productCost  --创建临时表:产品成本表
( 
Finterid int not null IDENTITY (1, 1) primary key,	--单据内码
fitemid int,										--物料内码  
FError int default 0,								--错误状态
FunitID int,										--单位  
FErpClsID int default '0',							--物料属性
FMaterType int,										--领料类型  
Fstatus int,										--审核状态  0.未审核 1.已审核  
FUseStatus int,										--使用状态  1072.已使用 1073.未使用  
FBOMSkip int,										--是否跳层  
FIsKeyItem bit,										--关键件  
FForbid int,										--禁用  
FEnterTime datetime,								--最近修改时间    
FSupplyAmount numeric(18,6) default 0,				--供应商维护金额
FStockAmount numeric(18,6) default 0,				--最新入库价金额
WorkingHours numeric(18,6) default 0,				--工时
LaborCost numeric(18,6) default 0					--人工
)
  
create table #z_productCostEntry  --创建临时表:产品成本分录表
( 
Finterid int not null,							--单据内码
sn nvarchar(100) default '1',					--层级 
FEntryID nvarchar(100) default '0' not null,
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值