智能决策技术报告.docx

上传人:b****3 文档编号:11496698 上传时间:2023-06-01 格式:DOCX 页数:58 大小:1.63MB
下载 相关 举报
智能决策技术报告.docx_第1页
第1页 / 共58页
智能决策技术报告.docx_第2页
第2页 / 共58页
智能决策技术报告.docx_第3页
第3页 / 共58页
智能决策技术报告.docx_第4页
第4页 / 共58页
智能决策技术报告.docx_第5页
第5页 / 共58页
智能决策技术报告.docx_第6页
第6页 / 共58页
智能决策技术报告.docx_第7页
第7页 / 共58页
智能决策技术报告.docx_第8页
第8页 / 共58页
智能决策技术报告.docx_第9页
第9页 / 共58页
智能决策技术报告.docx_第10页
第10页 / 共58页
智能决策技术报告.docx_第11页
第11页 / 共58页
智能决策技术报告.docx_第12页
第12页 / 共58页
智能决策技术报告.docx_第13页
第13页 / 共58页
智能决策技术报告.docx_第14页
第14页 / 共58页
智能决策技术报告.docx_第15页
第15页 / 共58页
智能决策技术报告.docx_第16页
第16页 / 共58页
智能决策技术报告.docx_第17页
第17页 / 共58页
智能决策技术报告.docx_第18页
第18页 / 共58页
智能决策技术报告.docx_第19页
第19页 / 共58页
智能决策技术报告.docx_第20页
第20页 / 共58页
亲,该文档总共58页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

智能决策技术报告.docx

《智能决策技术报告.docx》由会员分享,可在线阅读,更多相关《智能决策技术报告.docx(58页珍藏版)》请在冰点文库上搜索。

智能决策技术报告.docx

智能决策技术报告

智能决策技术

期末考核

设计题目:

生产物料需求决策支持系统

一.规划与分析阶段

1.问题描述

1.1现状

选定决策支持主题是生产物料需求计划。

在现代企业的生产经营活动中物料是企业价值链中极其重要的一环,物料采购决策占有十分重要的地位。

在成熟、稳定的市场条件下,理性的企业决策者总是力争在“正确时间”采购“正确数量”的物料,供企业生产使用。

物料需求计算的基本任务是:

一是从最终产品的生产计划导出相关物料(原材料、零部件)的需求量和需求时间(相关需求);二是根据物料的需求时间和订货周期来确定其开始订货的时间。

物料需求计算的基本内容是编制物料(包括零部件和原材料)的采购计划(这里不考虑生产的自制,假定所有的物料都进行采购)。

要正确编制物料采购计划,首先必须落实最终产品的产出进度计划,即主生产计划,这是物料需求计算展开的依据。

还要需要知道产品的零部件和原材料结构,即无聊清单,才能把主生产计划展开成物料需求计划;同时,必须知道库存数量才能准确地计算出各种零部件和原材料的采购数量。

因此,以主生产计划,物料清单为依据计算物料需求。

物料需求计划原理框架如下图1.1:

产品产出计划

物料需求计划

报告

物料需求计划

(数量、时间)

产品结构文件

库存状态文件

图1.1

1.2解决手段

建立物料需求分析的决策支持系统,完成复杂的分析过程,并自动生成物料需求订单,以供生产使用。

1.3意义

应用该系统,可为企业生产过程中物料需求和选择供应商提供依据。

2.数据处理分析

2.1数据流程图

图2.1

2.2物料需求分析的核心流程:

物料需求计划主要按照反工艺路线(成品——组装件——零部件)的原理,按照产品产出计划规定的产品的生产数量和期限要求,利用产品结构文件、库存信息文件等数据资料,反工艺顺序计算出各种物料的需求数量与需求期限,进而,根据企业实际确定自制和采购的数量和期限。

物料需求计算时主要用到五种库存状态数据:

毛需求G(t)、计划到货量S(t)、现有量H(t)、净需求量N(t)和计划发出订货量R(t-L),这里t是表示周期的变量,L是提前期。

计算在第t周期第i层所有物料需求量和需求时间的步骤为:

第一步:

确定第i层第t周期所有毛需求量。

毛需求量是指生产中实际需要的量,0层的毛需求由主生产计划确定,其余各层的毛需求量是由其上层的计划订单下达。

第二步:

确定物料第i层第t周期的净需求量,净需求量是指实际需要的增加量。

第三步:

根据净需求量确定第t周期计划下达数量

第四步:

第i层第t周期的计划订单下达数量,即为第i层物料的毛需求量,由毛需求量开始重复上述1—4步,直至最低层物料。

其分析流程图如下图:

i=0,t=1

按照时间周期计算第n层所有物料的毛需求量

第0层根据产品计划得出,其他层由其父项计划下达取得

确定第n层第t周期净需求量N(t)

由净需求N(t)确定计划定单入库R(t-L)

所有周期算完否

确定计划定单下达

所有产品结构层次已分解

向下一层分解

i=i+1

结束

t=t+1

2.3建立数据字典:

总编号

编号

名称

来源

去向

包含数据结构

1-01

F1

客户订单

客户

分析处理

订单号、产品编号、订购数量、交货日期

1-02

F2

产品结构

设计

分析处理

产品编号、层次、上层编号、上层需求

1-03

F3

库存状态

库存

分析处理

产品编号、产品名称、库存总量、可用量、将要入库量、安全库存

1-04

F4

物料订单

分析处理

订单下达

订单号、物料编号、订购数量、订购日期、有效期至

1-05

F5

用户信息

用户

登录判断

用户名、密码、权限、备注

表2.3

3.抽象模型建立

3.1系统功能结构图

图3.1

3.2系统业务流程图

图3.2

二.设计阶段

1.系统平台设计

1.1开发平台设计

前台设计工具:

BorlandDelphi6

后台数据库:

SQLServer2008

开发环境:

硬件环境:

PC电脑

软件环境:

(见下图)

服务器

操作系统

WINDOWS2007

应用程序

SQLServer2008

客户端

操作系统

WINDOWS2007

应用程序

BorlandDelphi6

1.2网络运行模式设计

本系统采用C/S模式,即客户端/服务器模式

网络拓扑结构为星型结构

2.主要功能模块设计

2.1登录模块

界面截图如下图4.21:

图4.21

功能是验证用户是否合法,是否允许登入系统,如果合法则还要判断其权限,以限定用户的操作权限。

2.2主界面模块

界面如图4.22登录之前及4.23登录之后,其功能是实现在各个功能模块的界面之间的进行跳转:

图4.22图4.23

2.3主生产计划模块

界面如下图4.24,主要是实现客户订单管理:

图4.24

图4.25为产品结构管理:

图4.25

图4.26为物料库存管理:

图4.26

图4.27为物料需求分析界面:

图4.27

2.4订单管理模块

图4.28为订单管理界面:

图4.28

2.5用户管理模块

图4.29为用户管理界面,包括注册、修改密码、权限设置等:

图4.29

3.数据库设计

数据库设计如下:

客户订单文件表oderform

字段名称

字段描述

数据类型

字段长度

是否主键

允许为空否

Oderno

订单号

Char

10

Y

N

Pno

产品编号

Char

10

N

N

Pnum

订单总量

Int

4

N

N

Pselfnum

自产量

Int

4

N

N

Pbuynum

外购量

Int

4

N

N

Odert

下单日期

Datetime

8

N

Y

Delit

交货日期

Datetime

8

N

Y

State

当前状态

Datetime

10

N

Y

物料需求订单文件表matelist

字段名称

字段描述

数据类型

字段长度

是否主键

允许为空否

Mlno

订单编号

Char

10

Y

N

Mno

物料编号

Char

10

N

Y

Mlnum

订购数量

Int

4

N

Y

Mltime

订购日期

Datetime

8

N

Y

Mlvivtime

有效期至

Datetime

8

N

Y

Remark

备注

Char

30

N

Y

物料库存文件表matestor

字段名称

字段描述

数据类型

字段长度

是否主键

允许为空否

Mno

物料编号

Char

8

Y

N

Mname

物料名称

Char

10

N

Y

Mlayer

所属层次

Int

4

N

Y

Mpreno

上层编号

Char

8

N

Y

Mprenum

上层需求

Int

4

N

Y

Mtnum

库存总量

Int

4

N

Y

Mvnum

可用数量

Int

4

N

Y

Mwnum

将要入库量

Int

4

N

Y

Secnum

安全库存

Int

4

N

Y

Mut

计量单位

Char

4

N

Y

Mfinish

成品率

Float

8

N

Y

Madvant

提前期

Int

4

N

Y

Avat

生效日期

Datetime

8

N

Y

Invat

失效日期

Datetime

8

N

Y

Remark

备注

Char

30

N

Y

物料分析临时表tempinfo

字段名称

字段描述

数据类型

字段长度

是否主键

允许为空否

Dtime

需求日期

Datetime

8

N

N

Dmno

物料编号

Char

8

N

N

Dmname

物料名称

Char

10

N

N

Dmlayer

所属层次

Int

4

N

N

Dmadvantt

提前期

Int

4

N

N

Dpreno

上层编号

Char

8

N

N

Dprenum

上层需求

Int

4

N

N

Dmfinish

成品率

Float

8

N

N

Dvnum

可用数量

Int

4

N

N

Dwnum

将要入库量

Int

4

N

N

Dsnum

安全库存

Int

4

N

N

Ddtnum

毛需求量

Int

4

N

N

Ddnetnum

净需求量

Int

4

N

N

dselfn

自产量

Int

4

N

Y

dbuyn

外购量

Int

4

N

Y

用户信息表userinfo

字段名称

字段描述

数据类型

字段长度

是否主键

允许为空否

Username

用户名

Char

10

Y

N

Passswd

用密码

Char

10

N

N

Uright

用户权限

Char

10

N

Y

Lastit

最近登录时间

Datetime

8

N

Y

Lastot

最近登出时间

Datetime

8

N

Y

Remark

备注

Char

30

N

Y

三.实施阶段

1.实现方案

以一个简化了的自行车产品来说明,其库存状态书记库如上图所示。

其结构示意图为:

自行车

车架

(1)

车轮

(2)

车把

(1)

轮圈

(1)

轮胎

(2)

辐条(42)

0层

1层

2层

基本的物料计划步骤为:

(1)确定自行车的总需求、净需求和计划定单下达的时间;

(2)根据上层的结果,确定第1层上所有物料的净需求和计划定单下达的时间;

(3)根据上层车轮的结果,确定第2层上所有物料的净需求和计划定单下达的时间。

其中用到的公式有:

第t周期的净需求量=第t周期的毛需求—现有量—第t周期计划入库量+安全库存

不考虑批量问题,则t-L周期计算计划订单下达数量等于t周期净需求量,即:

R(t-L)=N(t)

2.系统开发、调试与运行

2.1登录模块设计

界面如图

图5.41

主要程序代码为:

unitLogin;

var

fmLogin:

TfmLogin;

implementation

usesdatamd,Main;

{$R*.dfm}

//////////////////////自定义过程,验证用户///////////////////////////////

procedureTfmlogin.userjug(u,p,r:

string);

varupsql,upsql2:

string;

begin

ifu=''then

begin

showmessage('用户名不能为空,请输入用户名!

');

edtun.setfocus;

end

elseifp=''then

begin

showmessage('密码不能为空,请输入密码!

');

edtpw.setfocus;

end

else

begin

upsql:

='selectusernm,passwd,urightfromuserinfowhereusernm='+''''+u+''''+'andpasswd='+''''+p+''''+'anduright='+''''+r+'''';

upsql2:

='updateuserinfosetlastit='+''''+datetostr(Now)+''''+'whereusernm='+''''+u+'''';

try

dtmd.qryup.Close;

dtmd.qryup.SQL.Clear;

dtmd.qryup.SQL.Add(upsql);

dtmd.qryup.Open;

ifnotdtmd.qryup.Eofthen//用户合法,则进入系统

begin

dtmd.qryup.Close;//更新用户的最近登录时间

dtmd.qryup.SQL.Clear;

dtmd.qryup.SQL.Add(upsql2);

dtmd.qryup.ExecSQL;

fmMain.RzGroup1.Visible:

=false;

fmMain.RzGroup2.Visible:

=true;

fmMain.RzGroup2.Opened:

=true;

fmMain.RzGroup3.Visible:

=true;

fmMain.RzGroup4.Visible:

=true;

fmMain.RzGroup5.Visible:

=true;

fmMain.RzGroup5.Visible:

=true;

fmMain.pu:

=u;

fmMain.pp:

=p;

fmMain.pr:

=r;

fmMain.sttb.Panels[0].Text:

=fmMain.pu;

fmLogin.Close;

end

else

begin

showmessage('用户名或密码错误!

');

edtun.SetFocus;

end

except

showmessage('连接数据库失败,请检查数据库服务是否正常!

');

end;

end;

end;

//////////////////////////////退出登录/////////////////////////////////

procedureTfmLogin.btnextClick(Sender:

TObject);

begin

self.Close;

end;

//////////////////////////////登录按钮////////////////////////////////

procedureTfmLogin.btnlgClick(Sender:

TObject);

varri:

string;

begin

ifself.rbu.Checkedthen

ri:

='user'

elseifself.rba.Checkedthen

ri:

='admini';

userjug(trim(edtun.Text),trim(edtpw.Text),ri);

end;

////////////////////用户名和密码文本框里回车/////////////////////////

procedureTfmLogin.edtunKeyPress(Sender:

TObject;varKey:

Char);

varri:

string;

begin

ifkey=#13then

begin

ifself.rbu.Checkedthen

ri:

='user'

elseifself.rba.Checkedthen

ri:

='admini';

userjug(trim(edtun.Text),trim(edtpw.Text),ri);

end;

end;

end.

2.2订单管理

界面如图5.42

图5.42

主要代码:

unitOderform;

var

fmOderform:

TfmOderform;

implementation

usesdatamd,Main;

{$R*.dfm}

///////////////////////////各个下拉框赋值共用过程///////////////////////

procedureTfmOderform.cbpbdpd(tet:

string);

var

i,j:

integer;

osql:

string;

begin

withdtmd.qryofmdo

begin

osql:

='selectdistinct'+tet+'fromoderform';//查询唯一值

try

Close;

SQL.clear;

SQL.Add(osql);

Open;

fmOderform.dbno.DataSource:

=nil;

fmOderform.dbgo.DataSource:

=nil;

First;

i:

=RecordCount;

forj:

=0toi-1do//循环赋值

begin

ifm=1then

cbno1.Items.Add(FieldByName('oderno').AsString)

elseifm=2then

cbno2.Items.Add(FieldByName('oderno').AsString);

Next;

end;

except

showmessage('数据库连接失败!

请检查数据库服务是否正常!

');

end;

end;

end;

procedureTfmOderform.btnexitClick(Sender:

TObject);

begin

self.Close;

end;

procedureTfmOderform.cbno1DropDown(Sender:

TObject);

begin

m:

=1;

self.cbno1.Items.Clear;

self.cbpbdpd('oderno');

end;

procedureTfmOderform.cbno2DropDown(Sender:

TObject);

begin

m:

=2;

self.cbno2.Items.Clear;

self.cbpbdpd('oderno');

end;

///=================================================================///

procedureTfmOderform.btnsearClick(Sender:

TObject);

var

ssql,cdt:

string;

begin

ssql:

='selectodernoas订单号,pnoas产品编号,mnameas产品名称,pnumas订购量,odertas订购日期,delitas交货日期,stateas当前状态fromoderform,matestorwheremno=pnoandpno<>'+''''+'''';

ifcbno1.Text<>''thencdt:

='andoderno>='+''''+trim(cbno1.Text)+'''';

ifcbno2.Text<>''thencdt:

=cdt+'andoderno<='+''''+trim(cbno2.Text)+'''';

ifdatetostr(dtp1.Date)<>''thencdt:

=cdt+'anddelit>='+''''+datetostr(dtp1.DateTime)+'''';

ifdatetostr(dtp2.Date)<>''thencdt:

=cdt+'anddelit<='+''''+datetostr(dtp2.DateTime)+'''';

ifcbnm.Text<>''thencdt:

=cdt+'andpno='+''''+trim(cbnm.Text)+'''';

ifcbst.Text<>''thencdt:

=cdt+'andstate='+''''+trim(cbst.Text)+'''';

ssql:

=ssql+cdt;

withdtmd.qryofmdo

begin

try

Close;

SQL.clear;

SQL.Add(ssql);

Open;

fmOderform.dbno.DataSource:

=dtmd.dsofm;//动态指定数据感知组件的数据源

fmOderform.dbgo.DataSource:

=dtmd.dsofm;

except

showmessage('数据库连接失败!

请检查数据库服务是否正常!

');

end;

end;

end;

//****************************是否允许编辑********************************

procedureTfmOderform.edorClick(Sender:

TObject);

begin

iffmOderform.edor.Checkedthen//允许编辑

begin

fmOderform.dbgo.Options:

=fmOderform.dbgo.Options-[dgRowSelect]+[dgediting];fmOderform.dbno.VisibleButtons:

=[nbinsert,nbdelete,nbedit,nbpost,nbcancel,nbrefresh];

end

else//不允许编辑

begin

fmOderform.dbgo.Options:

=fmOderform.dbgo.Options+[dgRowSelect]-[dgediting];

fmOderform.dbno.VisibleButtons:

=[nbfirst,nbprior,nbnext,nblast];

end

end;

procedureTfmOderform.FormCreate(Sender:

TObject);

begin

fmOderform.dbno.VisibleButtons:

=[nbfirst,nbprior,nbnext,nblast];

fmOderform.dbgo.Options:

=fmOderform.dbgo.Options+[dgRowSelect]-[dgediting];

end;

procedureTfmOderform.FormShow(Sender:

TObject);

begin

iffmMain.sttb.Panels[0].Text=''then

begin//游客不能操作数据库

self.GroupBox1.Enabled:

=false;

self.GroupBox2.Enabled:

=false;

end

else

begin//游客不能操作数据库

self.GroupBox1.Enabled:

=true;

self.GroupBox2.Enabled:

=true;

end;

//self.dtp1.DateTime:

=now;

self.dtp2.DateTime:

=now;

end;

///////////////////////////单击D

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2