ERP(帮顶有分) (200分)

  • 主题发起人 sqlss_18
  • 开始时间
我看楼主问明白客户的需求吧!!!
根据他们的需求做,相信楼主是能做出来的...
哈哈.
别像我们做通软的.累呀!!!!!!!!!!!!!!!!!!!!
 
我没分了,所以进来看看。
[8D][:D]
 
你真是不怕死的呀!!一个人就啃ERP!
不过我想你们头也不是要ERP,可能就是简单的需求!不过以为是ERP而已!!
 
to:lzhan
1)全称:就是低阶码(Low Level Code,LLC)吧!
2)关于MRP展开运算特别是低阶码的运用,我也想知道!
好象是用来计算"净需求"时避免错误的,具体我也
不知道如何使用,
3)郭玉梁 大侠有段代码,我还没有研究清楚,你看看能否搞清,告诉我一声,
CREATE PROCEDURE [Dmwora]
AS
DECLARE @BookC VARCHAR(48), @ItemC VARCHAR(48), @WorkS VARCHAR(48),@LCode INTEGER, @LTime INTEGER, @GDate DATETIME, @DateC DATETIME, @DateI DATETIME, @Quant FLOAT
--设置初始数据
SET NOCOUNT ON
BEGIN TRANSACTION
TRUNCATE TABLE Mmfrom
DECLARE Mmtemp CURSOR LOCAL FOR SELECT DISTINCT BookC, ItemC FROM Mmitem WHERE State IN ('确定')
SELECT ItemC, LTime AS LCode INTO #Temp1 FROM Dmitem WHERE ItemC IS NULL
SELECT ItemC INTO #Temp2 FROM #Temp1
--确定生产计划
OPEN Mmtemp
FETCH NEXT FROM Mmtemp INTO @BookC, @ItemC WHILE @@FETCH_STATUS = 0
BEGIN
--计算低 层 码
TRUNCATE TABLE #Temp1
INSERT #Temp1 VALUES(@ItemC, 0)
SET @LCode = 0
WHILE 1 = 1
BEGIN
TRUNCATE TABLE #Temp2
SET @LCode = @LCode + 1
INSERT #Temp2 SELECT CItem FROM Dmstru WHERE PItem IN (SELECT ItemC FROM #Temp1 WHERE LCode = @LCode - 1)
DELETE #Temp1 WHERE ItemC IN (SELECT ItemC FROM #Temp2)
INSERT #Temp1 SELECT ItemC, @LCode FROM #Temp2
IF (SELECT COUNT(*) FROM #Temp2) = 0
BREAK
IF @LCode = 18 BEGIN RAISERROR ('产品结构有首尾相连,产生循环。', 15, 1)
ROLLBACK RETURN END
END

--计算需求数量
DECLARE Mmtemq CURSOR LOCAL FOR SELECT ItemC, LCode FROM #Temp1 ORDER BY LCode
OPEN Mmtemq
FETCH NEXT FROM Mmtemq INTO @ItemC, @LCode
WHILE @@FETCH_STATUS = 0
BEGIN
--加入生产计划
IF @LCode = 0
BEGIN
SELECT @LTime = LTime FROM Dmitem WHERE ItemC = @ItemC
SELECT @GDate = GDate, @Quant = Quant FROM Mmitem WHERE BookC = @BookC
INSERT Mmfrom (BookC, ItemC, DateC, QuanR, QuanN, QuanO, State)
VALUES(@BookC, @ItemC, @GDate, @Quant, @Quant, @Quant, '计划')
--生产计划投入
DECLARE Mmtemr CURSOR LOCAL FOR SELECT DateC, WorkS FROM Mmdate WHERE DateC <= @GDate AND WorkS <> '正常休息' ORDER BY DateC DESC
OPEN Mmtemr
FETCH NEXT FROM Mmtemr INTO @DateI, @WorkS
WHILE @@FETCH_STATUS = 0
BEGIN
IF @LTime = 0
BEGIN
UPDATE Mmfrom SET DateI = @DateI WHERE BookC = @BookC AND ItemC = @ItemC AND DateC = @GDate
INSERT Mmfrom (BookC, ItemC, DateC, QuanI, State) VALUES (@BookC, @ItemC, @DateI, @Quant, '计划')
BREAK
END
SET @LTime = @LTime - 1
FETCH NEXT FROM Mmtemr INTO @DateI, @WorkS
END
CLOSE Mmtemr DEALLOCATE Mmtemr
END

--计算需求计划
DECLARE Mmtemr CURSOR LOCAL FOR SELECT DateC, QuanI * Quant AS QuanI FROM Mmfrom, Dmstru
WHERE QuanI > 0 AND BookC = @BookC AND ItemC = PItem AND @ItemC = CItem
OPEN Mmtemr FETCH NEXT FROM Mmtemr INTO @DateC, @Quant
WHILE @@FETCH_STATUS = 0
BEGIN
--加入需求计划
IF NOT EXISTS(SELECT * FROM Mmfrom WHERE BookC = @BookC AND ItemC = @ItemC AND DateC = @DateC)
INSERT Mmfrom (BookC, ItemC, DateC, QuanR, QuanN, QuanO, State)
VALUES(@BookC, @ItemC, @DateC, @Quant, @Quant, @Quant, '计划') ELSE
UPDATE Mmfrom SET QuanR = QuanR + @Quant, QuanN = QuanN + @Quant, QuanO = QuanO + @Quant
WHERE BookC = @BookC AND ItemC = @ItemC AND DateC = @DateC
--需求计划投入
SELECT @LTime = LTime FROM Dmitem WHERE ItemC = @ItemC DECLARE Mmtems CURSOR LOCAL FOR
SELECT DateC, WorkS FROM Mmdate WHERE DateC <= @DateC AND WorkS <> '正常休息' ORDER BY DateC DESC
OPEN Mmtems FETCH NEXT FROM Mmtems INTO @DateI, @WorkS WHILE @@FETCH_STATUS = 0
BEGIN
IF @LTime = 0
BEGIN
UPDATE Mmfrom SET DateI = @DateI WHERE BookC = @BookC AND ItemC = @ItemC AND DateC = @DateC
IF NOT EXISTS(SELECT * FROM Mmfrom WHERE BookC = @BookC AND ItemC = @ItemC AND DateC = @DateI)
INSERT Mmfrom (BookC, ItemC, DateC, QuanI, State) VALUES (@BookC, @ItemC, @DateI, @Quant, '计划') ELSE
UPDATE Mmfrom SET QuanI = QuanI + @Quant WHERE BookC = @BookC AND ItemC = @ItemC AND DateC = @DateC
BREAK
END
SET @LTime = @LTime - 1 FETCH NEXT FROM Mmtems INTO @DateI, @WorkS
END CLOSE Mmtems DEALLOCATE Mmtems

--计算下一父项
FETCH NEXT FROM Mmtemr INTO @DateC, @Quant
END CLOSE Mmtemr DEALLOCATE Mmtemr

--计算下一物料
FETCH NEXT FROM Mmtemq INTO @ItemC, @LCode
END CLOSE Mmtemq DEALLOCATE Mmtemq

--计算下一计划
FETCH NEXT FROM Mmtemp INTO @BookC, @ItemC
END CLOSE Mmtemp DEALLOCATE Mmtemp

--需求计算完毕
DELETE Mmfrom WHERE ItemC IN (SELECT ItemC FROM Dmitem WHERE TypeD IN ('虚拟'))
COMMIT TRANSACTION

 
IT行业什么都变化快。
前几年大家认识还在进销存,mrp层面上。
后来就进化到MRPII,
再一不小心又有了什么ERP。
虽说概念确实有了很大的不同,
但实际上,又有几家公司真正地全面实施了ERP的功能?
本来只是一个生产计划管理系统,硬是要美名为ERP.
所以,楼主要做什么ERP,先问问老板的要求,从进销存做起。
如果是制造业,再加一个生产模块就是了!
 
同意楼上的,
小人正为怎样做生产管理这个模块想得头发也白了,还想不出个所以然来,谁能帮帮我,这个该怎么做?
 
先弄清楚什么叫ERP吧。
 
我可以说你的老板根本就不懂什么信息管理更不用说什么是ERP?
依我看你还得靠自己做一个信息管理系统吧。不过我想你的需求也很难拿到,
原因很简单,因为你的老板让你一个人去做什么的ERP。。。。
 
你的老板有问题,你可以当他有神经,买本ERP的书给他看看,让他知道什么是ERP,你才有出路,要不你就离职算了,做个MIS不知道你行不,要不做个MIS给他好了
 
你的做好了吗给我一份演试版
 
找一个盗版的给BOss ,就说是你开发的[:D]
 
现在的什么东东都扣上个ERP--跟风吧
包括一些国内的在公司。分明是个进销存的软件偏要叫做ERP
即使你做好了,拿到别的行业行吗?流程一样吗?
还是现实点吧!
以上不说你的
你先分析,ERP没有一个固定的模式。
开发当中最好分开写、各个模块分开写/
 
ERP是个概念,是人财物、产供销的集合。一个人写不太可能,太大了,从规划到写代码,都是一个很大的工程。一个人能行吗????
 
多人接受答案了。
 

Similar threads

回复
0
查看
522
不得闲
回复
0
查看
670
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
顶部