设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 11805|回复: 15
打印 上一主题 下一主题

[推荐][原创]完整的BOM构造 分解 运算的SQL代码

[复制链接]
跳转到指定楼层
1#
发表于 2005-8-30 19:00:00 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
以下是我在年初写的, 在用友ERP8.5的数据库基础上进行按照BOM分层次的成本核算的后台SQL代码,。

用这些SQL代码实现了95%的功能, 前台完全是对这些过程的调用,所以我最初前台用ACCESS来做的,后来又用VB.NET来写, 很快就完成了。

所有的代码都是我在洁净开发环境中完成,未参考任何第三方的资料。在汇总过程中没有使用递归。

主要步骤是

1。构造一个自己的BOM

2。从材料领用表中取出材料消耗数量和金额

3。显示材料领取与BOM标准的差异

4。手工录入各层次的制造工时。手工录入总制造费用,总人工费用。

5。按照制造工时,分摊制造费用和人工费用

6。按层次向上汇总制造费用,人工费用和材料费用。

这里主要考虑了,

1。同一物料(主要指非直接材料)可能一部分自制,一部分是外购,外购部分是不会产生制造和人工费用的,外购部分直接成为叶子,不再有子孙。

2。一个物料可能用在BOM不同层次组成不同父物料。

3。这里是按批号计算的,而且一个一批实际上只有一件,这个产品很特殊  :-)

4。这里的名词称谓不是ERP标准,按照树的称呼,例如把没有下级的物料,称为叶子

-----------------建立两张表-------------------------------

-- goodidea(朱彦志) 2005/02/25 16:33

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[AddInBomRoot]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

drop table [dbo].[AddInBomRoot]

GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[AddInBomTree]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

drop table [dbo].[AddInBomTree]

GO

CREATE TABLE [dbo].[AddInBomRoot] (

[cBatch] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,

[cPSPCode] [char] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,

[cInvName] [varchar] (60) COLLATE Chinese_PRC_CI_AS NULL ,

[cInvStd] [varchar] (60) COLLATE Chinese_PRC_CI_AS NULL ,

[iQty] [money] NOT NULL ,

[bComplatedWhenCompute] [bit] NULL ,

[mMateCostAdd] [money] NOT NULL ,

[mProcCostAdd] [money] NOT NULL ,

[mPayCostAdd] [money] NOT NULL ,

[dInputTime] [datetime] NULL ,

[cInputer] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,

[dModifyTime] [datetime] NULL ,

[cModifier] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,

[saved] [bit] NOT NULL ,

[iStatus] [smallint] NOT NULL ,

[cUnit] [varchar] (4) COLLATE Chinese_PRC_CI_AS NULL

) ON [PRIMARY]

GO

CREATE TABLE [dbo].[AddInBomTree] (

[cPSCode] [char] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,

[iPSQuantity] [money] NULL ,

[cPSPCode] [char] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,

[iPSPOrder] [int] NOT NULL ,

[iLevel] [int] NULL ,

[iOrder] [int] NOT NULL ,

[cInvName] [varchar] (60) COLLATE Chinese_PRC_CI_AS NULL ,

[cInvStd] [varchar] (60) COLLATE Chinese_PRC_CI_AS NULL ,

[bIsLeafage] [bit] NOT NULL ,

[cBatch] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,

[bComplated] [bit] NULL ,

[cRootCode] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,

[mProcHour] [money] NOT NULL ,

[mQtyInTree] [money] NOT NULL ,

[mQtyInFact] [money] NOT NULL ,

[mPrice] [money] NOT NULL ,

[mMateCost] [money] NOT NULL ,

[mProcCost] [money] NOT NULL ,

[mPayCost] [money] NOT NULL ,

[mMateCostAdd] [money] NOT NULL ,

[mProcCostAdd] [money] NOT NULL ,

[mPayCostAdd] [money] NOT NULL ,

[dInputTime] [datetime] NULL ,

[cInputer] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,

[dModifyTime] [datetime] NULL ,

[cModifier] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,

[bIsPurchase] [bit] NOT NULL ,

[AutoId] [bigint] IDENTITY (1, 1) NOT NULL ,

[bPrintFlag] [bit] NOT NULL

) ON [PRIMARY]

GO

ALTER TABLE [dbo].[AddInBomRoot] WITH NOCHECK ADD

CONSTRAINT [PK_AddInBomRoot] PRIMARY KEY  CLUSTERED

(

  [cBatch]

)  ON [PRIMARY]

GO

ALTER TABLE [dbo].[AddInBomTree] WITH NOCHECK ADD

CONSTRAINT [PK_AddInBomTree] PRIMARY KEY  CLUSTERED

(

  [AutoId]

)  ON [PRIMARY]

GO

ALTER TABLE [dbo].[AddInBomRoot] ADD

CONSTRAINT [DF_AddInBomRoot_iQty] DEFAULT (0) FOR [iQty],

CONSTRAINT [DF_AddInBomRoot_bComplatedWhenCompute] DEFAULT (0) FOR [bComplatedWhenCompute],

CONSTRAINT [DF_AddInBomRoot_mMateCostAdd] DEFAULT (0) FOR [mMateCostAdd],

CONSTRAINT [DF_AddInBomRoot_mProcCostAdd] DEFAULT (0) FOR [mProcCos
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
15#
发表于 2010-3-30 22:53:51 | 只看该作者
有示例吗?
14#
发表于 2010-3-10 21:23:01 | 只看该作者
很强,要多学习这方面的知识.谢谢
13#
发表于 2010-2-28 12:31:30 | 只看该作者
很有启发!!
12#
发表于 2010-2-6 15:45:08 | 只看该作者
我也看不懂,哈哈
11#
发表于 2009-9-6 07:11:04 | 只看该作者
没有例子,看不懂啊。。。。。。。。
10#
发表于 2009-7-30 06:52:53 | 只看该作者
good!
9#
发表于 2009-7-27 13:05:39 | 只看该作者
俺水平太低,看不懂.不过支持楼主
8#
发表于 2009-7-21 14:29:05 | 只看该作者
我水平太低,看不懂.
有原文件供学习吗?
7#
发表于 2009-5-30 10:42:53 | 只看该作者
谢啦,俺下个做参考
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-6-17 14:40 , Processed in 0.096258 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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